Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi sql-Abfragen aus Tabelle in QReport (https://www.delphipraxis.net/26600-sql-abfragen-aus-tabelle-qreport.html)

DF.A 26. Jul 2004 09:29


sql-Abfragen aus Tabelle in QReport
 
Hallo,
ich habe eine dBase3 Datenbank und möchte jetzt, mit Hilfe einer SQL-Abfrage Daten in nen Quickreport einsetzen. Später auch mit bestimmten Bedingungen, aber erst mal will ich eigentlich nur ein bestimmtes Feld der Datenbank (z.B. rechnugsnummer mit ner SQl-Abfrage in ein DBTextfeld reinstetzen (ich weiß das macht nicht besonders viel Sinn weil man dann auch einfach über den Objektinspektor reinsetzen kann aber ich möchte das mal gerne mal mit Sql machen da ich wie gesagt die Sache ja nachher auch mit ein paar Bedingungen machen möchte). Wäre schön wenn mir mal kurz einer beschreiben könnte wie das geht oder ein Tutoial oder was ähnliches kennt wärs nett wenn er das kurz posten könnte.
MfG
DF.A

angos 26. Jul 2004 10:12

Re: sql-Abfragen aus Tabelle in QReport
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hoffe ich hab dich richtig verstanden: Du suchst ein SQL-Tutorial

:arrow: im Anhang

DF.A 26. Jul 2004 10:20

Re: sql-Abfragen aus Tabelle in QReport
 
hi
ich suche eigentlich kein sql-tutorial sondern hab nur keine ahnung wie ich eine query mit dem qreport bericht verbinden muss um da das ergebnis angezeigt zu bekommen. das tutorial werd ich mir aber trotzdem mal angucken
danke schon mal

Memo 26. Jul 2004 10:23

Re: sql-Abfragen aus Tabelle in QReport
 
Ein Tut über den QR gibt es bei Delphi-Source.
Beispiele findest du in deinem Delphi\Demo-Ordner.
Ansonsten schaust dich doch mal bei QuSoft um. Die Knowledge Base kann man dort downloaden.

DF.A 26. Jul 2004 11:44

Re: sql-Abfragen aus Tabelle in QReport
 
ich bins nochmal
ich hab jetzt eine statische Abfrage hinbekommen, jetzt möchte die gleiche Abfrage gerne mit einer Bedingung machen. Es sollen nur die Datensätze einer bestimmten Rechnungsnummer angezeigt werden. Ich probier das so.
Delphi-Quellcode:
SELECT * FROM Rechnungstest WHERE RECHNUNGNR = :iRechnungsnummer
Wenn ich jetzt versuche mit dem Feld-Editor ein Feld hinzuzufügen bekomme ich diese Fehlermeldung:
Das Feld iRechnugsnummer wurde nicht gefunden. Mir ist schon klar das das kein Feld ist aber so wie ich das verstanden hab gibt man doch mit dem Doppelpukt vor der Variable an das es eben kein Feld sondern eine Bedingung ist. Tut mir leid falls ich blöd frage aber ich hab grade erst mit Delphi angefangen.

Sharky 26. Jul 2004 11:51

Re: sql-Abfragen aus Tabelle in QReport
 
Zitat:

Zitat von DF.A
...so wie ich das verstanden hab gibt man doch mit dem Doppelpukt vor der Variable an das es eben kein Feld sondern eine Bedingung ist. Tut mir leid falls ich blöd frage aber ich hab grade erst mit Delphi angefangen.

Hai DF.A
Blöde Fragen gibt es nicht! (naja, fast nicht).

Wenn Du in einer SQL-Abfrage deines Delphiprogrammes das so machst wird das als Parameter verwendet.
Hier mal ein Beispiel:
Delphi-Quellcode:
begin
  Query1.close;
  Query1.sql.text := 'SELECT * FROM Rechnungstest WHERE RECHNUNGNR = :iRechnungsnummer';
  Query1.params.ParamCheck := True // Parameter verarbeiten;
  Query1.params.ParamByName ('iRechnungsnummer').AsInteger := 0815; // Hier wird der "Platzhalter" (Parameter) gefüllt
  Query1.Open
end;

DF.A 26. Jul 2004 12:45

Re: sql-Abfragen aus Tabelle in QReport
 
hi
ich hab das jetzt mal so gemacht. es werden aber keine daten in den report eingefügt und im Feldeditor kann ich die Daten auch nicht eitragen. Rechnungstest ist mein Report aber die Query befindet sich im aufrufenden Formular.

Delphi-Quellcode:
 sRechnungsnummer := EDT_Auftragsnummer.Text;
    iRechnungsnummer := StrToInt(sRechnungsnummer);
    QRY_BedingteQuery.sql.text := 'SELECT * FROM Rechnungstest WHERE RECHNUNGNR = :iRechnungsnummer';
    QRY_BedingteQuery.params.ParamCheck := True;
    QRY_BedingteQuery.params.ParamByName('iRechnungsnummer').AsInteger := iRechnungsnummer;

    ReportTest.DataSet := QRY_BedingteQuery;
    ReportTest.Rechnungsnummer.DataSet := QRY_BedingteQuery;
    ReportTest.Rechnungsnummer.DataField := RECHNUNGNR;
    ReportTest.Auftragsnummer.DataSet := QRY_BedingteQuery;
    ReportTest.Auftragsnummer.DataField := AUFTRAGNR;
    ReportTest.Datum.DataSet := QRY_BedingteQuery;
    ReportTest.Datum.DataField := DATUM;
    ReportTest.Netto.DataSet := QRY_BedingteQuery;
    ReportTest.Netto.DataField := NETTO;

     QRY_BedingteQuery.Open;
    ReportTest.Preview;
    QRY_bedingteQuery.Close;
Gruß DF.A

Sharky 26. Jul 2004 12:50

Re: sql-Abfragen aus Tabelle in QReport
 
Zitat:

Zitat von DF.A
hi
ich hab das jetzt mal so gemacht. es werden aber keine daten in den report eingefügt und im Feldeditor kann ich die Daten auch nicht eitragen. ...

Was sagt den der FeldEditor? Etwas in der Art das er denn Feldnamen nicht kennt? Das kannst Du IMHO ignorieren (liegt daran das zu diesem Zeitpunkt das Query ja geschlossen ist bzw. es die Feldnamen der Tabelle nicht kennt.

Ist das hier nicht falsch?
Delphi-Quellcode:
    sRechnungsnummer := EDT_Auftragsnummer.Text;
.
.
    QRY_BedingteQuery.params.ParamByName('iRechnungsnummer').AsInteger := iRechnungsnummer;
....
Wenn ich das richtig interpretiere müsste Du doch SRechnungsummer dem Parameter zuweisen? Oder woher kommt die Variable IRechnungsnummer?

Ich habe hier jetzt leider kein QReport installiert und kann es darum nicht testen.

DF.A 26. Jul 2004 13:03

Re: sql-Abfragen aus Tabelle in QReport
 
hast schon recht, ich wandel sRechnungsnummer (string) noch mit StrToInt in ne Integer um und die heoßt dann halt iRechnungsnummer. Hätte man natüröich sofort machen können aber hab ich erst mal nicht weil ich das so übersichtlicher finde. habs glaub vergessen zu posten, sorry.
Mit dem Feldeditor ist das so. Ich öffne den Feldeditor der Query und will dann alle Felder einfügen. Dann bekomme ich aber diese Fehlermeldung: TB_Rechnungstest: 'Das Feld iRechnungsnummer wurde nicht gefunden'.
TB_Rechnungstest ist die Tabelle.


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