Подключение к mssql c++
Помогите пожалуйста с подключением к базе. Есть код
#include <iostream>
#include <Windows.h>
#include <sql.h>
#include <sqlext.h>
#include <sqltypes.h>
using namespace std;
void showSqlError(unsigned int handleType, const SQLHANDLE& handle)
{
SQLWCHAR SQLState[1024];
SQLWCHAR message[1024];
if (SQL_SUCCESS == SQLGetDiagRec(handleType, handle, 1, SQLState, NULL, message, 1024, NULL))
{
cout << "SQL driver message: " << *message << "\nSQL state: "
<< *SQLState << "." << endl;
}
}
int main()
{
SQLHANDLE SQLEnvHandle = NULL;
SQLHANDLE SQLConnectionHandle = NULL;
SQLHANDLE SQLStatementHandle = NULL;
SQLRETURN retCode = NULL;
char SqlQuery[] = "select * from OjegovWords where Id>0 and Id<20";
do
{
if(SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&SQLEnvHandle))
break;
if (SQL_SUCCESS != SQLSetEnvAttr(SQLEnvHandle, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0))
break;
if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_DBC, SQLEnvHandle, &SQLConnectionHandle))
break;
if (SQL_SUCCESS != SQLSetConnectAttr(SQLConnectionHandle, SQL_LOGIN_TIMEOUT, (SQLPOINTER)5, 0))
break;
SQLWCHAR retConString[1024];
switch (SQLDriverConnect(SQLConnectionHandle, NULL, (SQLWCHAR*)"Driver = { ODBC Driver 13 for SQL Server }; DSN = ''; SERVER = (localdb)\\mssqllocaldb; DATABASE = DictionaryOjegov;Trusted=trueф", SQL_NTS, retConString, 1024, NULL, SQL_DRIVER_NOPROMPT))
{
case SQL_SUCCESS:
break;
case SQL_SUCCESS_WITH_INFO:
break;
case SQL_NO_DATA_FOUND:
showSqlError(SQL_HANDLE_DBC, SQLConnectionHandle);
retCode = -1;
break;
case SQL_INVALID_HANDLE:
showSqlError(SQL_HANDLE_DBC, SQLConnectionHandle);
retCode = -1;
break;
case SQL_ERROR:
showSqlError(SQL_HANDLE_DBC, SQLConnectionHandle);
retCode = -1;
break;
default:
break;
}
if (retCode == -1)
break;
if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_STMT, SQLConnectionHandle, &SQLStatementHandle))
break;
if (SQL_SUCCESS != SQLExecDirect(SQLStatementHandle, (SQLWCHAR*)SqlQuery, SQL_NTS))
{
showSqlError(SQL_HANDLE_STMT, SQLStatementHandle);
break;
}
else
{
int Id;
char word[256];
while (SQLFetch(SQLStatementHandle)==SQL_SUCCESS)
{
SQLGetData(SQLStatementHandle, 1, SQL_C_DEFAULT, &Id, sizeof(Id), NULL);
SQLGetData(SQLStatementHandle, 1, SQL_C_DEFAULT, &word, sizeof(word), NULL);
cout << Id << " : " << word << endl;
}
}
} while (FALSE);
SQLFreeHandle(SQL_HANDLE_STMT, SQLStatementHandle);
SQLDisconnect(SQLConnectionHandle);
SQLFreeHandle(SQL_HANDLE_DBC, SQLConnectionHandle);
SQLFreeHandle(SQL_HANDLE_ENV, SQLEnvHandle);
return 0;
}
При подключении выдаёт ошибку, я думаю, что то не так со строкой подключения, но что понять не могу.