[VBScript] Über ODBC zu einer MSSQL-Datenbank verbinden


DirkHo

Erfahrenes Mitglied
Hallo,

ich google schon den ganzen Tag und finde einfach keine Lösung (die funktioniert). Und zwar will ich für ein Logon-Skript eine Verbindung zu einer MSSQL-Datenbank (über ODBC) aufbauen und daraus Datensätze auslesen.

Entweder die Beispiele/Codes die ich in div. Foren gefunden habe waren falsch, oder ich hab irgendwas falsch gemacht/verstanden.

Über PHP klappt es wunderbar die Verbindung zur selben Datenbank (ebenfalls über ODBC) herzustellen (an der DB liegt's also nicht).

Kann mir jemand weiterhelfen? Z.B. habe ich es hiermit probiert (über AdoDB):

Code:
Dim mConnection

Set mConnection = CreateObject("ADODB.Connection")
mConnection.Open "Provider=SQLOLEDB.1;Data Source=<IP zum Server>;Initial Catalog=<Datenbankname>","<Benutzername>","<Passwort>"

mConnection.Execute "SELECT * FROM <tabelle>"

Set mConnection = Nothing

msgBox "Erfolgreich"

Die in <> stehenden Sachen habe ich natürlich ersetzt...

Danke und Grüße,

Dirk
 

DirkHo

Erfahrenes Mitglied
Hi Luzie,

danke für den Tipp!

Habe mir die Seite angeschaut, folgendes Beispiel verwendet
Code:
Dim mConnection

Set mConnection = CreateObject("ADODB.Connection")

mConnection.Open "DSN=server;" & _ 
           "Uid=a_server;" & _ 
           "Pwd=server;"

mConnection.Execute "SELECT * FROM server_function"

'Set mConnection = Nothing

msgBox "Erfolgreich"
aber leider ohne Erfolg - VBS mäkelt an meinem Connection-String rum "[Microsoft][ODBC Driver Manager] Data Source name not found and no default driver specified".

Hier mal, wie ich per PHP die Verbindung aufbaue:
Code:
// System-DNS-Name
$host	= 'server';
// Benutzername
$user	= 'a_server';
// Passwort
$pw		= 'server';

$conn 		= odbc_connect($host,$user,$pw) or die('Fehler bei odbc-Verbindung');

So in der der Art sind auch die realen Zugangsdaten aufgebaut - also DSN = Passwort und Benutzer = a_DSN

Weiß jemand Rat? Der MsSQL-Server läuft nicht lokal bei mir, sondern im Netzwerk als Standalone-Rechner. Dachte erst, ich müsse eine IP, o.ä. angeben, aber das mache ich bei meiner PHP-Verbindung ja auch nicht bzw. nutze den DSN als Hostname...

Danke und Grüße,

Dirk
 

DirkHo

Erfahrenes Mitglied
Hallo,

ganz großes Sorry! Ich habe versucht übers Netzwerk auf die MSSQL zuzugreifen. Jetzt ist mir gekommen, daß sie vielleicht so eingerichtet ist, daß es nur vom Server selbst aus geht.

Ging! ;)

Danke und Grüße,

Dirk
 

jlehner

Grünschnabel
Servus Dirk,

ich bin relativ neu in diesem Forum, von vbs hab ich auch nicht viel Ahnung. Dennoch versuch ich mal dir einen Tipp zu geben.

in deinem Code:

Dim mConnection

Set mConnection = CreateObject("ADODB.Connection")
mConnection.Open "Provider=SQLOLEDB.1;Data Source=<IP zum Server>;Initial Catalog=<Datenbankname>","<Benutzername>","<Passwort>"

mConnection.Execute "SELECT * FROM <tabelle>"

Set mConnection = Nothing

msgBox "Erfolgreich"

als DataSource gibst du die IP-Adresse des Servers an, hier sollte aber der DSN-Name der ODBC-Verbindung stehen.
Versuch's mal

JL
 

DirkHo

Erfahrenes Mitglied
Hi JL,

vielen Dank für die Antwort! Ich habe die Lösung bereits gefunden.

Das Problem war, daß ich remote auf den Server zugreifen wollte, es aber nur vom Server auf dem die DB installiert ist, an sich geht.

Danke und Grüße,

Dirk
 
Auch wenn das jetzt etwas verspätet kommt, habe ich bei der Ausführung des unten aufgeführten Scripts das Problem, dass eine Sicherheitsabfrage mit dem Wortlaut

This Webside uses a data provider that may be unsafe. If you trust the Webside click OK, otherwise click CANCEL

Die Datenbank wurde auf einem von unseren Servers installiert, wo drauf auch die Internet Informations Services (Webserver) läuft.

Kann ich diese Fehlermeldung zentral unterdrücken?

Gruss aus Düsseldorf
 

Neue Beiträge