![]() |
Re: SQL-Abfrage
Vielen Dank, genau das habe ich gemeint
|
Re: SQL-Abfrage
Sollte das nicht ganz einfach so zu lösen sein?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var row : Integer; begin Query1.Close; Query1.SQL.Text := 'SELECT [Name], Geburtsdatum1,PartnerName, GeburtsdatumPartner' + + #10+ 'FROM <Tabellenname> ORDER BY [Name]'; Query1.Open; StringGrid1.RowCount := Query1.RecordCount + StringGrid1.FixedRows; row := 1; While not (Query1.Eof) do begin StringGrid1.Cells[1,row] := Query1.FieldByName ('name').AsString; StringGrid1.Cells[2,row] := Query1.FieldByName ('Geburtsdatum1').AsString; Inc (row); StringGrid1.Cells[1,row] := Query1.FieldByName ('PartnerName').AsString; StringGrid1.Cells[2,row] := Query1.FieldByName ('GeburtsdatumPartner').AsString; Inc (row); Query1.Next; end; end; |
Re: SQL-Abfrage
Moin,
ich kenn jetzt ACCESS nicht sehr gut, habe aber vor Kurzem hier gelesen, dass ACCESS auch Stored Procedures hat. In dem Falle, wäre das 'ne Möglichkeit. Unter Firebird würde das in etwa so aussehen :
SQL-Code:
Das ganze kann dann mit einem
CREATE PROCEDURE SP10
RETURNS ( OUT_NAME VARCHAR (50), OUT_DATUM DATE) AS declare variable tmp_nname varchar (50); declare variable tmp_ndatum date; declare variable tmp_pname varchar (50); declare variable tmp_pdatum date; BEGIN /* Auslesen aller Records in tmp-variablen */ for select nname, ndatum,pname,pdatum from tabelle1 into :tmp_nname, :tmp_ndatum, :tmp_pname, :tmp_pdatum do begin /* für jeden record die Ausgabe-variablen mit Name und Datum belegen und den Wert mit suspend ausgeben */ out_name = :tmp_nname; out_datum = :tmp_ndatum; suspend; /* für jeden record die Ausgabe-variablen mit Partnernamen und Datum belegen und den Wert mit suspend ausgeben */ out_name = :tmp_pname; out_datum = :tmp_pdatum; suspend; end END
SQL-Code:
ausgelesen werden.
select * from SP10
Tschüss, Lutz |
Re: SQL-Abfrage
Welche Delphi-Version hast Du?
Bei Delphi 7 Arch geht das so: * ADO-Connection auf Access-Datenbank legen * ADO-Query mit ADO-Connection verbinden * SQL-Code bei ADOQuery schreiben (z.b. select * from adressen) * DataSource mit ADO-Query verbinden * DBGrid mit DataSource verbinden * Doppelklick auf DBGrid * Eigene Columns definieren und bei Fieldname eben die entsprechenden Felder auswählen Du kannst aber das SQL-Statement auch so legen, daß eben nur die gewünschten Felder zurückgeliefert werden - dann füllt sich die DBGrid von alleine. Für Sortierung etc. eben ORDER etc. verwenden. Für Gruppierungen GROUP BY. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz