Seite 1 von 1

Linux Datenbankverbindung mit iodbc

Verfasst: 05.12.2007 17:09
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:

Verfasst: 05.12.2007 18:28
von edel
Laeuft die Software im Unicode-Modus und dein Programm mit Ascii?

Verfasst: 05.12.2007 20:52
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

Danke für eure Hilfe

Verfasst: 05.12.2007 23:59
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