Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.02;
Скачать: CL | DM;

Вниз

Password on DB MS Access   Найти похожие ветки 

 
kblc ©   (2006-02-07 13:10) [0]

Уважаемые мастера, помогите плз решить проблему. Пытаюсь сменить пароль на файл БД MS Access;
Но это исключение меня уже достало :( . На данный момент пароль стоит пустой, т.е. пароля нет.
исключение:
 при выполнении строки DB:=DAO.OpenDatabase(AFileName,VOptions,VReadOnly,VConnect); попадаю в CheckAutoResult а оттуда уже в SafeCallError(). Там и вызывается raise


var
 LAST_DATABASE_ERROR: string = "";
 //....

function Database_ChgPassword(const ALPassword, ANPassword: string): BOOLEAN;
var
 DAO: _DBEngine;
 DB:   Database;
 ClassID: TGUID;
 VOptions, VReadOnly, VConnect: OLEVariant;
 AFileName, LPassword, NPassword: WideString;
const
 V35 = "DAO.DBEngine.35";
 V36 = "DAO.DBEngine.36";
begin
 Result:=FALSE;
 try
   /////////////////////////////
   try
     try
       ClassID := ProgIDToClassID(v36);
     except
       ClassID := ProgIDToClassID(v35);
     end;
     if ALPassword<="" then LPassword:=#0 else LPassword:=WideString(ALPassword);
     if ANPassword<="" then NPassword:=#0 else NPassword:=WideString(ANPassword);
     AFileName:=WideString("C:\123.mdb");       //файл точно не открыт никакой другой программой
     VOptions:=dbDriverCompleteRequired;        // либо любые другие возможные (в т.ч. TRUE - как указано во многих примерах)
     VReadOnly:=WORDBOOL(FALSE);
     VConnect:=WideString(";Pwd=" + LPassword); //VConnect:="" тоже не помогает
     DAO:=CreateComObject(ClassID) as _DBEngine;
     DB:=DAO.OpenDatabase(AFileName,VOptions,VReadOnly,VConnect); // в этом месте получаю исключение (т.е. при выполнении этой строки). "Ошибочный аргумент"
     with DB do
     begin
       NewPassword(LPassword, NPassword);
       Close;
     end;
     Result:=TRUE;
   except
     on E: Exception do
     begin
       LAST_DATABASE_ERROR:=E.Message;
     end;
   end;
 finally
   DAO:=nil;
   DB:=nil;
   /////////////////////////////
 end;
end;


П.С.
 Может это и не важно, но я использую Delphi 2005


 
sniknik ©   (2006-02-07 13:47) [1]

ALTER DATABASE PASSWORD


 
sniknik ©   (2006-02-07 13:49) [2]

p.s. открыто должно быть экслюзивно(монопольно)


 
kblc ©   (2006-02-07 21:32) [3]

Можно поподробнее:
 Как в строке соединения (ConnectionString [ADOConnection]) указать монопольный доступ?


 
sniknik ©   (2006-02-07 22:22) [4]

там галочка есть... на третьей закладке мастера составляющего строку, так и называется exclusive, ее поставь, остальные сними при той же строке что была.



Страницы: 1 вся ветка

Текущий архив: 2006.04.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.058 c
2-1142618474
Fenix
2006-03-17 21:01
2006.04.02
Траблы с типами...


15-1141903126
iamdanil
2006-03-09 14:18
2006.04.02
Java


3-1139565329
Polevi
2006-02-10 12:55
2006.04.02
Приходный ордер форма № М-4


11-1122315580
AlexLumpov
2005-07-25 22:19
2006.04.02
OnClose в модальной форме на KOL


2-1142414436
PoetOfDelphi
2006-03-15 12:20
2006.04.02
Проверка поля типа TNotifyEvent