Hallo,
ich hatte vor 2 Jahren mit diesem Projekt mal hier angefangen, jedoch bin ich seither einfach nicht dazugekommen, was zu machen. Da ich gerade etwas Leerlauf habe, gehe ich die Sache jetzt neu an und möchte hier auch einen neuen Thread starten.
Aktuell habe ich folgendes.
Eine INI Datei mit folgendem Aufbau
Code
[db1]
Name=Firma Eins
IP=10.11.12.13
DBName=firma1
DBUser=user4firma1
DBPassword=geheim
[db2]
Name=Firma Zwei
IP=10.11.12.13
DBName=firma2
DBUser=user4firma2
DBPassword=nochgeheimer
Alles anzeigen
Mein Script sieht bisher so aus
C
#include <WinAPIConv.au3>
#include <MSSQL.au3>
Global $sDatenbanken = "db1|db2"
_DBArray()
Func _DBArray()
Local $arDatenbanken = StringSplit($sDatenbanken, "|")
If $arDatenbanken[0] = 1 Then ; Wenn String nicht gesplittet wurde (Seperator nicht enthalten, String leer), dann Fehler
ConsoleWrite("Im Array wurden keine Datenbanken gefunden!" & @CRLF)
Else
For $i = 1 To UBound($arDatenbanken) - 1
_LeseINI($arDatenbanken[$i])
Next
EndIf
Exit
EndFunc ;==>_DBArray
Func _LeseINI($sSection) ; lese die DB.ini aus
$sLeseName = IniRead(@ScriptDir & "\DB.ini", $sSection, "Name", "")
$sLeseIP = IniRead(@ScriptDir & "\DB.ini", $sSection, "IP", "")
$sLeseDBName = IniRead(@ScriptDir & "\DB.ini", $sSection, "DBName", "")
$sLeseDBUser = IniRead(@ScriptDir & "\DB.ini", $sSection, "DBUser", "")
$sLeseDBPassword = IniRead(@ScriptDir & "\DB.ini", $sSection, "DBPassword", "")
ConsoleWrite(_WinAPI_WideCharToMultiByte("Die Datenbank von " & $sLeseName & " hat die IP " & $sLeseIP & " ,den Datenbank Name " & $sLeseDBName & " ,den Benutzer " & $sLeseDBUser & " sowie das Passwort " & $sLeseDBPassword, 1) & @CRLF)
$sqlCon = _MSSQL_Con($sLeseIP, $sLeseDBUser, $sLeseDBPassword, $sLeseDBName)
ConsoleWrite($sLeseName & " hat den $sqlCon Rückgabewert: " & $sqlCon & @CRLF)
EndFunc ;==>_LeseINI
Alles anzeigen
Hier noch Teil aus der MSSQL.au3 für _MSSQL_Con
Code
;===============================================================================
;
; Function Name....: _MSSQL_Con
; Description......: Connect to a Database
; Syntax...........: _MSSQL_Con($scIP, $scUser, $scPass, $scDB)
; Parameter(s).....: $scIP = IP adress
; $scUser = User
; $scPass = Pass
; $scDB = Database
; Return Value(s)..: Success - Returns the Database-"handle"
;
;===============================================================================
Func _MSSQL_Con($scIP, $scUser, $scPass, $scDB)
Local $sqlCon
$sqlCon = ObjCreate("ADODB.Connection")
$sqlCon.Open("Provider=SQLOLEDB; Data Source=" & $scIP & "; User ID=" & $scUser & "; Password=" & $scPass & "; database=" & $scDB & ";")
Return $sqlCon
EndFunc ;==>_MSSQL_Con
Alles anzeigen
Laut der Erklärung sollte ich doch ein "Database-handle" zurück bekommen.
Wenn ich die EXE auf dem entsprechenden System laufen lasse, bekomme ich hinter
ConsoleWrite($sLeseName & " hat den $sqlCon Rückgabewert: " & $sqlCon & @CRLF) leider gar nichts angezeigt.
Muss ich das anders schreiben, oder habe ich ein anderes Problem?