AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi felderanzahl in einer result row bestimmen
Thema durchsuchen
Ansicht
Themen-Optionen

felderanzahl in einer result row bestimmen

Ein Thema von alf.stefan · begonnen am 14. Apr 2011 · letzter Beitrag vom 15. Apr 2011
Antwort Antwort
alf.stefan

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

felderanzahl in einer result row bestimmen

  Alt 14. Apr 2011, 13: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
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#2

AW: felderanzahl in einer result row bestimmen

  Alt 14. Apr 2011, 14:07
Versuch es mal so:
len := mysql_num_fields(myRes);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
alf.stefan

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

AW: felderanzahl in einer result row bestimmen

  Alt 14. Apr 2011, 14:24
Oh,Oh

danke so klappts
ich war mir eigentlich sicher, dass ich es mit 'mySql_num_fields'
auch schon probiert hatte, aber da hat wohl noch ein andres Problemchen gebremst.

Aber eigentlich müsste es doch mit 'mySql_fetch_Lengths' auch gehen!

Gruß

Stefan
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#4

AW: felderanzahl in einer result row bestimmen

  Alt 14. Apr 2011, 14:32
Gehen müsste das, ist aber umständlicher. Wie ist es so?
while len^[i] > 0 do Oder so?
while TMYSQL_LENGTHS(len^)[i] > 0 do
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
alf.stefan

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

AW: felderanzahl in einer result row bestimmen

  Alt 15. Apr 2011, 10:06
Vielen Dank!

Jetzt habe ich das Verstanden!
Das mit dem deReferenzieren klappt!
Da len schon vom typ pMySql_Lengths ist funktioniert schon das erste!
und das zweite natürlich auch.

Gruß

Stefan
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 Uhr.
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