Тема: MS ACCeSs
Показать сообщение отдельно
  #7  
Старый 22.02.2008, 14:51
Аватар для XIO
XIO XIO вне форума
Новичок
 
Регистрация: 06.12.2007
Сообщения: 77
Репутация: 32
По умолчанию

На счет пути к базе данных. Часто бывает что при использовании диалогов TOpenDialog или TSaveDialog, пути к папке от куда запущен экземпляр, сбиваются, следовательно такой код:
Data Source=BD.mdb
уже без сбоя не сработает. Поэтому есть ещё такой верный способ, которым я уже давно пользуюсь:
Код:
//******************************************************************************
//  Функция возвращает путь директории из которой была запущена программа.
Function PrgDir(): String;
var
  szFileName : array[0..49] of char;
  FilePut: String[255];
  szModuleName : array[0..19] of char;
  iSize : integer;
  J: integer; //Счетчик
begin
  StrPCopy(szModuleName, 'NameOfModule');
  iSize := GetModuleFileName(GetModuleHandle(szModuleName),szFileName,
  SizeOf(szFileName));
  if iSize > 0 then
    begin
      FilePut := StrPas(szFileName);
      FilePut := ExtractFilePath(StrPas(szFileName));  //Проверим функцию...
      PrgDir := FilePut;
    end
  else
    begin
      ShowMessage('System dir error!!!');
    end;
end;
Правда в ней возможны лишние фичи, давно делал(не без помощи форумчан), все некогда сесть и до ума довести... Так вот, использовать эту функцию можно так:

Код:
      DataModl.ADOConnection.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source='+PrgDir+'DB.mdb ;';
      DataModl.ADOConnection.Connected := True;
//... И далее активация таблиц и прочии операции

Способ действенный, багов пока наблюдать не приходилось. Если придётся дайте знать
__________________
"Люди никогда не видят то, существование чего им кажется невозможным." ©Терри Пратчетт
Ответить с цитированием