Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Problem mit variablen übergabe von SQL (https://www.delphipraxis.net/2157-problem-mit-variablen-uebergabe-von-sql.html)

Mada 9. Jan 2003 14:00


Problem mit variablen übergabe von SQL
 
Hi zusammen,

ist es möglich von einer im QUelltext formulierte SQL Abfrage den Ergebniswert an eione Variable zu übergeben?

Es solle eine Zalh dastehen.


In etwa so:

Code:
procedure TForm1.Inventar1Click(Sender: TObject);

var sqltext1:TStringlist;
var vd:int;
begin

sqltext1 := TStringList.Create;

sqltext1.Add('select BABSCHREIB from ".\daten03\inventar03.DBF" WHERE INUMMER BETWEEN 230 AND 499 ORDER BY INUMMER ASC');
       
//Hier soll der Inhalt an die Var übergeben werden und doeser dann in meinem Quickreport in einem Label dargestellt werden.
vd:=int(sqltext1);
FM_Inventar.QRLabel35.caption:=vd
 



       FM_Inventar.QRLabel8.caption:=Vereinname;

        // Datumsangabe setzen
        FM_Inventar.QRLabel7.Caption:='01.01.2003 - 31.12.2003';
        FM_Inventar.QuickRep1.Preview;
end;

Geht das irgendwie?

Gruß,
Mada

:cat:

Sharky 9. Jan 2003 14:10

Re: Problem mit variablen übergabe von SQL
 
Hai Mada,

bei deinem Code wurde die SQL-Anweisung ja noch nicht ausgeführt.

Mit welchen Datanbankkomponenten arbeitest Du denn?

Ein TQuery würde dann so aussehen.

Delphi-Quellcode:
 Query1.Close;
 Query1.SQL.Text := 'select BABSCHREIB from ".\daten03\inventar03.DBF" WHERE INUMMER BETWEEN 230 AND 499 ORDER BY INUMMER ASC';
 Query1.Open;
 
 vd := Query1.FieldByName ('babschreib').AsInteger;

Mada 9. Jan 2003 14:14

HI Sharky,

hab nicht den ganzen Text kopiert.

Datenbank, hm, kann man eigentlich nicht wirklich so nennen. Ich nutze 6 .dbf dateien. Das Hauptprogramm schreibt die Daten, die ausgegeben werden sollten in diese .dbf Dateien.

Ist die Var vd mit den :int; richtig gesetzt? Oder muss ich einen besonderen Typ für sowas wählen?


Danke!


Gruß,
Mada
:cat:

harrybo 9. Jan 2003 15:02

Hi Mada,

ein Label.Caption benötigt einen String. Die Umformung geschieht mit IntToStr(), also in Deinem Fall
Delphi-Quellcode:
vd:=IntToStr(Query1.FieldByName('babschreib').AsInteger);
Allerdings wundert mich die Abfrage ein wenig. Nach der Formulierung sind mehr als ein Datensatz zu erwarten, also eine Ergebnismenge > 1. Gut, die meisten Queries positionieren nach dem Open den Datensatzzeiger automatisch auf den ersten Datenatz. Warum aber soll ein Feldwert aus dem ersten Datensatz einer Ergebnismenge in ein Reportlabel?

gruß, harrybo

Mada 9. Jan 2003 20:12

War zum Testen, ob es richtig kommt. endeffectlich wollte ich auf das Ergebnis dann SUM anwenden. Aber habe versuche es nun anders zu lösen, da ich doch mehr Felder brauche. Nur die Zuweisung hat nie geklappt.

Ist aber noch nicht fertig.

Kann ich in einem QuickReport eigentlich mehrere Detailbänder hintereinander drucken lassen? Die einzelnen Details sollen sich dann auf verschiedene QUerys beziehen...

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:05 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