Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > База данных Access


Автор: NiJazz 22.1.2005, 18:56
Есть база данных MS Access - файл с расширением *.mdb. Я беру компонент TDatabase, в свойство DatabaseName записываю путь к этому mdb-файлу. DriverName выбираю MSACCESS. Если попытаться свойству Connected присвоить True, то запрашивает имя и пароль. Что ему надо? Я ввел своё имя, нажал ОК и велезло сообщение об ошибке "Invalid parameter".
Я свойству LoginPromt присвоил False. Тогда он мне просто выдаёт ту же ошибку.
Вот. smile smile smile
Добавлено @ 19:03
И как лучше создавать БД MS Access в Delphi?

Автор: Vit 22.1.2005, 19:32
Никак. BDE не поддерживает MS Access версий позднее чем от Office 97. Используйте ADO

Автор: Dimyan 22.1.2005, 19:38
Цитата(NiJazz @ 22.1.2005, 22:56)
И как лучше создавать БД MS Access в Delphi?

Код

connectPath := SaveDlg.FileName;
   //Создаем сохраняемую новую базу
   cat := CreateOleObject('ADOX.Catalog');
   cat.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + connectPath );
   cat := NULL;
   BaseConnect.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + connectPath;
   BaseQuery.SQL.Clear;
  BaseQuery.SQL.Text := 'CREATE TABLE MyTable' +
   '( ' +
   '  NodeID counter NOT NULL UNIQUE, ' +
   '  ParentID LONG NOT NULL, ' +  
   '  NodeName CHARACTER(255) WITH COMPRESSION NOT NULL, ' +  
   '  NodeType INTEGER NOT NULL,' +  
   '  AnsText MEMO WITH COMPRESSION,' +  
   '  PRIMARY KEY (NodeID) ' +
   ')';
  BaseConnect.Open;
   BaseQuery.ExecSQL;
   BaseQuery.SQL.Clear;
  BaseQuery.SQL.Text := 'CREATE INDEX AnsTxt ON FAQTable(AnsText)';
   BaseQuery.ExecSQL;
  BaseConnect.Close;


где
cat: OLEVariant;

и надо добавить ComObj в uses

Автор: NiJazz 22.1.2005, 19:41
Vit
Правда, что ADO во много раз медленнее BDE?
А есть ли какие-нибудь типы БД, поддерживаемые BDE, у которых вся БД содержится в одном файле?
Цитата
BDE не поддерживает MS Access версий позднее чем от Office 97

А если установить Access 97 и создать БД в нём? Будет работать на машинах, где Office 2000 и выше?
Добавлено @ 19:41
Dimyan
Боюсь, слишком сложно smile

Автор: Дрюча 22.1.2005, 20:24
На практике у меня ADO работало примерно так же как и BDE... может потомучто не было больших таблиц... Самое главное - правильно организовать работу с базой данны...


Про 97 и 2000 У меня работало и работает...

Автор: Dimyan 23.1.2005, 07:51
Я не замечал тормозов с ADO
А если программа будет на машинах с XP работать то Office и вообще не обязательно smile) там уже все Jet драйвера и так есть

Автор: Bes 24.1.2005, 07:50
2NiJazz:
Не забывай, что для работы с запаролеными акцесовскими таблицами. нужно указывать путь помимо файла базы еще и к файлу паролей *.mdw

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)