지정된 연결 문자열은 다음과 같습니다.
공급자 = Teradata; DBCName = dbc_name; Database = database_name; Uid = user_name; Pwd = password;
Teradata ODBC 클라이언트 버전 15.1을 설치하고 제어판을 통해 연결을 설정했습니다.
코드를 사용하는 경우 :
#include "stdafx.h"
#include <Windows.h>
#include <sql.h>
#include <sqlext.h>
#include <string>
int _tmain(int argc, _TCHAR* argv[])
{
SQLHANDLE hdbc = SQL_NULL_HANDLE;
SQLHANDLE henv = SQL_NULL_HANDLE;
SQLRETURN retval = SQL_SUCCESS;
retval = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
if (retval != SQL_SUCCESS) {
printf("SQLAllocHandle SQL_HANDLE_ENV failed! Result = %d\n", retval);
}
retval = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);
if (retval != SQL_SUCCESS) {
printf("SQLSetEnvAttr SQL_ATTR_ODBC_VERSION failed! Result = %d\n", retval);
}
SQLINTEGER output_nts, autocommit;
retval = SQLGetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, &output_nts, 0, 0);
retval = SQLSetEnvAttr(henv, SQL_ATTR_OUTPUT_NTS, (SQLPOINTER)SQL_TRUE, 0);
if (retval != SQL_SUCCESS) {
printf("SQLSetEnvAttr SQL_ATTR_OUTPUT_NTS failed! Result = %d\n", retval);
}
retval = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
if (retval != SQL_SUCCESS) {
printf("SQLAllocHandle SQL_HANDLE_DBC failed! Result = %d\n", retval);
}
SQLCHAR szConn[1024];
SWORD cbConn = 0;
std::string connectionString("Provider=teradata;DBCName=myLocalTDcop;database=myDatabaseName;uid=myUID;pwd=myPwd;");
retval = SQLDriverConnect(hdbc, NULL, (SQLCHAR*)connectionString.c_str(), SQL_NTS, szConn, 1024, &cbConn, SQL_DRIVER_NOPROMPT);
if (retval != SQL_SUCCESS) {
printf("SQLDriverConnect failed! Result = %d\n", retval);
}
}
SQLDriverConnect 명령은 항상 -1을 반환합니다.
연결 문자열에 문제가 있습니까?
업데이트 : SQLGetDiagRec를 사용하여 오류 메시지를 받았습니다.
드라이버가 유효하지 않은 (또는 반환에 실패 함) 반환 SQL_DRIVER_ODBC_VER : 03.80
그러나 ODBC 버전을 SQL_OV_ODBC3_80으로 변경하면 오류 메시지가 나타납니다.
[Microsoft] [ODBC 드라이버 관리자] 드라이버가 응용 프로그램에서 요청한 ODBC 동작 버전을 지원하지 않습니다 (SQLSetEnvAttr 참조).
그리고:
드라이버가 유효하지 않은 (또는 반환에 실패 함) 반환 SQL_DRIVER_ODBC_VER : 03.80
ODBC 버전 15.10과 관련이 있습니까? 설명서를 보았지만 ODBC 버전이 지정된 위치를 볼 수 없습니다. Windows에서 확인할 수있는 방법이 있습니까?
Path 환경 변수에 올바른 디렉토리를 추가하지 않았습니다 !!!!
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다