Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.143.0.89] |
|
Данный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Сообщ.
#2
,
|
|
|
да вроде бы никак - CREATE DATABASE в Аксесе не прокатит; и ODBC тут не поможет - тут нужен DAO
|
Сообщ.
#3
,
|
|
|
На Дельфи/DAO:
<br>Procedure CreateMSAccessDatabase(filename : String);<br>var DAO: Variant;<br> i:integer;<br>Const Engines:array[0..2] of string=('DAO.DBEngine.36', 'DAO.DBEngine.35', 'DAO.DBEngine');<br><br> Function CheckClass(OLEClassName:string):boolean;<br> var Res: HResult;<br> begin<br> Result:=CoCreateInstance(ProgIDToClassID(OLEClassName), nil, CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER, IDispatch, Res)=S_OK;<br> end;<br>begin<br> For i:=0 to 2 do<br> if CheckClass(Engines[i]) then<br> begin<br> DAO := CreateOleObject(Engines[i]);<br> DAO.Workspaces[0].CreateDatabase(filename, ';LANGID=0x0409;CP=1252;COUNTRY=0', 32);<br> exit;<br> end;<br> Raise Exception.Create('DAO engine could not be initialized');<br>end;<br> Кусочек кода, который должен распознавать какая версия DAO установлена на компьютере мной не мог быть оттестирован, так как только одна работающая версия DAO может быть установлена на компьютере. У меня установлен Office XP (DAO36) и на нем все работает нормально. PS. Создать можно только через DAO, через BDE/ADO/ODBC невозможно. Правда можно чистую базу данных подцепить как ресурс, и вместо создания вытаскивать её |