Connect to db */
| 228 | |
| 229 | /* Connect to db */ |
| 230 | static msODBCconn * mssql2008Connect(const char * connString) |
| 231 | { |
| 232 | SQLCHAR fullConnString[1024]; |
| 233 | SQLRETURN rc; |
| 234 | msODBCconn * conn = msSmallMalloc(sizeof(msODBCconn)); |
| 235 | |
| 236 | memset(conn, 0, sizeof(*conn)); |
| 237 | |
| 238 | SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &conn->henv); |
| 239 | |
| 240 | SQLSetEnvAttr(conn->henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC3, 0); |
| 241 | |
| 242 | SQLAllocHandle(SQL_HANDLE_DBC, conn->henv, &conn->hdbc); |
| 243 | |
| 244 | snprintf((char*)fullConnString, sizeof(fullConnString), "DRIVER=SQL Server;%s", connString); |
| 245 | |
| 246 | { |
| 247 | SQLCHAR outConnString[1024]; |
| 248 | SQLSMALLINT outConnStringLen; |
| 249 | |
| 250 | rc = SQLDriverConnect(conn->hdbc, NULL, fullConnString, SQL_NTS, outConnString, 1024, &outConnStringLen, SQL_DRIVER_NOPROMPT); |
| 251 | } |
| 252 | |
| 253 | if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) |
| 254 | { |
| 255 | setConnError(conn); |
| 256 | |
| 257 | return conn; |
| 258 | } |
| 259 | |
| 260 | SQLAllocHandle(SQL_HANDLE_STMT, conn->hdbc, &conn->hstmt); |
| 261 | |
| 262 | return conn; |
| 263 | } |
| 264 | |
| 265 | /* Set the error string for the statement execution */ |
| 266 | static void setStmntError(msODBCconn *conn) |
no test coverage detected