[Zeos] Connect Exception
-
hallo!
die meldung bei laufendem bcb sieht so aus, wenn ich direkt die exe aufrufe, ist es nur die stelle mit dem SQL Error.
Benachrichtigung über Debugger-Exception
Im Projekt mysql.exe ist eine Exception der Klasse EZSQLException aufgetreten. Meldung: 'SQL Error: Can´t connect to MySQL server on 'localhost' (10061)'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
[] CPU-Fenster [OK] [Hilfe]
der SQL Error wird von der zeos lib generiert, deshalb hatte ich gehofft die exception von zeos durch eine eigene zu ersetzen bzw. auf fehlerhafte connection zu reagieren. mein kläglicher versuch:
try { ZConnection->Connect(); } catch(...) { Application->MessageBox("Es trat ein Fehler beim Connecten auf!", "Fehler", MB_OK); }
mein code hat aber keinerlei auswirkungen auf die exception
cu, raphael
-
riebl schrieb:
mein code hat aber keinerlei auswirkungen auf die exception
Hi,
hat dies auch keine Auswirkungen wenn du den exe ausführst? (Auserhalb der IDE)MfG
Alexander Sulfrian
-
hallo alexander!
dann kommt zwar meine exception, nach einem klick auf OK aber auch die exception von zeos. also auch nicht das, was ich damit bezwecken wollte.
cu, raphael
-
Kann ich nicht nachvollziehen (habe Zeos eben installiert). Bei mir werden die Zeos-Exceptions zuverlässig abgefangen.
Bist du sicher, dass die Exception (bzw. eine zweite) nicht an anderer Stelle ausgelöst wird? Darauf deutet nämlich der Umstand hin, dass beim direkten Start der Exe die Exception nach deiner MessageBox ausgelöst wird.
-
du hast recht. hab weiter unten etwas vergessen auszukommentieren... tut mir leid
danke für euere hilfe!
mir persönlich würde an zeos besser gefallen, wenn Connect() etwas zurückliefern würde. aber nunja, die werden sich schon was dabei gedacht haben.cu, raphael
-
Hallo
arbeite doch mit ConnectedMfG
Klaus
-
hallo klaus!
was soll das bringen? ZConnection->Connected = true; kann ich auch nicht mit if weiterverarbeiten, oder?
soweit ich mich erinnere, kommt dann eine fehlermeldung mit L-Ausdruck erwartet oder so.cu, raphael
-
riebl schrieb:
mir persönlich würde an zeos besser gefallen, wenn Connect() etwas zurückliefern würde.
Tut es doch -> die Exception.
ZConnection->Connected = true; kann ich auch nicht mit if weiterverarbeiten, oder?
Warum nicht?
try { if (!ZConnection1->Connected) ZConnection1->Connect(); // do the database stuff } catch (EZSQLException &E) { ShowMessage("could not connect to database\r\n(" + E.Message + ")"); }
-
ich glaube wir reden gerade aneinander vorbei
zwar liefert Connect() die exception, ich meinte aber, dass die funktion z.b. 0 bei fehlerfrei und 1 bei fehler zurückliefert.
je mehr ich mich nun mit exceptions beschäftige, gefällt mir das besser. das mit den exceptions ist einfach neu für mich, hatte mich bisher nie damit auseinandergesetzt. tja, was der bauer nicht kennt, frisst er nichtmit dem reagieren durch if habe ich mich zu sehr an perl orientiert
if(ZConnection->Connected = true) funktioniert natürlich nicht (L-Ausdruck), genauso wenig wie if(ZConnection->Connect()) (ergebnis ist void).
in perl kann man anhand des results in dbh = DBI->connect("DBI:mysql:host=localhost;database=test","name","pwd", {PrintError => 0, RaiseError => 1});
aber das gehört wohl nun nicht hier ins bcb forumcu, raphael
-
Hallo
warum soll
if(ZConnection->Connected == true)
denn nicht funktionieren
MfG
Klaus
-
riebl schrieb:
if(ZConnection->Connected = true) funktioniert natürlich nicht
Natürlich nicht, wie von KlausB schon angedeutet.
'=' != '=='Ansonsten war mir schon klar, dass du einen direkten Rückgabewert erhofft hattest, aber wie du selbst sagst sind Exceptions gar nicht so verkehrt ...
-
hallo klaus!
dass ich mit if und '==' prüfen kann, ob bereits eine connection da ist, ist mir schon klar. aber ich will ja eine connection erstellen, nicht prüfen
ansonsten danke für euere hilfe! wieder etwas dazugelerntcu, raphael