2010-10-25 3 views
3

Есть ли способ создать базы данных Access (.mdb) без фактического использования Ms Access? Я хотел бы, чтобы мое приложение создавало его вместо этого (когда пользователь нажимает «Новый документ» на панели инструментов).Delphi: создание Access DB (.mdb) без доступа к Ms

Я использую Delphi 5 Ent.

Заранее благодарен! :-)

ответ

2

Вот как это делается:

procedure CreateNewDatabase; 
var 
    AdoxCatalog: Catalog; 
begin 
    AdoxCatalog := CoCatalog.Create; 
    AdoxCatalog.Create(ConnectionString 
    + 'Jet OLEDB:Engine Type='+IntToStr(Jet4x)+';'); 
end; 

Вам потребуется ADOX_TLB, которые вы можете получить с помощью импорта типа библиотеки "Microsoft ADO Ext 2.8 для DDL и безопасности.".

+0

Спасибо за ваш ответ. Я планирую сделать свое приложение shareware. Как использование ADOX повлияет на развертывание? Нужно ли включать библиотеку ActiveX или просто app.exe? – AFF

+1

Насколько я знаю, ADOX уже установлен на XP и выше, точно так же, как ADO. [Wikipedia] (http://en.wikipedia.org/wiki/Microsoft_Data_Access_Components) говорит, что MDAC 2.5 включает ADOX и был включен в Windows, начиная с Windows 2000. – himself

+0

Я вижу. Теперь я знаю. Благодаря! :) – AFF

9

Да, есть способ, если вы используете библиотеку ADOX. Это библиотека ActiveX, которую вы можете импортировать в Delphi. Затем вы можете создать новую базу данных с кодом ниже. См. here.

procedure TForm1.btnNewDatabaseClick(Sender: TObject); 
var 
DataSource : string; 
dbName  : string; 
begin 
dbName:='c:\aboutdelphi.mdb'; 

DataSource := 
    'Provider=Microsoft.Jet.OLEDB.4.0' + 
    ';Data Source=' + dbName + 
    ';Jet OLEDB:Engine Type=4'; 

    ADOXCatalog1.Create1(DataSource); 
end; 
+0

Спасибо за ваш ответ :-) – AFF

+2

Рад быть полезным. Если вы считаете, что мой ответ - правильный ответ на ваш вопрос, вы можете отметить мой ответ как принятый. Так работает StackOverflow. Заранее спасибо. –

Смежные вопросы