Вниз
Скачать: CL | DM;

Как используя компоненты ADO создать базу данныз Access?   Найти похожие ветки 

← →
first_aid ©   (2003-06-04 08:56) [0]

Собственно, вопрос в заголовке.

Заранее всем спасибо.


← →
Мое имя (клоны суксь)   (2003-06-04 09:23) [1]

вроде как ADOX надо смотреть


← →
viman   (2003-06-04 09:36) [2]

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;


← →
viman   (2003-06-04 09:37) [3]

А таблицы SQL запросами создать можно


← →
PooH   (2003-06-04 09:37) [4]

импортируй в проект библиотеку типов от 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);


← →
first_aid ©   (2003-06-04 10:21) [5]

2 viman

Создал, все работает, а какого формата база создается: Access97 или Access2000.

Да и еще, не подскажешь где можно посмотреть синтаксис SQL, для работы с базами Access.


← →
Мое имя (клоны суксь)   (2003-06-04 12:00) [6]


> Как используя компоненты ADO



> viman (04.06.03 09:36)


> "DAO.DBEngine.36",


ыыыыы
слышал звон...


← →
sniknik ©   (2003-06-04 13:48) [7]

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= 5 2000-й 4-97й


← →
sniknik ©   (2003-06-04 13:51) [8]

> Да и еще, не подскажешь где можно посмотреть синтаксис SQL, для работы с базами Access

найди справку JETSQL40.CHM (на машине с установленным Офисом 2000/XP)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.018 c
3-83995
Sevish
2003-05-30 14:00
2003.06.26
Ошибка конвертации между кодировками!


3-83972
DBDev
2003-05-29 16:54
2003.06.26
ПОМОГИТЕ грамотно организовать поиск на базе SP?


14-84617
bkv
2003-06-09 15:42
2003.06.26
Программка для сверки исходников.


6-84512
LOX
2003-04-17 11:43
2003.06.26
TWebBrowser команда правка в блокнот.


3-83994
DNK
2003-05-30 13:18
2003.06.26
Параметры с одинаковыми именами (ADO)




   Наверх