Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

подключение с помощью Opendialog [D7, access]


Boxer ©   (2005-12-07 17:02:00) 

задача состоит в том, чтобы создать независимое подключение приложения-клиента к базе.
lделаю так:
procedure TForm1.btOpen(Sender: TObject);
begin
OpenDialog1.Execute;
end;

procedure TForm1.OpenDialog1Close(Sender: TObject);

Var DBPathName: string;

begin
DBPathName := OpenDialog1.FileName;
DataConnection.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'+
'User ID=Admin;'+
'DataSource='
+DBPathName+
'Mode=ReadWrite;'+
'Extended Properties="";'+
Jet OLEDB:System database="";'+
'Jet OLEDB:Registry Path="";'+
'Jet OLEDB:Database Password="";'+
'Jet OLEDB:Engine Type=5;'+
'Jet OLEDB:Database Locking Mode=1;'+
'Jet OLEDB:Global Partial Bulk Ops=2;'+
'Jet OLEDB:Global Bulk Transactions=1;'+
'Jet OLEDB:New Database Password="";'+
'Jet OLEDB:Create System Database=False;'+
'Jet OLEDB:Encrypt Database=False;'+
'Jet OLEDB:Don"'+{вот тут еще ап-остров в слове don't мешает, поэтому поставил там кавычку. Это считается ошибкой?}
't Copy Locale on Compact=False;'+
'Jet OLEDB:Compact Without Replica Repair=False;'+
'Jet OLEDB:SFP=False';
DataConnection.Connected:=true;
spQuestions.Active:=true;
end;
где затуп, блин. вываливается ошибка невозможно найти устанавливаемый ISAM


Плохиш   (2005-12-07 17:19:00) [1]


> 'Jet OLEDB:Don"'+{вот тут еще ап-остров в слове don't мешает,
>  поэтому поставил там кавычку. Это считается ошибкой?}

Конечно! Учите матчасть, чтобы апостров должен дублироваться.
ну и [1] тоже


msguns   (2005-12-07 17:19:00) [2]

Пардон:

procedure TMainForm.App_MainSettings_Load;
begin
 with TIniFile.Create(GetCurrentDir+'\'+CMAIN_INIFILENAME) do
  begin
    Path_To_Database := ReadString('DATABASE','Path_To_DataBase',GetCurrentDir+CMAIN_DATABASEFILENAME);
    Free;
  end;
end;


msguns   (2005-12-07 17:16:00) [3]

procedure TMainForm.FormShow(Sender: TObject);
begin
    Path_To_Database := ReadString('DATABASE','Path_To_DataBase',GetCurrentDir+CMAIN_DATABASEFILENAME);
end;

...

procedure TfrmSettings.spbSelDBClick(Sender: TObject);
begin
 with TOpenDialog.Create(Self) do
   begin
    FileName := ExtractFileName(edDataBaseFile.Text);
    InitialDir := ExtractFilePath(edDataBaseFile.Text);
    Filter := 'Файлы Access (*.mdb)|*.MDB';
    if Execute then
      begin
       edDataBaseFile.Text := FileName;
      end;
    Free;
   end;
end;

procedure TfrmSettings.spbSaveSetClick(Sender: TObject);
begin
 MainForm.Path_To_Database := edDataBaseFile.Text;
end;

...

function TdmLibr.DB_Open: boolean;
begin
 result := true;
 with cnLibr do
   if not Connected then
     try
      ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;'+
                          'Data Source='+MainForm.Path_To_Database+';'+
                          'Persist Security Info=False';
      Open;
     except
      result := false;
     end;
end;


Johnmen   (2005-12-07 17:12:00) [4]

Где затупил, не знаю, стандартно пишется так:
if OpenDialog1.Execute then begin
...
 end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо