Hallo zusammen,
ich habe grade mal angefangen mit delphi und
mysql rumzuspielen.
Benutze dazu die
dll libMySql.dll.
Habe dazu ein Tutorial hier gefunden und durchgearbeitet.
Mein kleines Beispielprgramm warf aber eine Frage auf:
ich schreibe in ein TEdit feld einen beliebigen
SQL Befehl, wie 'show databases' oder
'select version(), now()'
bei dem 2. Befehl kommt eine Reihe mit 2 Spalten zurück! siehe source
rowCount ist cardinal und sieht für mich auch so aus
len ist vom typ pMySql_Lengths was einem Zeiger auf cardinals entspricht, dachte ich!
aber da kommen schreckliche Zahlen raus!
Nach viel rumprobieren habe ich jetzt diese Lösung gefunden die zu funktionieren scheint.
Delphi-Quellcode:
......
......
myRes := mySql_store_result(myDb);
if assigned(myRes) then
begin
RowCount := mySql_num_rows(myRes);
len := mySql_fetch_Lengths(myRes);
i:=0;
aString := '';
while smallInt(len[i])>0 do // Lösung mit cast nach smallInt!!!!
begin
aString := aString + myRow[i];
inc(i);
end;
Memo1.Lines.Append(aString);
end;
......
......
Meine Frage: Was mache ich falsch? warum muss ich den len[i] nach smallInt casten?
Ich habe nämlich angst dass das nicht immer funktioniert!
Wäre schön wenn mir das jemand erklären könnte!
Gruß
Stefan