Delphi-PRAXiS
Seite 3 von 7     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Abfrage aus 2 Tabellen in Access funktioniert nicht (https://www.delphipraxis.net/62041-abfrage-aus-2-tabellen-access-funktioniert-nicht.html)

marabu 31. Jan 2006 07:56

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
 
Hallo StoRmtec,

der Code in deinem ersten Beitrag hatte zwei vordergründige Mängel, die ich dir in den Beiträgen #2 und #4 bereits behoben habe. Grundsätzlich gehört dein Code nicht in einen event handler. Besser wären zwei Funktionen, exportiert aus einem Datenmodul. Die beiden SQL-Statements können jeweils einer permanenten Query zugewisen werden und müssen nicht jedes mal wieder übersetzt werden. Die Signatur der Funktionen sollte bereits interne Datentypen verwenden, damit die Funktionen frei von Konvertierungen bleiben können. Der Zugriff auf einen field value bei leerem result set bleibt fehlerfrei, wenn du meinen Hinweis aus Beitrag #4 beherzigst - NULL values werden bei Zugriff über die Konvertierungsmethoden eines Datenfeldes automatisch nach 0 bei numerischen Typen, empty string oder FALSE konvertiert.

Außerhalb dieser Datenbankfunktionalität gilt noch folgendes: Entweder du nimmst Benutzereingaben typsicher entgegen, indem du spezielle Controls wie TDateTimePicker verwendest, die notwendige Prüfungen selbst durchführen, oder du nimmst normale Edit-Felder und schreibst den Prüfcode selbst. Zum Zwecke der Anzeige werden numerische Werte eines Datenbankfeldes in Text umgewandelt, das ist völlig normal. Nicht normal ist es, diesen Text wieder in einen numerischen Wert zu konvertieren um ihn in einer Berechnung zu verwenden.

For what it's worth...

marabu

StoRmtec 31. Jan 2006 11:56

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
 
Danke mkinzler es funktioniert jetzt so wie ich das möchte.

Habe jetzt noch den DateTimePicker eingebaut und mit dem geht es auch.

Mfg
StoRmtec

mkinzler 31. Jan 2006 12:04

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
 
Zitat:

Zitat von StoRmtec
Danke mkinzler es funktioniert jetzt so wie ich das möchte.

Freut mich.

Allerdings muß ich marabu rechtgeben mit seinem Einwand, das das Abfangen der Fehler durch Exceptionhandler ( try .. except ) nur die Symptome bekämpft anstatt die Ursachen.
Besser ist es natürlich vorher abzuprüfen, ob die zu konvertierenden Variablenwerte in den Zieltyp konvertierbar sind oder ob überhaupt ein Ergebnis vorliegt bzw. Variablen nicht leer( Null) sind.

StoRmtec 1. Feb 2006 08:54

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
 
Hallo

Wie kann ich den eine Abfrage abfangen wenn ich mit die Datensätze einer bestimmten ID anzeigen lassen will und dann das zusammenzählen lasse. Bekomme da immer eine Fehlermeldung wenn er zB. beim Verbrauch keine ID findet.

Bitte noch mal um Hilfe

Delphi-Quellcode:
procedure TForm2.Button17Click(Sender: TObject);
var gesamt1, kostenverbrauch, kostenwartung : extended;
begin
wartungq.Close;
wartungq.sql.clear;
wartungq.SQL.text := 'select sum(tonerkostengesamt) as Gesamtsumme from verbrauch where druckernameid='''+dbedit1.text+'''';
wartungq.open;
gesverbrauch.text := wartungq.FieldByName('Gesamtsumme').Value;
verbrauchq.Close;
verbrauchq.sql.clear;
verbrauchq.SQL.text := 'select sum(kosten) as Gesamtkosten from wartung where druckernameid='''+dbedit1.text+'''';
verbrauchq.open;
geswartung.Text := verbrauchq.FieldByName('Gesamtkosten').Value;
kostenwartung := strtofloat(geswartung.Text);
kostenverbrauch := strtofloat(gesverbrauch.Text);
gesamt1 := kostenwartung + kostenverbrauch;
gesamt.Text := floattostr(gesamt1) +' €';
end;
Danke

mkinzler 1. Feb 2006 09:04

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
 
Z.B so:
Delphi-Quellcode:
if wartungq.RecordCount > 0 then
    kostenwartung := strtofloat(geswartung.Text)
else
    kostenwartung := 0;

StoRmtec 1. Feb 2006 11:54

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
 
Liste der Anhänge anzeigen (Anzahl: 1)
jetzt bekomme ich den Fehler

mkinzler 1. Feb 2006 12:10

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
 
1.) Hast du die selbe Änderung für den Verbrauch durchgeführt?
2.) Was für ein Wert gibt er für RecordCount aus?

StoRmtec 1. Feb 2006 12:24

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
 
1.) Ja habe ich gemacht
2.) wie meinst was er mir da ausgibt

mkinzler 1. Feb 2006 12:30

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
 
Setze mal einen Haltepunkt an der Zeile, ind der RecordCount verwendet wird und schau dir mal den Wert an. Wenn die Datenbank kein Ergebnis liefert sollte RecordCount eigentlich 0 sein.

StoRmtec 1. Feb 2006 13:18

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
 
Hallo
Wie finde ich das heraus bzw wie setze ich so einen Haltepunkt
danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:07 Uhr.
Seite 3 von 7     123 45     Letzte »    

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