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 ?