Einzelnen Beitrag anzeigen

alf.stefan

Registriert seit: 11. Apr 2003
88 Beiträge
 
Delphi 7 Professional
 
#1

felderanzahl in einer result row bestimmen

  Alt 14. Apr 2011, 12:59
Datenbank: mmySql • Version: 5.5.11 • Zugriff über: libmysql.dll
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
  Mit Zitat antworten Zitat