Главная страница
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.031 c
2-1142598661
ttt_111
2006-03-17 15:31
2006.04.02
Как свернуть программу в tray?


1-1141204493
ArtemESC
2006-03-01 12:14
2006.04.02
OpenDialog и фильтры


2-1141726763
nap<>
2006-03-07 13:19
2006.04.02
UPX


1-1141025682
Diezel
2006-02-27 10:34
2006.04.02
Грабер формы memo


2-1142464424
Алекс2
2006-03-16 02:13
2006.04.02
Печать активного документа