Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Modified ODBC interface to check zType length on xQuery to be consistent with SQLite interface. |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
d3d496700a484b8ba1ad52c686e4984f |
User & Date: | shaneh 2008-12-02 15:16:53.000 |
Context
2008-12-02
| ||
15:19 | Changed default hash threshold to 8. Added command line option -ht NUM that overrides any hash threshold in the test script (useful for debugging differences between DB engines). check-in: d1697d2d5f user: shaneh tags: trunk | |
15:16 | Modified ODBC interface to check zType length on xQuery to be consistent with SQLite interface. check-in: d3d496700a user: shaneh tags: trunk | |
14:25 | Make sure the number of columns returned by the query matches the number of columns that the test script expects. Generate an error if they disagree. Fix a bug in select2.tcl that was causing the wrong number of columns to be generated. check-in: fdbe3f356a user: drh tags: trunk | |
Changes
Changes to src/slt_odbc3.c.
︙ | ︙ | |||
177 178 179 180 181 182 183 | SQLNumResultCols(stmt, &columns); if( columns != 5 ){ /* Non-standard result set. Could be non-standard ODBC ** driver, or we're looking at wrong DB. Return an ** error and force them to fix this by hand. ** We don't want to accidentally delete something important. */ fprintf(stderr, | | | 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 | SQLNumResultCols(stmt, &columns); if( columns != 5 ){ /* Non-standard result set. Could be non-standard ODBC ** driver, or we're looking at wrong DB. Return an ** error and force them to fix this by hand. ** We don't want to accidentally delete something important. */ fprintf(stderr, "Result set of tables has wrong number of columns: %ld\n", (long)columns); rc = 1; } } if( !rc ){ /* Loop through the rows in the result-set */ |
︙ | ︙ | |||
275 276 277 278 279 280 281 | SQLRETURN ret; /* ODBC API return status */ ODBC3_Handles *pODBC3conn = NULL; char szConnStrIn[512] = ""; /* Allocate a structure to hold all of our ODBC3 handles */ pODBC3conn = (ODBC3_Handles *)malloc(sizeof(ODBC3_Handles)); if( !pODBC3conn ){ | | | 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 | SQLRETURN ret; /* ODBC API return status */ ODBC3_Handles *pODBC3conn = NULL; char szConnStrIn[512] = ""; /* Allocate a structure to hold all of our ODBC3 handles */ pODBC3conn = (ODBC3_Handles *)malloc(sizeof(ODBC3_Handles)); if( !pODBC3conn ){ fprintf(stderr, "Out of memory at %s:%d\n", __FILE__, __LINE__); return 1; } pODBC3conn->env = SQL_NULL_HENV; pODBC3conn->dbc = SQL_NULL_HDBC; pODBC3conn->zConnStr = NULL; /* Allocate an environment handle */ |
︙ | ︙ | |||
312 313 314 315 316 317 318 | } /* Allocate storage space for the returned connection information. */ if( !rc ){ pODBC3conn->zConnStr = (SQLCHAR *)malloc(1024 * sizeof(SQLCHAR)); if( !pODBC3conn->zConnStr ){ | | | 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 | } /* Allocate storage space for the returned connection information. */ if( !rc ){ pODBC3conn->zConnStr = (SQLCHAR *)malloc(1024 * sizeof(SQLCHAR)); if( !pODBC3conn->zConnStr ){ fprintf(stderr, "Out of memory at %s:%d\n", __FILE__, __LINE__); rc = 1; } } if( !rc ){ /* Build the connection string. If a DSN or DATABASE ** is not specified, use the defaults. |
︙ | ︙ | |||
454 455 456 457 458 459 460 | if( !rc ){ /* How many columns are there */ ret = SQLNumResultCols(stmt, &columns); if( !SQL_SUCCEEDED(ret) && (ret != SQL_SUCCESS_WITH_INFO) ){ ODBC3_perror("SQLNumResultCols", stmt, SQL_HANDLE_STMT); rc = 1; } | > > > > | | > | 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 | if( !rc ){ /* How many columns are there */ ret = SQLNumResultCols(stmt, &columns); if( !SQL_SUCCEEDED(ret) && (ret != SQL_SUCCESS_WITH_INFO) ){ ODBC3_perror("SQLNumResultCols", stmt, SQL_HANDLE_STMT); rc = 1; } if( strlen(zType)!=columns ){ fprintf(stderr, "Wrong number of result columns: Expected %d but got %d\n", (int)strlen(zType), (int)columns); rc = 1; } } if( !rc ){ /* Loop through the rows in the result-set */ do { ret = SQLFetch(stmt); if( SQL_SUCCEEDED(ret) ){ /* Loop through the columns */ for(i = 1; !rc && (i <= columns); i++){ |
︙ | ︙ | |||
578 579 580 581 582 583 584 | void *pConn /* Connection created by xConnect */ ){ int rc = 0; SQLRETURN ret; /* ODBC API return status */ ODBC3_Handles *pODBC3conn = pConn; if ( !pODBC3conn ){ | | | 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 | void *pConn /* Connection created by xConnect */ ){ int rc = 0; SQLRETURN ret; /* ODBC API return status */ ODBC3_Handles *pODBC3conn = pConn; if ( !pODBC3conn ){ fprintf(stderr, "Invalid ODBC3 connection object\n"); return 1; } if( pODBC3conn->dbc != SQL_NULL_HDBC ){ ret = SQLDisconnect(pODBC3conn->dbc); /* disconnect from driver */ if( !SQL_SUCCEEDED(ret) && (ret != SQL_SUCCESS_WITH_INFO) ){ ODBC3_perror("SQLDisconnect", pODBC3conn->dbc, SQL_HANDLE_DBC); |
︙ | ︙ |