![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как используя компоненты ADO создать базу данныз Access? [D5, D7, Access]
first_aid © (2003-06-04 08:56:00)Собственно, вопрос в заголовке.
Заранее всем спасибо.
sniknik (2003-06-04 13:51:00) [1]> Да и еще, не подскажешь где можно посмотреть синтаксис SQL, для работы с базами Access
найди справку JETSQL40.CHM (на машине с установленным Офисом 2000/XP)
sniknik (2003-06-04 13:48:00) [2]first_aid © (04.06.03 10:21)
> Создал, все работает, а какого формата база создается: Access97 или Access2000.
function TDMod.CreateMDBBase(BaseName: string): boolean;
var AdoEngine: Variant;
begin
result:= false;
if Length(BaseName)=0 then begin
DoIfError("Не определено имя базы");
exit;
end;
try
if Copy(UpperCase(BaseName), Length(BaseName)-3, 4) <> ".MDB" then BaseName:= BaseName + ".MDB";
AdoEngine:= CreateOleObject("ADOX.Catalog");
AdoEngine.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Trim(BaseName)+";Jet OLEDB:Engine Type=5;");
AdoEngine.ActiveConnection.Close;
AdoEngine:= Null;
result:= true;
except
on E: Exception do DoIfError(E.Message);
end;
end;
Engine Type= 52000-й 4-97й
Мое имя (клоны суксь) (2003-06-04 12:00:00) [3]
> Как используя компоненты ADO
> viman (04.06.03 09:36)
> "DAO.DBEngine.36",
ыыыыы
слышал звон...
first_aid (2003-06-04 10:21:00) [4]2 viman
Создал, все работает, а какого формата база создается: Access97 или Access2000.
Да и еще, не подскажешь где можно посмотреть синтаксис SQL, для работы с базами Access.
viman (2003-06-04 09:37:00) [5]А таблицы SQL запросами создать можно
PooH (2003-06-04 09:37:00) [6]импортируй в проект библиотеку типов от ADOX(обычно \Program Files\Common Files\System\ado\msadox.dll), а далее:
uses ADOX_TLB;
Catalog := (CreateComObject(CLASS_Catalog) as _Catalog);
if Catalog = nil then raise EDMException.Create("Невозможно создать объект ADOX");
Catalog.Create(CONNECT_STR + FileName);
viman (2003-06-04 09:36:00) [7]Procedure CreateMSAccessDatabase(filename : String);
var DAO: Variant;
i:integer;
Const Engines:array[0..2] of string=("DAO.DBEngine.36", "DAO.DBEngine.35", "DAO.DBEngine");
Function CheckClass(OLEClassName:string):boolean;
var Res: HResult;
begin
Result:=CoCreateInstance(ProgIDToClassID(OLEClassName), nil, CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER, IDispatch, Res)=S_OK;
end;
begin
For i:=0 to 2 do
if CheckClass(Engines[i]) then
begin
DAO := CreateOleObject(Engines[i]);
DAO.Workspaces[0].CreateDatabase(filename, ";LANGID=0x0409;CP=1252;COUNTRY=0", 32);
exit;
end;
Raise Exception.Create("DAO engine could not be initialized");
end;
Мое имя (клоны суксь) (2003-06-04 09:23:00) [8]вроде как ADOX надо смотреть