Entwickler-Ecke
Datenbanken - ADOQuery
Hänsel - Sa 30.08.14 09:58
Titel: ADOQuery
Hallo wer kann helfen?
Ich arbeite mit Delphi X2 und habe eine eine Tabelle welche ich zur Laufzeit wie folgt öffne:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var nr : String; begin nr:=Datamodule3.ADOQuery2.fieldbyname('obj').asstring ; Datamodule3.ADOQuery_Mi.close; Datamodule3.ADOQuery_Mi.SQL.Text:='Select * From M1 where objekt_nr='+quotedstr(nr); Datamodule3.ADOQuery_Mi.open; |
Die wird auch zur Laufzeit ordentlich geöffnet.
Beim Schließen kommt ständig und ohne dass ich etwas verändert habe folgend Meldung:
Das heißt aber nur wenn die SELECT-Anweisung Datensätze gefunden hat. Ist die Tabelle leer, dann gibt es keine Fehlermeldung.
Variante des Typs(Null) konnte nicht in Typ(integer)konvertiert werden.
Hänsel
Moderiert von
Martok: Delphi-Tags hinzugefügt
WasWeißDennIch - Sa 30.08.14 15:53
Ich habe das Gefühl, dass die Fehlermeldung nichts mit dem gezeigten Code zu tun hat. Vielmehr scheint es eher so zu sein, dass Du irgendwo auf ein Integer-Feld zugreifst, das leer ist, etwa so:
Delphi-Quelltext
1:
| Dingens := Query.FieldByName('Nummer'). AsInteger; |
Ist das Feld Nummer des aktuellen Datensatzes NULL, würde die Meldung Sinn ergeben.
P.S.: Statt mit QuotedStr immer wieder das Statement zu ändern, solltest Du IMO besser SQL-Parameter verwenden.
Hänsel - So 31.08.14 10:05
Danke für den Hinweis. Ich habe die SQL-Anweisung geändert alle Komponenten gelöscht und neu aufgebaut. Siehe da es klappte beim ersten mal. Da hat sich wohl was im Hintergrund versteckt.
Danke noch mal
Hänsel
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!