odbc

Anfängerfragen zum Programmieren mit PureBasic.
delikanli_19_82
Beiträge: 173
Registriert: 30.11.2010 02:34

odbc

Beitrag von delikanli_19_82 »

hallo leute,

ich habe eine mysql datenbank unter localhost, auf das ich per odbc mit einem eingerichteten test-dsn zugreifen kann.

nun möchte ich dasselbe mit einer datenbank machen, das bei hosteurope liegt.

port 3306 ist offen. die datenbank ist nach ausßen erreichbar. mit dem mysql workbench kann ich auf den ohne probleme zugreifen.

so nun habe ich eine system-dsn für den angelegt, im grunde genauso wie für die localhost-variante.

dennoch teilt mir purebasic sowas wunderschönes wie das hier mit:

[Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde keine Standardtreiber angegeben.

Es ist derselbe code, das mit der localhost und dsn läuft.

ich habe keine ahnung was daran falsch ist. bei der einrichtung des dsn klicke ich auf "test-button" und der teilt mir mit, das die verbindung zum datenbank steht.

das ist wohl kein code-fehler, eher wohl eine einstellungssache. was muss ich machen?

Für dsn ist angegeben:
data source name, server [wp*.webpack.hosteurope.de], user dbu*, password *, datenbank db*.
standardport.
MySQL ODBC 3.51 Driver.

hat jemand eine idee?

mfg

kurt
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: odbc

Beitrag von Bisonte »

Windows ? x86 oder x64 ? Wie sieht der Code für Localhost aus ?

Also der Teil wo die Datenbank geöffnet wird...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
delikanli_19_82
Beiträge: 173
Registriert: 30.11.2010 02:34

Re: odbc

Beitrag von delikanli_19_82 »

win7prof 32bit,

code:

Code: Alles auswählen


InitNetwork()
UseODBCDatabase()

Global src_host.s = ""
Global src_port.l = 3306
Global src_conn.s = ""
Global src_user.s = ""
Global src_pass.s = ""

If ReadFile( 100, "server.dat" )
  
  src_host = ReadString(100)
  src_conn = ReadString(100)
  src_user = ReadString(100)
  src_pass = ReadString(100)
  
  CloseFile(100)
  
EndIf

Global conn.l = OpenNetworkConnection( src_host, src_port )

Global dbac.l = OpenDatabase( #PB_Any, src_conn, src_user, src_pass )

If dbac = 0
  MessageRequester( "Fehler", DatabaseError() )
  End
EndIf

mfg

kurt
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: odbc

Beitrag von Bisonte »

Also da ich keine Ahnung habe was deine Variable src_conn enthält...

Bei Opendatabase per ODBC wird der DSN Name als DatabaseName erwartet.
Username und Passwort kann man dann leerlassen, da sie in der SystemDSN schon angegeben sind.

Also in deinem Fall : OpenDatabase(#PB_ANY, "data source name","","")

Allerdings... Wenn du Win7 als 64Bit Version installiert hast, gibts Probleme mit dem 3.51 Treiber.
der ist nur unter 32Bit Windows funktionsfähig.

Und wenn das alles bei dir stimmt, dann hast du wohl einen Fehler beim anlegen der Systemdsn gemacht.Es muss auch eine Datenbank ausgewählt sein, damit es funktioniert.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Antworten