Формирование строки подключения во время запуска программы

В Windows7 компонент ADOConnection при переносе на другие компьютеры готового исходника, сбрасывает строку подключения на собственную «C:\Windows\system32″ или подобную.
Выхода и данной ситуации может быть два. Или переносить файл с базой данных в эту папку, или поставить ниже следующий костыль. Данный костыль формирует строку подключения во время запуска программы, а именно создания Дата модуля.

[cc lang=»delphi» tab_size=»2″ line_numbers=»false» no_links=»false»]
procedure TDataModule1.DataModuleCreate(Sender: TObject);
var
WhereAmI : string;
begin
GetDir(0,WhereAmI); (* WhereAmI is a string stored in «Unit Globals».*)
ConnectionString := WhereAmI + ‘\Database.mdb’; (* DB_Name is also a string stored in Globals *)
If ADOConnection1.ConnectionString = » then
begin
ADOConnection1.ConnectionString := ‘Provider=Microsoft.Jet.OLEDB.4.0;’ +
‘Data Source=’ + ConnectionString + ‘;Persist Security Info=False’;
ADOConnection1.Connected:= true;
Found_Variants_Query.Active:=true;
Search_Words_Query.Active:=true;
Black_Words_Query.Active:=true;
Black_Users_Query.Active:=true;
end;
end;
[/cc]

Нашли ошибку в тексте?

Формирование строки подключения во время запуска программы: 2 комментария

  1. ­

    а я у себя так это сделал

    ADOConnection1.Close();
    ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+'DB.mdb;Persist Security Info=False';
    ADOConnection1.Open();
    ADOQuery1.Active:=True;

    1. blog Автор записи

      Это тоже верно. Я в дизайт тайме у ADOConnection строку подключения оставляю пустой. А при создании она проверяет на пустоту, и заполняет её если она не задана.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *