Autor Beitrag
derDoc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 623

Win Vista Prof
D2007 Prof
BeitragVerfasst: Mo 28.04.03 19:00 
Hallo Leute, hier noch eine Info. Ich benutze Delphi 6 und die Zeoslibs, um auf MySQL zuzugreifen.

Ich habe folgendes Problem:
Immer wenn ich eine SELECT Anweisung anzeigen lassen will (also das was ausgewählt wurde) erhalte ich einen EStackOverflow.
Ein Beispiel:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
  dbMain.Connected := true;
  try
    qrMain.Sql.Text := 'SELECT MAX(`id`) FROM `aktuell`;';
    qrMain.Open;
    Label1.Caption := qrMain.FieldByName('id').AsString;
  finally
    dbMain.Connected := false;
  end;


Noch etwas zu den Bezeichnern:
dbMain ist eine TZMySqlDatabase
qrMain ist eine TZMySqlQuery
außerdem benutze ich noch eine TZMySqlTransact und eine TDataSource.

Wo ist der Fehler?

Wie gesagt, egal was ich abfrage, ob *, ein Feld oder etwas wie COUNT, MAX oder MIN, immer kommt ein EStackOverflow.

_________________
MfG derDoc
There are only 10 types of people: those who understand binary and those who don't.
kiwicht
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Mo 28.04.03 19:30 
ausblenden Quelltext
1:
qrMain.Sql.Text := 'SELECT MAX(`id`) FROM `aktuell`;';					


Am Ende wohl etwas zuviel des Guten? ;';
Was ist aktuell? Eine Variable? Oder der Name der Tabelle?

ausblenden Quelltext
1:
Label1.Caption := qrMain.FieldByName('id').AsString;					


Versuche auch mal qrMain.FieldValues['id'] für die Übergabe des Inhalts. Ich glaub bei FieldByName gabs Probleme, falls der Datensatz leer ist.
Ausserdem, was aber warscheinlich Unsinn ist:
Übergebe doch mal als Integer (AsInteger) und wandel dann in einen String um (IntToStr), vielleicht ist das was? (klingt blöd, ich weiß ;) )

ausblenden Quelltext
1:
2:
finally 
    dbMain.Connected := false;


der Ausdruck kommt mir unüblich vor, kann ich aber nichts zu sagen, weil ich nicht die ZEOS benutze.. kannst du kurz Erklären welche Auswirkungen dieser Befehl laut ZEOS-Hilfe hat?

tja, ansonsten kann ich erstmal nicht viel dazu sagen

mfg
derDoc Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 623

Win Vista Prof
D2007 Prof
BeitragVerfasst: Di 29.04.03 05:58 
Also ich habe mal bei den Zeoslibs gelesen, man müsse alle SQL Strings immer mit ; (für den Befehl) ' (für den String) und ; (für das Ende der Zeile) beenden.

`aktuell` ist der Name der Tabelle. `id` ist die Spalte.

Das mit den FieldValues werde ich mal testen.

dbMain.Connected bewirkt, dass die Komponente nach den von mir eingegebenen Werten zu MySQL verbindet. (User, Host, Datenbank, ...)
Das habe ich aus der Hilfe entnommen, dass man das bei Zeos so machen muss.

_________________
MfG derDoc
There are only 10 types of people: those who understand binary and those who don't.
kiwicht
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Di 29.04.03 07:55 
derDoc hat folgendes geschrieben:
Also ich habe mal bei den Zeoslibs gelesen, man müsse alle SQL Strings immer mit ; (für den Befehl) ' (für den String) und ; (für das Ende der Zeile) beenden.


Das macht mich ein bisschen stutzig, aber ich hab ja wie gesagt noch nicht mit den ZEOS gearbeitet.

Bist du sicher, das du z.B. ` und nicht ' benutzen sollst?
derDoc Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 623

Win Vista Prof
D2007 Prof
BeitragVerfasst: Di 29.04.03 12:43 
Also mit den ` und ' bin ich mir eigentlich schon sicher. Ich habe das mal in einem Buch gelesen und laut diesem Buch sollte eine Beispielaufgabe mit SELECT auch funktionieren. Aber selbst diese verursacht bei mir einen EStackOverflow. Ich habe keine Ahnung warum das nicht geht.

_________________
MfG derDoc
There are only 10 types of people: those who understand binary and those who don't.