Я использую ODBC API в C ++ для подключения к базе данных. Я сделал свою функцию соединения, все работало нормально, пока я не добрался до SQLDriverConnect.
_TUCHAR szConnectOutput[3000];
SWORD nResult;
retcode = SQLDriverConnect(hdbc, NULL,
(SQLTCHAR *)szDNS, SQL_NTS,szConnectOutput, 3000,
&nResult, SQL_DRIVER_NOPROMPT);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
retcode возвращается как -1. Я не уверен, в чем проблема, это может быть мой DSN неправильный формат.
Мой DNS — это DSN = «DSN = Messe10_2; Uid = test; Pwd = test»; База данных, к которой я пытаюсь подключиться, — это база данных Oracle. Неправильный ли формат моего DSN? Или у меня есть другая проблема?
Благодарю .
Это может быть по нескольким причинам — вы проверили DSN через ODBC Administrator. Вызовите SQLGetDiagRec в случае сбоя, и вы поймете, почему. Увидеть ODBC Диагностика & Коды ошибок для примеров на C. Я не вижу ничего явно неправильного, учитывая предоставленную вами информацию, например, «DSN = x; UID = y; PWD = z» — допустимая строка подключения.
Других решений пока нет …