Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Abfragefeldinhalt nutzen (https://www.delphipraxis.net/112960-sql-abfragefeldinhalt-nutzen.html)

d6lpz 30. Apr 2008 08:28

Datenbank: Access • Version: 2k • Zugriff über: ADO

SQL Abfragefeldinhalt nutzen
 
Hallo,

irgendwie habe ich scheinbar Tomaten auf den Augen...

Wie kann ich den Inhalt eines SQL Abfragefeldes in einer anderen SQL Abfrage als Parameter weiternutzen?

Delphi-Quellcode:
var
        s_emplID :string;
        str_sql: string;
begin

        v3:=lb_name.KeyValue;
        str_sql:='SELECT '+
                'PAccounts.personalID, '+
                'PAccounts.lastYearHoliday, '+
                'PAccounts.yearHoliday, '+
                'PAccounts.yearPFree, '+
                'PAccounts.lastYearTimeAccount '+
                'FROM PAccounts '+
                'WHERE ((PAccounts.personalID)=:'+ v3 +')';

        datamodule1.qry_Empl_PAccounts.Active:=False;
        datamodule1.qry_Empl_PAccounts.SQL.Clear;
        datamodule1.qry_Empl_PAccounts.SQL.Add(str_sql);
        datamodule1.qry_Empl_PAccounts.Active:=True;

        s_emplID:=datamodule1.DSource_lastYH.DataSet['lastYearHoliday'].text;     <<-- geht nicht
        s_emplID:=datamodule1.Qry_Empl_PAccounts.FieldValues['lastYearHoliday'];  <<-- geht auch nicht
Danke für alle erhellenden Hinweise (F1 hat mich bis jetzt noch nicht weiter gebracht)
Dirk

tomsel 30. Apr 2008 08:33

Re: SQL Abfragefeldinhalt nutzen
 
Delphi-Quellcode:
 s_emplID:=datamodule1.Qry_Empl_PAccounts.FieldByName('lastYearHoliday').AsString;

d6lpz 30. Apr 2008 09:09

Re: SQL Abfragefeldinhalt nutzen
 
Zitat:

Zitat von tomsel
Delphi-Quellcode:
 s_emplID:=datamodule1.Qry_Empl_PAccounts.FieldByName('lastYearHoliday').AsString;

Danke, jetzt bekomme ich zwar keine Fehlermeldung mehr aber die Variable s_emplID bleibt leer. Obwohl in dem Feld ein Wert drinsteht.
Die Abfrage liefert genau einen DS. Muß ich trotzdem den ersten (und einzigen DS) ansprechen. Wenn ja wie?
Dirk

tomsel 30. Apr 2008 09:47

Re: SQL Abfragefeldinhalt nutzen
 
Wieso steht hier ein Doppelpunkt?

Zitat:

'WHERE ((PAccounts.personalID)=:'+ v3 +')'
Dieser wäre erforderlich, wenn danach ein Parametername käme, tatsächlich kommt da aber anscheinend der zu selektierende Wert. Ein entsprechender Parameter wird jedenfalls nirgends definiert.

Wahrscheinlich ist die Ergebnismenge einfach nur leer. Versuch's mal ohne diesen Doppelpunkt.

d6lpz 30. Apr 2008 11:24

Re: SQL Abfragefeldinhalt nutzen
 
Zitat:

Zitat von tomsel
Wieso steht hier ein Doppelpunkt?

Zitat:

'WHERE ((PAccounts.personalID)=:'+ v3 +')'
Dieser wäre erforderlich, wenn danach ein Parametername käme, tatsächlich kommt da aber anscheinend der zu selektierende Wert. Ein entsprechender Parameter wird jedenfalls nirgends definiert.

Wahrscheinlich ist die Ergebnismenge einfach nur leer. Versuch's mal ohne diesen Doppelpunkt.

Danke für den Hinweis muß ich mal überprüfen. Ich melde mich wieder ob es daran lag.

Danke noch mal
Dirk


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 Uhr.

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