Autor Beitrag
Hänsel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 144



BeitragVerfasst: Sa 30.08.14 09:58 
Hallo wer kann helfen?
Ich arbeite mit Delphi X2 und habe eine eine Tabelle welche ich zur Laufzeit wie folgt öffne:

ausblenden 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 user profile iconMartok: Delphi-Tags hinzugefügt
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: 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:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 144



BeitragVerfasst: 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