Entwickler-Ecke
Datenbanken - Problem in Firebird mit null-werten im Parameter
Josef-B - So 20.02.11 21:06
Titel: Problem in Firebird mit null-werten im Parameter
Ich habe zwei TIBQuerys mit Firefird.
die erste Quni und die zweite q2 genannt.
Die Q2 ist ne Unterabfrage zu der ersten Quni (also eigentlich Master-Detail mit mehreren Schlüsseln.
mein Problem ist, dass das Feld "Liefer_anschrift" null-werte haben kann. In dem Fall
liefert die Abfrage Q2 keine Daten zurück.
Wenn ich den Integer-Wert 0 eintrage schon.
Auch die Zuweisung von
parambyname('Liefer_Anschrift').value := quni.FieldByName('Liefer_Anschrift').value;
bringt keine Änderung
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| with quni do begin close; if transaction.intransaction then transaction.commit; sql.text := 'select kunde, RE_ART, Liefer_Anschrift ,from vk_k where re is Null and Status = 6 open; first; end; while not quni.eof do begin with q2 do begin close; if transaction.intransaction then transaction.commit; sql.text := 'Select auftrag from VK_K where ' + '(kunde = :kunde) and ' + '(RE_ART = :RE_ART) and ' + '(Liefer_Anschrift = :Liefer_Anschrift) parambyname('Kunde').asinteger := quni.fieldbyname('Kunde').asinteger; parambyname('RE_ART').asinteger := quni.fieldbyname('RE_ART').asinteger; parambyname('Liefer_Anschrift').asinteger := quni.FieldByName('Liefer_Anschrift').asinteger; open; |
Auch die Zuweisung von
Delphi-Quelltext
1: 2: 3:
| parambyname('Liefer_Anschrift').value := quni.FieldByName('Liefer_Anschrift').value;
bringt keine Änderung |
haentschman - So 20.02.11 21:34
Hallo...
unter anderem aus diesem Grund mag ich keine NULL Werte.
Versuch mal:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| parambyname('Liefer_Anschrift').asinteger := quni.FieldByName('Liefer_Anschrift').asinteger;
if VarIsNull(quni.FieldByName('Liefer_Anschrift').asinteger) then parambyname('Liefer_Anschrift').asinteger := 0 else parambyname('Liefer_Anschrift').asinteger := quni.FieldByName('Liefer_Anschrift').asinteger; |
:gruebel: wieso ist die Lieferanschrift ein Integer ? Laufende Nummer ?
Josef-B - Mo 21.02.11 10:57
Hallo Hentschman,
danke für die schnelle Antwort.
Das funktioniert leider so auch nicht.
Ich hab mich jetzt entschlossen, den erstmal auch leichteren Weg zu gehen,
und lasse bei dem Feld keine Null-Werte mehr zu.
Scheint mir für die Abfrage auch sicherer zu sein, nicht dass nachher einige
Sätze "durchflutschen" ;-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!