Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zeos "Query was empty" (https://www.delphipraxis.net/81403-zeos-query-empty.html)

Hansi 26. Nov 2006 18:32

Datenbank: MySQL 5 • Zugriff über: ZEOS 6.6.0 beta

Zeos "Query was empty"
 
Hallo,

Mit meinem Programm greife ich auf eine MySQL DB auf einem webServer zu.

Dabei erscheint in unregelmäßigen Abständen folgende Meldung "Query was empty". Wenn ich dann weiter mache. Findet er auf einmal den Server nicht mehr und meldet "Server has gone". Um genau dies zu verhindern habe ich einen Timer eingebaut, der alle 10 Sek. folgendes vom Server abfragt "Select CURDATE()".

Woran kann es noch liegen, dass er die Verbindung trotzdem verliert?
Hat jemand eine Idee?

MfG
Hansi

mkinzler 26. Nov 2006 18:43

Re: Zeos "Query was empty"
 
Wie sieht die Abfrage aus? Hast du eine persistente Datenbankerbindung aufgebaut?

Hansi 26. Nov 2006 18:51

Re: Zeos "Query was empty"
 
Dumme Frage: Was meinst Du mit einer persistente DB-Verbindung?

Die Abfrage sieht so aus:

Delphi-Quellcode:
  ZQuery1.Active := False;
  ZQuery1.SQL.Clear;
  ZQuery1.SQL.Text := 'Select CURDATE()';
  ZQuery1.ExecSQL;

mkinzler 26. Nov 2006 18:55

Re: Zeos "Query was empty"
 
Ich kenne mich mit dem zugriff auf MySQ über Zeos nichtso aus, aber die lowlevel-API von MySQL unterscheidet persistente und nicht persistente Verbindungen. Be ersterer wird die Verindung aufrechterhalten.
SQL-Code:
Select CURDATE()
ist aucjh keine vollständige Abfrage; es fehlt die Angabe einer Tabelle.

Hansi 26. Nov 2006 18:58

Re: Zeos "Query was empty"
 
was meinst du mit vollständiger Abfrage? Ist die Abfrage nie ausgeführt worden? Weil eigentlich ist der Inhalt der abfrage egal

Wie kann ich die Verbindung aufrecht erhalten?

mkinzler 26. Nov 2006 19:00

Re: Zeos "Query was empty"
 
Wie gesagt fehlt die Angabe einer Tabelle.

MagicAndre1981 26. Nov 2006 20:18

Re: Zeos "Query was empty"
 
Delphi-Quellcode:
ExecSQL
musst du für DML-Befehle nutzen, um ein SELECT zu machen, musst du
Delphi-Quellcode:
Open
nutzen. Dann ist deine Query unvollständig, du musst noch die Tabelle angeben ;)

hoika 26. Nov 2006 22:23

Re: Zeos "Query was empty"
 
Hallo,

ein Select erwartet
eigentlich ein Open ...


Heiko

mkinzler 27. Nov 2006 06:57

Re: Zeos "Query was empty"
 
Da er das Ergebnis ja nich auswerten will, würde in diesem Fall ein .ExecSQL reichen, aber normalerweise verwendet man bei SELECT natürlich .Open.

Angel4585 27. Nov 2006 07:24

Re: Zeos "Query was empty"
 
Zitat:

Zitat von mkinzler
Da er das Ergebnis ja nich auswerten will, würde in diesem Fall ein .ExecSQL reichen, aber normalerweise verwendet man bei SELECT natürlich .Open.

ich nehm immer
Delphi-Quellcode:
Active:= True
Also was ihr mit persistenter Verbindung meint ist wahrscheinlich mal die TZConnection Komponente die der Query zugewiesen sein sollte. Sprich, TZConnection.Connected sollte "true" sein.

BTW: Der Befehl "SELECT CURDATE()" geht auch ohne angabe einer Tabelle das kann man ganz gut mit phpmyadmin oder so testen


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz