Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как используя компоненты 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 надо смотреть


Наверх

Титульная страница Поиск, карта сайта Написать письмо