Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Получение списка DSN в Билдере  (Прочитано 28331 раз)
0 Пользователей и 15 Гостей смотрят эту тему.
Kot
Гость
« : 05-08-2003 08:48 » 

Народ объясните как сделать сабж поподробнее а то чтото ничего ни получается
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #1 : 05-08-2003 09:04 » 

А по подробней!
Записан

Странно всё это....
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #2 : 05-08-2003 09:25 » 

Интересует - что такое DSN  - знаю DNS
Записан

А птичку нашу прошу не обижать!!!
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #3 : 05-08-2003 09:37 » 

DSN – Data Source Name, т.е. имя источника данных
в винде еще файлы такие есть если создать фаил пустой с таким раширением его можно бедет потом в проводнике поправить и прописать пам пути к источникам по средствам всяких менюшек
Записан

Странно всё это....
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #4 : 05-08-2003 09:41 » 

А - так это чисто Билдеровская фича - или майкрософтовская Не понял
Записан

А птичку нашу прошу не обижать!!!
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #5 : 05-08-2003 09:47 » 

Мелкомяглая это таксказать свойство ODBC и файлики для него в принцепе!
Но я их использовал в дельфи и билдере + ADO как файлы конфигурации пути к база писал. полезная весчь!
Записан

Странно всё это....
sh_m
Гость
« Ответ #6 : 05-08-2003 10:19 » 

Если я правильно тебя понял, то это:
TSession->GetAliasNames. В help-e есть пример использования.
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #7 : 05-08-2003 11:08 » 

вобще желательно по подробней
потому как
TSession->GetAliasNames
отностися по идее к BDE по идее
а DSN относится к ODBC, ADO и прочие


можно использовать API ODBC
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odch21cpr_4.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odch21dpr_4.asp
Записан

Странно всё это....
Asan
Гость
« Ответ #8 : 05-08-2003 11:31 » 

Ну а если на API, не подойдет?

//
#include <iostream>
#include <sql.h>
#include <sqlext.h>
#include <sqltypes.h>
#include <odbcss.h>

int main() {
   SQLRETURN ret;
   SQLSMALLINT sz1 = 0, sz2 = 0;
         SQLHANDLE hEnv;

   ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv);
         if (ret != SQL_SUCCESS) { /*...*/ }

   ret = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)                                                 SQL_OV_ODBC3, 0);
         if (ret != SQL_SUCCESS) { /*...*/ }

SQLCHAR serv[SQL_MAX_DSN_LENGTH + 1], desc[SQL_MAX_DSN_LENGTH + ];

   ret = SQLDataSources(hEnv, SQL_FETCH_FIRST_SYSTEM, serv, sizeof(serv),                                            &sz1, desc, sizeof(desc), &sz2);

          while (ret != SQL_NO_DATA) {
                  std::cout<<serv<<' '<<resc<<"\n";
                ret = SQLDataSources(hEnv, SQL_FETCH_FIRST_SYSTEM, serv,                                                           sizeof(serv), &sz1, desc, sizeof(desc), &sz2);
         }

         SQLFreeHandle(SQL_HANDLE_ENV, hEnv);

         return 0;
}
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #9 : 05-08-2003 11:37 » new

