Жестко закодированная строка подключения работает, встроенная - нет (VB6 для SQL Server 2008 R2) - PullRequest
1 голос
/ 02 апреля 2011

У меня проблемы с построением строки подключения, которую моя программа VB6 может использовать для подключения к базе данных SQL Server 2008 R2. Когда я жестко кодирую строку подключения в моей программе, она работает нормально, и я могу получить доступ к базе данных. Вот код, который работает:

gcnTheEstimator.Open "Provider=SQLNCLI10;Server=KEVIN-PC;Database=The_Estimator", "sa", ""

Тем не менее, ни одна из следующих работ:

gcnTheEstimator.ConnectionString = "Provider=SQLNCLI10;Server=KEVIN-PC;Database=The_Estimator, sa"

gcnTheEstimator.Open

(при запуске выдается сообщение об ошибке: Неверная спецификация авторизации)

gcnTheEstimator.ConnectionString = Chr(34) & "Provider=SQLNCLI10;Server=KEVIN-PC;Database=The_Estimator" & Chr(34) & "," & Chr(34) & "sa" & Chr(34) & "," & Chr(34) & Chr(34)

gcnTheEstimator.Open

(Использование msgbox для показа этой строки подключения возвращает строку подключения, которая ТОЧНО совпадает с жестко закодированной, показанной выше, которая работает. Однако при ее запуске выдается следующее сообщение об ошибке: [Microsoft] [ODBC Driver Manager] Источник данных имя не найдено и драйвер по умолчанию не указан.)

Я пробовал несколько других вариантов, и ни один из них не работает.

Мне нужно развернуть мою программу VB6 в двух других местах, где оба используют SQL Server 2008 R2, поэтому мне нужно встраивать их строки подключения в мою программу. Что я здесь не так делаю? ТИА

1 Ответ

2 голосов
/ 02 апреля 2011

gcnTheEstimator.Open ожидает 3 аргумента, каждый из которых разделен запятой (вы пытаетесь указать все три в одной строковой переменной). Это должно работать:

dim connStr as string
dim usernameStr as string
dim passwordStr as string

connStr = "Provider=SQLNCLI10;Server=KEVIN-PC;Database=The_Estimator"
usernameStr = "sa"
passwordStr = ""

gcnTheEstimator.Open connStr, usernameStr, passwordStr
...