Автор
|
Тема: CDatabase and login
|
SBV |
опубликован 27-11-2001 18:11 MSK
Привет All!Проблема в следующем. При коннекте к Interbasе' базе методом Open CDatabase mDB; mDB.Open(_T("my_ODBC_DNS"),FALSE,FALSE,_T("ODBC;UID=MY_NAME;PWD=MY_PASS;"),...); выскакивает окошко логина в базу, с заполнеными полями, с ожиданием подтвеждения. Как сконнектится с базой без диалога. В VCL в TDatabase есть свойтво, позволяющее отключать диалог. А в CDatabase? Работаю в NT, VC6, FireBird 0.93, ODBC - INTERSOLVE (вроде-бы так пишется). Надеюсь на ответ!
|
MadiSoft
|
опубликован 30-11-2001 16:33 MSK
CDatabase mDB; mDB.Open(_T("my_ODBC_DNS"),FALSE,FALSE,_T("ODBC;UID=MY_NAME;PWD=MY_PASS;"),...);CString sDsn; mDB.OpenEx(sDsn,CDatabase::noOdbcDialog) ; sDsn - Твоя строка коннекта |
SBV
|
опубликован 01-12-2001 17:30 MSK
2MadiSoftПроблема оказалась в ODBC драйвере. Поставил Genesis - все заработало. А OpenEx с флагом CDatabase::noOdbcDialog не открывает диалог выбора источника данных, а логин всеравно открывается, если не указать UID и PWD. |
MadiSoft
|
опубликован 01-12-2001 17:46 MSK
Такого быть не может у меня прекрасно все работало. И ничего не выходило если коннект был правельный.Ивообще зачем тебе работать через Alias ,лучше напрямую с базой. |
SBV
|
опубликован 01-12-2001 18:04 MSK
А какие библиотеки есть для прямого доступа к IB из VC, или через IB API?
|
MadiSoft
|
опубликован 01-12-2001 19:06 MSK
Я имею ввиду через ODBC но минуя DSN.Например так: CDatabase database; CString sDriver = "название_драйвера_в_ODBC-менеджере"; CString sDBFileName= "имя_и_путь_для_DB"; CString sDsn; CString sPassword="Мой_пароль"; TRY { // Форматируем строку для доступа минуя DSN sDsn.Format("ODBC;PWD=%s;DRIVER={%s};DSN='';DBQ=%s",sPassword,sDriver,sDBFileName); if( database.OpenEx(sDsn,CDatabase::noOdbcDialog) ) { ... |
SBV
|
опубликован 01-12-2001 20:09 MSK
Но согласись, в этом случае мы теряем в гибкости, прошивая путь к базе в исходнике. Можно конечно запрашивать путь у юзера, но мне кажется получится просто дублирование алиаса. |
MadiSoft
|
опубликован 01-12-2001 22:10 MSK
Так надо ещё посмотреть для каких целей данная база. Можно просто закинуть к себе в корневой каталог.И почему база может окозаться в каком-нибудь другом месте. И ещё вопрос как ты алиас создаёш програмно или вручную и вообще кто его создаёт. |