SQL/Delphi

Ist es in Delphi auch möglich direkt den Path eines MDB-Files (MS-Access) anzugeben um es mit SQL-Statements zu bearbeiten, ohne ODBC oder BDE-Verbindungen wie in VB ?

Jep…über COM. Die Jet muss installiert sein (logisch)

var ws,db,rs: variant;
S: String;
S:=‚select * from authors‘;
DBEngine := CreateOleObject(‚DAO.DBEngine.35‘);
ws := DBEngine.Workspaces[0];
db := ws.OpenDatabase(‚BIBLIO.MDB‘);
rs := DB.OpenRecordSet(‚Authors‘,dbOpenTable);
//oder für Abfrage:
RS := DB.OpenRecordset(S, dbOpenDynaSet);
rs.MoveFirst;
usw…
Freigabe mit RS:=unassigned…

Viel erfolg!

wie würde man zur Laufzeit die Namen der Felder und deren Typ herausfinden, falls das MDB-Nicht bekannt ist.
Geht das überhaupt ?

for i:=0 to Pred(DBengine.Database.Tabledefs.Count) do
begin
for k:=0 to Pred (DBengine.Database.Tabledefs[i].Fields.Count) do
begin
ShowMessage(DBengine.Database.Tabledefs[i].Fields[k].Name;
…Case DBengine.Database.Tabledefs[i].Fields[k.Type of
dbBigInt: ShowMessage(‚Longint‘);
dbBinary: ShowMessage(‚Binary‘);
…usw
end;
end;

nicht getestet, für näheres schau mal in die access-Hilfe oder msdn.microsoft.com/library

viel Erfolg!

Welche Unit bindest du ein ?
Bei mir sit DBengine unknown identifier.

Kommt man bei dieser Variante ohne BDE aus ?