Цитата: Asan
Ну а если на API, не подойдет?

                ret = SQLDataSources(hEnv, SQL_FETCH_FIRST_SYSTEM,


Это разве не API
Я на их ссылки и давал.
А ваще классно ответил! Я бы так не смог! Быстро дешево сердито!
Записан

Странно всё это....
Asan
Гость
« Ответ #10 : 05-08-2003 12:01 » 

Цитата: LogRus

Это разве не API
Я на их ссылки и давал.
А ваще классно ответил! Я бы так не смог! Быстро дешево сердито!


Скорость, дешивизна и сердитость - вот наш девиз Жжешь

А на Билдере как - не знаю..  Так больше нельзя...
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #11 : 05-08-2003 12:09 » 

Билдер что уже не умеет c API работать! Отлично
Записан

Странно всё это....
sh_m
Гость
« Ответ #12 : 05-08-2003 12:11 » 

Цитата: LogRus
вобще желательно по подробней
потому как
TSession->GetAliasNames
отностися по идее к BDE по идее
а DSN относится к ODBC, ADO и прочие


можно использовать API ODBC
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odch21cpr_4.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odch21dpr_4.asp


Буилдер с ODBC напрямую не работает(по крайне мере стандартные компоненты), только через BDE. В BDE создаются копии DSN из ODBC. Из-за этого даже глюки бывают: возможна ситуация (не помню при каких именно условиях она возникает), когда в ODBC настройки изменились, а в BDE все осталось по-старому.

К тому же в BDE можно создавать свои DSN, которые ODBC-шные средства видеть не будут.

Насчет того, что отвечаю не очень подробно - просто воду зря лить не хочу. Будут дополнительные вопросы, отвечу подробнее. Да и спрашивать нужно поконкретнее. Kot
ведь пока ничего не конкретизировал, может у нас вообще разговор не в ту строну ушел Улыбаюсь
Записан
sh_m
Гость
« Ответ #13 : 05-08-2003 12:14 » 

Цитата: LogRus
Билдер что уже не умеет c API работать! Отлично


И с API и с MFC работает, может еще и на швейной машинке Улыбаюсь
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #14 : 05-08-2003 12:19 » 

Кстати о BDE я бы его использовать не рекомендовал из-за его некоторой кривости и кроме того по слухам сам борланд хотел от него отказатся  лично я предпочитаю использовать ADO
Записан

Странно всё это....
Asan
Гость
« Ответ #15 : 05-08-2003 12:30 » 

Цитата: LogRus
Кстати о BDE я бы его использовать не рекомендовал из-за его некоторой кривости и кроме того по слухам сам борланд хотел от него отказатся  лично я предпочитаю использовать ADO


Я тоже давным давно ADO использую.
BDE давно пора на свалку истории. Нафиг оно нужно, только лишние заморочки.
Записан
sh_m
Гость
« Ответ #16 : 05-08-2003 12:33 » 

Цитата: LogRus
Кстати о BDE я бы его использовать не рекомендовал из-за его некоторой кривости и кроме того по слухам сам борланд хотел от него отказатся  лично я предпочитаю использовать ADO


Не то что бы BDE сильно кривой, просто DSN-ы вообще штука неудобная. Все настройки для доступа к БД должны храниться в самом приложении. Так его распространять удобнее. Скопировал exe-шку, пару dll-ок к ней, и все работает. И не нужно на каждой машине настраивать ODBC-BDE.

С ADO я особо не работал. Но там вроде бы можно настроить коннект прямо из приложения, указав нужный драйвер и соответственно обойтись без DSN-ов.

У Borland-a есть новая технология доступа к БД - dbExpress. Никаких BDE-ODBC, вообще реестр не трогает. Вот только серверов БД пока маловато поддерживает.
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #17 : 05-08-2003 13:39 » 

Я тоже ADO использую. И вот ADO умеет брать файлы типа DSN и использовать их в качестве строки подключения ИМХО очень удобная вещь! Кстати вроде MS гразилась запретить использовать абривеатуру ADO в Borlande и он какбы весь интерфейс ADO должен быть спрятать в компоненты с другим именем!
Записан

Странно всё это....
Kot
Гость
« Ответ #18 : 06-08-2003 09:08 » 

Прошу прощения господа что долго ни появлялся.......пример от Asan я знаю собственно с ним и затык Билдер матерится говорит SQL.... функции незнает где взять я к ниму как говорит ся и так и эток а он ни в какую
Записан
Asan
Гость
« Ответ #19 : 06-08-2003 11:08 » 

Цитата: Kot
Прошу прощения господа что долго ни появлялся.......пример от Asan я знаю собственно с ним и затык Билдер матерится говорит SQL.... функции незнает где взять я к ниму как говорит ся и так и эток а он ни в какую

А как матерится то? Ошибки при линковке выскакивают или что?
Записан
Kot
Гость
« Ответ #20 : 07-08-2003 02:43 » 

Да ошибки выдает линковщик
Записан
Asan
Гость
« Ответ #21 : 07-08-2003 05:13 » 

Цитата: Kot
Да ошибки выдает линковщик

Что то типа "Unresolved external symbol ..."?
Значит, надо добавить в проект .lib - ы. Не знаю, у меня VS .NET,
все либы для ODBC похоже по умолчанию добавляются.
На билдере как, не знаю, но попробуй добавить  odbc32.lib,
odbccp32.lib
Записан
sh_m
Гость
« Ответ #22 : 07-08-2003 13:48 » 

Цитата: Kot
Да ошибки выдает линковщик


http://www.codenet.ru/db/odbc/
Здесь описано как подключать ODBC-шные библиотеки к Борланду

Цитата
Исходный код
Сначала несколько замечаний. В C++Builder есть заголовочные файлы для работы с ODBC. Нам нужно два из них - odbcinst.h и sql.h. Добавьте строки...
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines