2015-04-17 20 views
8

Piszę VBScript, który łączy się z bazą danych Sybase, odczytuje niektóre dane z tabeli i przechowuje je w zmiennych, a następnie łączy się z serwerem MS SQL i wstawia dane do tabele ze zmiennymi danymi, które były wcześniej przechowywane.Błąd podczas łączenia się z Sybase z VBScript - wewnętrzna biblioteka klienta błąd

Nie jestem pewien, czy to istotne informacje, ale ponieważ mam tylko 32-bitowy sterownik do połączenia z Sybase ODBC, a ponieważ ten VBScript działa na maszynie 64-bitowej, uruchamiam ją za pomocą linii poleceń, ale pomocą cmd.exe syswow64 i działa to tak:

C:\Windows\SysWOW64>cscript C:\My\Directory\MyVBScript.vbs 

mam problemy z połączeniem do bazy danych Sybase. Początkowo miałem pewne problemy z samym ciągiem połączenia, ale wydaje się, że został on rozwiązany.

Oto komunikat o błędzie pojawia się, ale nie mam pojęcia jak ominąć ten jeden:

Microsoft OLE DB Provider for ODBC Drivers: [SYBASE][ODBC Sybase driver][Sybase]ct_connect(): user api layer: internal Client Library error: HAFAILOVER:Trying to connect to server


Oto skrypt, jak to jest teraz

Dim connStr, objConn 

DataSource = "ICCM_PREVIEW" 
ServerIP = "1.2.3.4" 
Port = "1234" 
DBuser = "myUser" 
DBpwd = "myPassword" 
DBName = "myDatabase" 
Driver = "SYBASE ASE ODBC Driver" 

connStr = "" 
connStr = connStr &"Driver="& Driver &";" 
connStr = connStr &"Data Source="& DataSource &";" 
connStr = connStr &"Srvr="& ServerIP &","& Port &";" 
connStr = connStr &"Database="& DBName &";" 
connStr = connStr &"uid="& DBuser &";" 
connStr = connStr &"pwd="& DBpwd &";" 

Wscript.Echo connStr 

'Define object type 
Set objConn = CreateObject("ADODB.Connection") 

'Open Connection 
objConn.open connStr 

Czego mi tu brakuje?

+0

Czy spojrzałeś na rozwiązanie tutaj: http://geekswithblogs.net/baskibv/archive/2008/01/18/118690.aspx? –

+0

Lub tutaj: http://www.tek-tips.com/viewthread.cfm?qid=1182044 –

Odpowiedz

4

Parametr "Srvr" nie jest poprawnym parametrem połączenia, a wymagana jest para klucz-wartość "Port".

Przed

connStr = connStr &"Srvr="& ServerIP &","& Port &";" 

Po

connStr = connStr &"Server="& ServerIP & ";" 
connStr = connStr &"Port="& Port &";" 

Fragment Microsoft's website

enter image description here

pomocą parametrów Połączenie wykresu

Following is a list of connection parameters other than from the DSN parameter that can be supplied to the ASE ODBC Driver

Fragment z podręcznika dla Adaptive Server Enterprise ODBC Driver by Sybase

enter image description here enter image description here enter image description here enter image description here enter image description here

+0

@Robotsushi w jaki sposób działa zalecana modyfikacja. – WorkSmarter

+0

dziękuję bardzo za pomoc. Wprowadziłem zmiany, które zasugerowałeś, a teraz otrzymuję inny błąd. "Niewystarczająca informacja do połączenia ze źródłem danych" – Armin

+0

Mój ciąg połączenia jest następujący: "Sterownik = SYBASE ASE Sterownik ODBC, źródło danych = ICCM_PREVIEW; Serwer = 1.2.3.4,1234; Database = myDatabase; UID = myUser; PWD = myPassword; " – Armin