Hallo,
ich bin dabei ein kleines Programm von BDE auf ADO umzustellen und verzweifel daran. Schon mal vorab bin ziemlicher Delphi neuling und ADO kenne ich noch fast gar nicht. Aber jetzt zu meinen Problem.
Habe ein einfaches Query welches Daten in einem GRID anzeigen soll. Unter BDE lief das ganze so.
<PRE>
query1.sql.add('select * from tabelle where wert1 = :string1 and wert2 = :string2 and wert3 = :integer1');
query1.params[0].asstring := edit1.text;
query1.params[1].asstring := edit2.text;
query1.params[2].asinteger := strtoint(edit3.text);
query1.open;
</PRE>
soweit ja kein Problem bei BDE
Bei ADO ist das ja ähnlich.
<PRE>
adoquery1.sql.add('select * from tabelle where wert1 = :string1 and wert2 = :string2 and wert3 = :integer1');
adoquery1.parameters[0].value := edit1.text;
adoquery1.parameters[1].value := edit2.text;
adoquery1.parameters[2].value := strtoint(edit2.text);
adoquery1.open;
</PRE>
Solange ich nur mit String Parametern Arbeite geht alles Wunderbar aber sobald ich einen Integer Parameter übergebe kommt die Meldung <B> Typname ist ungültig </B>. Hatte auch schon folgendes probiert (mehr als nicht gehen kann es ja nicht)
<PRE>
adoquery1.parameters[0].value.asstring := edit1.text;
adoquery1.parameters[1].value.asstring := edit2.text;
adoquery1.parameters[2].value.asinteger := strtoint(edit3.text);
</PRE>
Das letztere gibt dann die Meldung <B> Variante referenziert kein Automatisierungsobjekt</B>
Wie gesagt ich bin ziemlicher Delphi Anfänger und nach einem Tag probieren, googlen usw. komme ich einfach nicht weiter.
Gruß und schonmal danke
Markus
ich bin dabei ein kleines Programm von BDE auf ADO umzustellen und verzweifel daran. Schon mal vorab bin ziemlicher Delphi neuling und ADO kenne ich noch fast gar nicht. Aber jetzt zu meinen Problem.
Habe ein einfaches Query welches Daten in einem GRID anzeigen soll. Unter BDE lief das ganze so.
<PRE>
query1.sql.add('select * from tabelle where wert1 = :string1 and wert2 = :string2 and wert3 = :integer1');
query1.params[0].asstring := edit1.text;
query1.params[1].asstring := edit2.text;
query1.params[2].asinteger := strtoint(edit3.text);
query1.open;
</PRE>
soweit ja kein Problem bei BDE
Bei ADO ist das ja ähnlich.
<PRE>
adoquery1.sql.add('select * from tabelle where wert1 = :string1 and wert2 = :string2 and wert3 = :integer1');
adoquery1.parameters[0].value := edit1.text;
adoquery1.parameters[1].value := edit2.text;
adoquery1.parameters[2].value := strtoint(edit2.text);
adoquery1.open;
</PRE>
Solange ich nur mit String Parametern Arbeite geht alles Wunderbar aber sobald ich einen Integer Parameter übergebe kommt die Meldung <B> Typname ist ungültig </B>. Hatte auch schon folgendes probiert (mehr als nicht gehen kann es ja nicht)
<PRE>
adoquery1.parameters[0].value.asstring := edit1.text;
adoquery1.parameters[1].value.asstring := edit2.text;
adoquery1.parameters[2].value.asinteger := strtoint(edit3.text);
</PRE>
Das letztere gibt dann die Meldung <B> Variante referenziert kein Automatisierungsobjekt</B>
Wie gesagt ich bin ziemlicher Delphi Anfänger und nach einem Tag probieren, googlen usw. komme ich einfach nicht weiter.
Gruß und schonmal danke
Markus
Comment