Forum
Grundkurs
»Introduktion
»Snabbguide
»Komponenter
»Händelser
»Strängar
»Räkna med Delphi »Egna
typer
»Selektion
»Iteration
»Menyer
»Funktioner
»Arraystrukturer
Tips & Tricks
»Nya tips
»Blandat
»Databaser
»Filer
»Forms
»Grafik
»Internet
»Komponenter
»Matematik
»Multimedia
»Objekt/ActiveX
»Skrivare
»Strängar
»System
»Mest lästa tips
Artiklar
»Delphi och ADO
»Bygga en DLL
»Skapa en enkel rapport
»Hantera registret
»Enheter, units
»Klassen TCanvas
»Använd LookUp Controls
Nya
tips
Lägg
till tips
Delphilänkar
Gästbok
|
|
|
|
Exekvera en fråga i MS Access
|
Kategori: Databaser
Inlagt: 2006-07-01
Läst: 1552
Inlagt av: Staffan Berg
|
Beskrivning |
Detta exempel beskriver hur du kan exekvera en lagrad query i Access (.mdb-fil) och köra den från Delphi.
|
Kod |
var access, db, td, queryDef, curField, Value: Variant; str: string ; i: Integer; begin //load a DAO in memory access := CreateOleObject('DAO.DBEngine.36'); //open a database db := access.OpenDatabase(yourMDBFileName); //find the query by name queryDef := NULL; td := db.QueryDefs; for i := 0 to td.Count-1 do if (td.Item[i].Name = TableName) then begin queryDef := td.Item[i]; td := UnAssigned; break end; if not VarIsNull(queryDef) and not VarIsEmpty(queryDef) then begin recordset := queryDef.OpenRecordset; //navigate thru records in query while not recordset.Eof do begin for i := 0 to recordset.Fields.Count-1 do begin curField := recordset.Fields.Item[i]; str := curField.Name; // field name Value := curField.Value; // field value //do something with value end; recordset.MoveNext; end; //close recordset instance recordset.Close; recordset := NULL; end; //close database and DAO db.Close; db := NULL; access := UnAssigned; end;
|
|
|