Am besten über den ODBC-Datenquellen-Administrator testen und dann die Werte über die registry auslesen.
z.B.
HKCU/Software/ODBC/ODBC.INI/db1234_12345
hab das mal mit meinem SQL Server probiert, und hat problemlose geklappt.
Daten von deinem Provider bitte entsprechen eintragen :
Datenbankname = DSN
Benutzer = UID
Passwort = PWD
Host = SERVER
MfG Klaus
Code: Alles auswählen
#ODBC_ADD_DSN = 1 ; Add Data source
#ODBC_ADD_SYS_DSN = 4 ; Add SYSTEM Data source
#ODBC_CONFIG_DSN = 2 ; Configure (edit) Data source
#ODBC_REMOVE_DSN = 3 ; Remove Data source
#ODBC_REMOVE_SYS_DSN = 6 ; Remove SYSTEM Data source
#SQL_SUCCESS = 0
#SQL_SUCCESS_WITH_INFO = 1
#SQL_ERROR = -1
#SQL_NO_DATA = 100
#SQL_MAX_MESSAGE_LENGTH = 512
Procedure.s GetSQLError()
Protected SQLError.w
Protected ErrorMSGLen.w
Protected pfErrorCode.l
Protected iError.l
Protected ODBCLib.l
Errortext$=""
ODBCLib=OpenLibrary(#PB_Any,"ODBCCP32.DLL")
If ODBCLib
For SQLError=1 To 8
pcbErrorMsg=0
iError=SQLError
cbErrorMsgMax=#SQL_MAX_MESSAGE_LENGTH
pfErrorCode=0
ErrorMSGBuf=AllocateMemory(cbErrorMsgMax)
If ErrorMSGBuf<>0
SQLResult=CallFunction(ODBCLib,"SQLInstallerError",iError,@pfErrorCode,ErrorMSGBuf,(cbErrorMsgMax-1),@ErrorMSGLen)
;SQLResult=SQLInstallerError_(iError,@pfErrorCode,ErrorMSGBuf,(cbErrorMsgMax-1),@ErrorMSGLen)
Debug Str(SQLError)+" : Res="+Str(SQLResult)
Select SQLResult
Case #SQL_SUCCESS
Debug "ODBC : SQL SUCCESS"
Case #SQL_SUCCESS_WITH_INFO
Debug "ODBC : SQL SUCCESS WITH INFO"
Case #SQL_NO_DATA
Debug "ODBC : SQL NO DATA"
Case #SQL_ERROR
Debug "ODBC : SQL ERROR"
EndSelect
If ErrorMSGLen<>0
ErrorMsg$=PeekS(ErrorMSGBuf,ErrorMSGLen)
Errortext$+Str(iError)+"="+ErrorMsg$+Chr(13)
Debug "ODBC : Fehler "+Str(iError)+"="+ErrorMsg$
EndIf
FreeMemory(ErrorMSGBuf)
EndIf
Next
CloseLibrary(ODBCLib)
EndIf
If Errortext$<>""
MessageRequester("SQL Error",Errortext$,#PB_MessageRequester_Ok)
EndIf
ProcedureReturn Errortext$
EndProcedure
Procedure.b MakeConnection(Driver$,Attributes$)
Protected ODBCLib.l
Debug "ODBC : '"+Attributes$+"'"
MyMemory=AllocateMemory(Len(Attributes$))
If MyMemory
CopyMemory(@Attributes$,MyMemory,Len(Attributes$))
For L=1 To Len(Attributes$)
If PeekB(MyMemory+l-1)=Asc(";")
PokeB(MyMemory+l-1,0)
EndIf
Next
Result=SQLConfigDataSource_(0,#ODBC_ADD_DSN,Driver$,MyMemory)
If Result=#False
Debug "ODBC : SQLConfigDataSource fehlgeschlagen"
GetSQLError()
EndIf
FreeMemory(MyMemory)
EndIf
ProcedureReturn Result
EndProcedure
If InitDatabase()=#False
Debug "ODBC : InitDatabase fehlgeschlagen"
End
EndIf
DRIVER$="MySQL ODBC 3.51 Driver"
SERVER$="mysql.xxxx.de"
DSN$="db1234_12345"
UID$="mysql1234_12345"
PWD$="123456"
ATTRIB$="DSN="+DSN$+";"
ATTRIB$+"DATABASE="+DSN$+";"
ATTRIB$+"DESCRIPTION="+DSN$+";"
;ATTRIB$+"DRIVER=C:\WINDOWS\system32\myodbc3.dll;"
ATTRIB$+"PWD="+PWD$+";"
ATTRIB$+"SERVER="+SERVER$+";"
ATTRIB$+"UID="+UID$+";"
ATTRIB$+";"
If MakeConnection(DRIVER$,ATTRIB$)
Debug "ODBC : MakeConnection OK"
If OpenDatabase(1,DSN$,UID$,PWD$)
Debug "ODBC : OpenDatabase OK"
Else
Debug "ODBC : OpenDatabase fehlgeschlagen"
EndIf
Else
Debug "ODBC : MakeConnection fehlgeschlagen"
EndIf