Как изменить пароль в файлах *.mdb через ADO?
Необходимо программным путём изменить пароль! (использую ADO)
Советовали использовать запрос:
Код:
ALTER USER username PASSWORD NewPassword OldPassword
Но почему-то он выдает ошибку:
[Microsoft][Драйвер ODBC Microsoft Access]Ошибка синтаксиса в инструкции ALTER TABLE.
Возможно кто-то знает иной способ смены пароля.
Благодарен буду любой инфе (ссылки, предложения, каким-то идеям или сооброжениям по данному вопросу)!
Подробнее что уже пробовал:
На форме находится ADOConnection1 и ADOQuery1 (они связанны).
Код:
ADOQuery1->SQL прописывал следующий:
ALTER USER "admin" PASSWORD "" "777"
ALTER USER "" PASSWORD "" "777"
ALTER USER "admin" PASSWORD "" "777"
ALTER USER "" PASSWORD "" "777"
(1.пароли new и и old - местами менял!
2.вместо " ставил ' - ошибка та же)
Строка подключения получилась следующей (Если каму-то она что-то скажет. Естественно это всё без <Enter>-ов):
Код:
Provider=MSDASQL.1;
Persist Security Info=False;
Extended Properties="DBQ=D:\БД 777\БД (ACCESS)\111.mdb;
DefaultDir=D:\БД 777\БД (ACCESS);
Driver={Microsoft Access Driver (*.mdb)};
DriverId=25;
FIL=MS Access;
FILEDSN=D:\БД 777\Источники ODBC\IstODBCAccess.dsn;
MaxBufferSize=2048;
MaxScanRows=8;
PageTimeout=5;
SafeTransactions=0;
Threads=3;
UID=admin;
UserCommitSync=Yes;
";
Initial Catalog=D:\БД 777\БД (ACCESS)\111;
Persist Security Info=False;
Extended Properties="DBQ=D:\БД 777\БД (ACCESS)\111.mdb;
DefaultDir=D:\БД 777\БД (ACCESS);
Driver={Microsoft Access Driver (*.mdb)};
DriverId=25;
FIL=MS Access;
FILEDSN=D:\БД 777\Источники ODBC\IstODBCAccess.dsn;
MaxBufferSize=2048;
MaxScanRows=8;
PageTimeout=5;
SafeTransactions=0;
Threads=3;
UID=admin;
UserCommitSync=Yes;
";
Initial Catalog=D:\БД 777\БД (ACCESS)\111;
[COLOR=red]+ - свои сообщения лучше размещать в удобночитаемом виде, используя форматирование[/COLOR]
По моему, для этого тебе необходимо использовать один из двух вариантов - работать с Акцессом как с СОМ-сервером, и обращаться его методам или (что примерно одно и тоже) использовать компоненты с закладки Office. Вряд ли в приложении реализован механизм смены пароля через запрос. По крайней мере вопросы об этом задаются уже лет 5, а ответов пока нет :) И одна из причин - слишком много ограничений - поэтому микрософт рекомендует организовывать защиту на уровне приложения а не базы.
Есть над чем поработать.
(Приятно когда кто-то может поддержать разровор. Обычно на мои вопросы никто не может ответить :) )
А, по поводу:
"... а ответов пока нет"
Глянь сюда (вроде что-то предложили, пока конечно не разобрался, но кажется что-то дельное):
http://forum.vingrad.ru/index.php?showtopic=63015
Цитата:
Originally posted by Тамирлан
Интересный подход к вопросу.
Есть над чем поработать.
(Приятно когда кто-то может поддержать разровор. Обычно на мои вопросы никто не может ответить :) )
А, по поводу:
"... а ответов пока нет"
Глянь сюда (вроде что-то предложили, пока конечно не разобрался, но кажется что-то дельное):
http://forum.vingrad.ru/index.php?showtopic=63015
Интересный подход к вопросу.
Есть над чем поработать.
(Приятно когда кто-то может поддержать разровор. Обычно на мои вопросы никто не может ответить :) )
А, по поводу:
"... а ответов пока нет"
Глянь сюда (вроде что-то предложили, пока конечно не разобрался, но кажется что-то дельное):
http://forum.vingrad.ru/index.php?showtopic=63015
ну так это и есть СОМ-объект - в данном случае драйвера - и вызов его метода.
У TADOConnection есть свойство ConnectionObject - можно попытаться получить указатель на интерфейс через него. Примеры которые привели тебе - это VC++.