libmysql + mysql_num_rows liefert nur 0!

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Purebat
Beiträge: 16
Registriert: 19.12.2004 22:54

libmysql + mysql_num_rows liefert nur 0!

Beitrag von Purebat »

Hallo Leute!

Ich habe ein kleines Problem...
Ich arbeitet zur Zeit an einem MySQL Programm unter Mac OS X.
Das Problem ist, dass die Funktion mysql_num_rows mir nur 0en zurück gibt.
Auch wenn mehrere Datensätze in einer Tabelle vorhanden sind?!

Woran kann es liegen?!

Code: Alles auswählen


Procedure MySQL_Num_Rows()
 *mysqlResult=CallFunction(#sql,"mysql_store_result",dbHnd)

  rows = CallFunction(#sql,"mysql_num_rows",*mysqlResult)
  ProcedureReturn rows

EndProcedure

Danke schonmal im vorraus!

MfG
Sebastian
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Was liefert denn mysql_error ?
Purebat
Beiträge: 16
Registriert: 19.12.2004 22:54

Beitrag von Purebat »

Nichts, dass ist das Problem
Benutzeravatar
PAMKKKKK
Beiträge: 321
Registriert: 21.04.2005 22:08
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von PAMKKKKK »

www.MySQL.de hat geschrieben:The use of mysql_num_rows() depends on whether you use mysql_store_result() or mysql_use_result() to return the result set. If you use mysql_store_result(), mysql_num_rows() may be called immediately. If you use mysql_use_result(), mysql_num_rows() does not return the correct value until all the rows in the result set have been retrieved.
Das soll heissen das mysql_num_rows() sofort aufgerufen werden kann (wird) wenn man mysql_store_result() benutzt. Benutzt man mysql_use_result() wird der Rückgabewert nicht korrekt sein bis alle Zeilen erfasst sind.

Villeicht hilft das weiter?

Poste mal den mehr Code nicht nur den dll Call!
Wir Schreiben ein PureBasic Buch.
Auch du kannst mitmachen!
http://www.purearea.net/pb/english/pure ... :Main_Page
Purebat
Beiträge: 16
Registriert: 19.12.2004 22:54

Beitrag von Purebat »

Nein leider nicht weil ich mysql_store result benutze...

es ist total komisch....

muss ich morgen machen, da der source auf der arbeit ist.
Purebat
Beiträge: 16
Registriert: 19.12.2004 22:54

Beitrag von Purebat »

So, hier ist ein bisl mehr code

Code: Alles auswählen

If OpenLibrary(#sql,"libmysqlclient.dylib")
  MySQLInit()

  MySQLConnect()

  MySQLQuery("SELECT * FROM user")


  mysql_store_result()
  num_fields = mysql_num_fields()


Dim row.s(20)  
row = mysql_fetch_row()

MessageRequester("Hallo",row(1))
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag von nicolaus »

habe das selbe prob und bekomme auch immer 0 zurück. wo finde ich eigentlich ne doku zu der libmysql.dll?
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Benutzeravatar
PAMKKKKK
Beiträge: 321
Registriert: 21.04.2005 22:08
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von PAMKKKKK »

Ich habe auch keine Lösung :(
Wir Schreiben ein PureBasic Buch.
Auch du kannst mitmachen!
http://www.purearea.net/pb/english/pure ... :Main_Page
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag von nicolaus »

so nach viel probieren bin ich dahinter gestiegen was das prob mit mysql_num_rows ist.

und zwar hängt es mit der function mysql_use_result zusammen das num_rows nicht geht (oder besser nich so wie wirs versucht haben). wenn man mit mysql_use_result arbeitet muß man erst alle zeilen der tabelle durchlaufen haben bis man mit mysql_num_rows die gesamtzahl an rows bekommt.
wenn man anstelle von mysql_use_result die function mysql_store_result benutz bekommt man die anzahl der rows sofrt gezeigt und muß nich erst alle zeilen durchlaufen haben.

hoffe es hilft euch nun auch weiter
:wink:

Nico
Antworten