![]() |
Datenbank: MSSql • Version: 8 • Zugriff über: TADOConnection
TADOQuery
Hallo,
ich Habe in eriner TADOQuery folgenden SQL Befehl: SELECT SUM(B.Soll) as SollBetrag, SUM(B.Haben) as HabenBetrag FROM Konto K INNER JOIN Buchung B ON B.DVKontonummer = K.DVKontonummer INNER JOIN Beleg BL ON BL.DVBelegnummer = B.DVBelegnummer WHERE (BL.Buchungsperiode Between '01-01-2012' and '31-03-2012') and (BL.Belegart = 'ER' or BL.Belegart = 'EG') and K.Kontonummer = 81356 and B.InfoGegenkonto = '3425' Der SQL Befehl funktioniert ohne Fehler. Frage ich nun die Spalten SollBetrag und HabenBetrag folgendemaßen ab: SuVorjahr.Value := modul.BuchungenQry.FieldByName('HabenBetrag').AsFl oat - modul.BuchungenQry.FieldByName('SollBetrag').AsFlo at; bekomme ich die Meldung: Das Feld HabenBetrag wurde nicht gefunden. Was mache ich da falsch? Gruß Walter |
AW: TADOQuery
Vielleicht hast du vergessen die Query zu öffnen.
Ich würde empfehlen, den Code für die Berechnung in das Datenmodul zu legen:
Delphi-Quellcode:
Wenn dieser Code läuft, dann würde ich zusätzlich noch die Parameter wie Kontonummer, Buchungszeitraum dieser Funktion übergeben.
function TModul.GetKontoBalance():Currency;
begin BuchungenQry.Close; BuchungenQry.open; ShowMessage(BuchungenQry.FiledList.Text); // Alle Feldnamen anzeigen zu Debugzwecken Result := BuchungenQry.FieldByName('HabenBetrag').AsCurrency - BuchungenQry.FieldByName('SollBetrag').AsCurrency; end; Zusätzlich ist zu beachten, dass alle Berechnungen mit Geldbeträgen mit dem Datentyp Currency ausgeführt werden sollten um Rundungsfehler zu vermeiden. |
AW: TADOQuery
Hallo,
vielen Dank für die Antwort. Ich Trottel habe doch tatsächlich die Query mit ExecSQL ausgeführt anstatt sie zu öffnen. Walter |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:10 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