OpenDatabase
6 отговора
199 прегледа
OpenDatabase
Уважаеми господа,
Искам да отворя база данни, която е защитена с парола, чрез OpenDatabase Method. Опитвам се по следния начин:
Dim dbs as Database
Set dbs = OpenDatabase(App.Path & db.mdb,,,"ODBC;DATABASE=db.mdb;UID=;PWD=123;DSN=MyDSN")
Дава ми следната грешка, макар че паролата е вярна:
Not a valid password
На какво се дължи тази грешка?
Искам да отворя база данни, която е защитена с парола, чрез OpenDatabase Method. Опитвам се по следния начин:
Dim dbs as Database
Set dbs = OpenDatabase(App.Path & db.mdb,,,"ODBC;DATABASE=db.mdb;UID=;PWD=123;DSN=MyDSN")
Дава ми следната грешка, макар че паролата е вярна:
Not a valid password
На какво се дължи тази грешка?
Re: OpenDatabase
Е може и да не е админ, ама все пак не трябва да е празно.
Наведи главата защото прелитам ниско с асконата !!!
Наведи главата защото прелитам ниско с асконата !!!
Re: OpenDatabase
Прав си може и да не е, но доколкото разбирам той не създавал потребител, т.е. - по подразбиране е задал парола за user: Admin. Може и да не съм, но така или иначе не става ясно. :)
__
Колкото до Асконата - много хубава количка , аз бях много доволен от нея.

__
Колкото до Асконата - много хубава количка , аз бях много доволен от нея.
Re: OpenDatabase
Значи има два вида пароли
- първите са на юзер ниво (работа във WORKGROUP-а) и тогава трябва да имаш MDW файл заедно с MDB файла и при отварянето на БД се задава юзер и парола и базата данни чрез ADO се отваря така:
cnn.Provider = "Microsoft.Jet.OLEDB.4.0;"
cnn.Properties("Jet OLEDB:System database") = App.Path & "\db.mdw"
cnn.Open "Data Source=" & App.Path & "\db.mdb;User Id=" & strUser & ";Password=" & strPwd & ";"
- вторият тип пароли, са пароли влияещи върху цялата БД. За тях не е необходимо да имаш MDW файл. Това е по често използваният тип пароли поради простата причина, че са много по-лесни за менажиране от начинаещи потребители, които си мислят, че знаят всичко. За тях при отварянето им чрез ADO трябва да се зададе допълнителен параметър, а не юзер и парола и отварянето им става така:
cnn.Provider = "Microsoft.Jet.OLEDB.4.0;"
cnn.Properties("Jet OLEDB:Database Password") = strPwd
cnn.Open "Data Source=" & App.Path & "\db.mdb;"
където cnn е конекцията, която се декларира като: ADODB.Connection
като предварително разбира се си си направил референция в проекта към библиотеките на ADO-то
В кода който съм ти дал името на юзера трябва да е в променливата strUser(в първият случай), а паролата в променливата strPwd(и в двата случая)
Това което съм ти написал трябва да ти е повече от достатъчно, за да се справиш. Успех!
Бии, за да те уважават!
- първите са на юзер ниво (работа във WORKGROUP-а) и тогава трябва да имаш MDW файл заедно с MDB файла и при отварянето на БД се задава юзер и парола и базата данни чрез ADO се отваря така:
cnn.Provider = "Microsoft.Jet.OLEDB.4.0;"
cnn.Properties("Jet OLEDB:System database") = App.Path & "\db.mdw"
cnn.Open "Data Source=" & App.Path & "\db.mdb;User Id=" & strUser & ";Password=" & strPwd & ";"
- вторият тип пароли, са пароли влияещи върху цялата БД. За тях не е необходимо да имаш MDW файл. Това е по често използваният тип пароли поради простата причина, че са много по-лесни за менажиране от начинаещи потребители, които си мислят, че знаят всичко. За тях при отварянето им чрез ADO трябва да се зададе допълнителен параметър, а не юзер и парола и отварянето им става така:
cnn.Provider = "Microsoft.Jet.OLEDB.4.0;"
cnn.Properties("Jet OLEDB:Database Password") = strPwd
cnn.Open "Data Source=" & App.Path & "\db.mdb;"
където cnn е конекцията, която се декларира като: ADODB.Connection
като предварително разбира се си си направил референция в проекта към библиотеките на ADO-то
В кода който съм ти дал името на юзера трябва да е в променливата strUser(в първият случай), а паролата в променливата strPwd(и в двата случая)
Това което съм ти написал трябва да ти е повече от достатъчно, за да се справиш. Успех!
Бии, за да те уважават!
Re: OpenDatabase
Благодаря за отговора, приятелю, но не става дума за отваряне на connection.
Става дума за отваряне на база данни чрез метода OpenDatabase. Tова ми трябва, защото отваряки базата данни чрез този метод мога да променям Properies на полетата, например AllowZеroLenth да го настройвам на True.
Става дума за отваряне на база данни чрез метода OpenDatabase. Tова ми трябва, защото отваряки базата данни чрез този метод мога да променям Properies на полетата, например AllowZеroLenth да го настройвам на True.
Re: OpenDatabase
В момента нямам нито VB, нито Access, за да видя какви бяха параметрите на този метод, затова ще се опитам да карам по памет. Пробвай тва:
Set dbs = DBEngine.OpenDatabase(App.Path & db.mdb, False, False, "MS Access;PWD=parola")
Бии, за да те уважават!
Set dbs = DBEngine.OpenDatabase(App.Path & db.mdb, False, False, "MS Access;PWD=parola")
Бии, за да те уважават!