Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL-Abfrage (https://www.delphipraxis.net/39499-sql-abfrage.html)

Das S 4. Feb 2005 07:19

Re: SQL-Abfrage
 
Vielen Dank, genau das habe ich gemeint

Sharky 4. Feb 2005 07:52

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;

lume96 4. Feb 2005 08:13

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:
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
Das ganze kann dann mit einem
SQL-Code:
select * from SP10
ausgelesen werden.

Tschüss,
Lutz

Catbytes 4. Feb 2005 08:30

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 22:39 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz