HILFE!!! Wie mache ich eine DBQuery mit ZeosDBO (auf mysql)

aquanautix

Grünschnabel
hi Forum,

ich brauche ganz schnelle eure Hilfe, wie mache ich eine DBQuery (like Insert Into) mit den ZeosDBO... Komponenten habe ich schon in mein Form eingebunden... jetzt muss ich nur noch wissen wie ich einzelne Strings in die DB schreiben kann...


danke
 

Dario Linsky

Erfahrenes Mitglied
Es gibt Query-Komponenten in der ZeosDBO-Sammlung. Da gibt es eine Eigenschaft namens "Sql" mit der Du die Anweisungen (z.B. Insert, Update, Delete, ...) festlegen kannst.
Dabei musst Du allerdings darauf achten, dass Du über diese Anweisungen nicht über die Open-Methode, sondern über die ExecSQL-Methode ausführen lässt:
Code:
MyQuery.Sql.Clear;
MyQuery.Sql.Add(MeineAnweisung);
MyQuery.ExecSQL;
MyQuery.Sql.Clear;
 

aquanautix

Grünschnabel
Aaaalso... so richtig verstehe ích das immer noch nicht...

Ich hatte folgendes geschrieben...

ZMySqlQuery1.Sql.Clear;
ZMySqlQuery1.Sql.Add('Insert Into dsl_access Values(null,"'+DateToStr(Date)+'","'+messZeit+'","'+IntToStr(dieZeit)+'"')');
ZMySqlQuery1.ExecSQL;
ZMySqlQuery1.Sql.Clear;

das hat leider nicht wirklich funktioniert da der Compiler immer die Sql.Add Zeile als "nicht abgeschlossener String" angemeckert hat... Ich hatte hier im Forum eine andere Query gefunden... und das nach dem SyntaxBeispiel programmiert...

nun habe ich eben deinen Beitrag gelesen... wenn ich im Objektinspektor auf "SQL" klicke... dann geht ein Editorfenster auf (String-Listen Editor)...

Was muss ich denn nu da eintragen ??! Ich seh da nicht mehr durch... muss ich da die Strings deklarieren oder muss ich da den SQL Befehl reinschreiben ??! Warum meckert der Compiler bei meiner Anweisung... hoffe du kannst mir helfen :)
 

Dario Linsky

Erfahrenes Mitglied
In dem Editor-Fenster kannst Du sofort ein paar Abfragen bzw. SQL-Anweisungen unterbringen. Allerdings sind die dann erstmal statisch.
Änder die Zeile mal so ab:
Code:
ZMySqlQuery1.Sql.Add('Insert into dsl_access values(NULL, "' + DateToStr(Date) + '", "' + messZeit + '", "' + IntToStr(dieZeit) + '")');
Du hast ziemlich am Ende des Strings noch ein Hochkomma offen gelassen, also einen "nicht abgeschlossenen String" stehenlassen. ;)