Linux Datenbankverbindung mit iodbc

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
double7
Beiträge: 55
Registriert: 20.09.2004 00:40
Kontaktdaten:

Linux Datenbankverbindung mit iodbc

Beitrag von double7 »

Hi Leute,

seit einiger Zeit habe ich Window$ den Rücken gekehrt und versuche
meine Programme auf Linux zu portieren.

Soweit so gut. Die IDE Installation auf Ubuntu war einfach und läuft sehr gut
(ich vermisse jedoch ne Linux Version von jaPBe :wink: ) und ein
Großteil meiner Codes läuft.

Nun zum Problem:

Ich möchte eine Datenbankverbindung zu einer lokalen MySQL DB aufbauen.
Hierfür benutze ich iodbc. Datenbanktreiber sind gelade und ein odbc
Eintrag ist eingerichtet. Der Test über das GUI iodbcadm-gtk ist erfolgreich
und eine Datenbankverbindung wird aufgebaut.

Im Source initialisiere ich die DB mittels UseODBCDatabase() erfolgreich:

Code: Alles auswählen

...
If (Not UseODBCDatabase()):WriteLog("Could not open database system",1):endlog():End:EndIf
...
Für den Verbindungsaufbau verwende ich folgende Procedur (abgespeckt)

Code: Alles auswählen

Procedure ConnectDB()
  Protected check.l
  Protected error.s  
  check = OpenDatabase(#database,app\db_odbc,app\db_user,app\db_passwd) 
  If Not check
    error=DatabaseError()
    WriteLog(error,1)
    writelog("Could not connect to database "+app\db_odbc,1)
    endlog()
  End
  Else
    writelog("Connected with "+app\db_odbc,0)
    app\db_connected=1
  EndIf
EndProcedure
Die Funktion OpenDatabase() gibt 0 zurück. :cry:
Was mich allerdings mehr erstaunte war die Funktion DatabaseError(),
denn der Rückgabewert lautet: "D"

Da ich den Wald vor lauter Bäumen nicht sehe würde ich gerne um ein paar Tips bitten. :freak:

Wo habe ich einen möglichen Denkfehler - hab ich was vergessen ?
Was bedeutet der Rückgabewert der Funktion DatabaseError() ?

Vielen Dank im Voraus und vorgezogene Weihnachtsgrüße :wink:
[0d1n6 15 n07 @ j0b 17´5 |1f357y|3
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Laeuft die Software im Unicode-Modus und dein Programm mit Ascii?
Benutzeravatar
Thalius
Beiträge: 476
Registriert: 17.02.2005 16:17
Wohnort: Basel / Schweiz

Beitrag von Thalius »

ansonsten check mal meinen simplen mysql wrapper. Habe den erfolgreich unter linux am laufen und das interface ist schneller als ODBC ( was bei meinem projekt ausschlaggebend war da hier datenbanken mit hunderttausenden von etries verarbeitet werden müssen ).

Thalius
"...smoking hash-tables until until you run out of memory." :P
Benutzeravatar
double7
Beiträge: 55
Registriert: 20.09.2004 00:40
Kontaktdaten:

Danke für eure Hilfe

Beitrag von double7 »

Oh mann, der Compiler war noch auf Unicode gestellt. Haken weg, und schon läufts :allright:
:oops: das ist mir ja sowas von peinlich ^^

Aber dennoch, ich werde den Wraper mal testen, da in diesem Programm auch einiges an Datenbank Traffic statfinden wird.

Danke nochmals
[0d1n6 15 n07 @ j0b 17´5 |1f357y|3
Antworten