Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.26;
Скачать: 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 вся ветка

Текущий архив: 2003.06.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
1-84082
АлеКо
2003-06-06 08:55
2003.06.26
Как правильно закрыть Excel


14-84549
kaif
2003-06-07 03:43
2003.06.26
Есть заказ для настоящего дельфиста


1-84182
den
2003-06-11 23:30
2003.06.26
TPanel


14-84560
Начинающий шароварщик
2003-05-28 16:55
2003.06.26
Shareware - за и против


1-84214
Ig
2003-06-11 19:47
2003.06.26
Подскажите пожалуйста, как поместить значение из TEdit в Timer.In