Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Platform compatibility changes |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | sourceforge |
Files: | files | file ages | folders |
SHA1: |
2253540b7552d33469433e6ec8c7eee2 |
User & Date: | rmsimpson 2006-02-17 06:06:49.000 |
Context
2006-02-17
| ||
15:40 | no message check-in: bd90870f8e user: rmsimpson tags: sourceforge | |
06:06 | Platform compatibility changes check-in: 2253540b75 user: rmsimpson tags: sourceforge | |
06:06 | More index tweaks -- not done yet. check-in: cb20e39503 user: rmsimpson tags: sourceforge | |
Changes
Changes to SQLite.Interop/crypt.c.
︙ | ︙ | |||
277 278 279 280 281 282 283 | void sqlite3CodecGetKey(sqlite3 *db, int nDb, void **ppKey, int *pnKeyLen) { *ppKey = NULL; *pnKeyLen = 0; } // We do not attach this key to the temp store, only the main database. | | | | 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 | void sqlite3CodecGetKey(sqlite3 *db, int nDb, void **ppKey, int *pnKeyLen) { *ppKey = NULL; *pnKeyLen = 0; } // We do not attach this key to the temp store, only the main database. __declspec(dllexport) int WINAPI sqlite3_key_interop(sqlite3 *db, const void *pKey, int nKeySize) { return sqlite3CodecAttach(db, 0, pKey, nKeySize); } // Changes the encryption key for an existing database. __declspec(dllexport) int WINAPI sqlite3_rekey_interop(sqlite3 *db, const void *pKey, int nKeySize) { Btree *pbt = db->aDb[0].pBt; Pager *p = sqlite3BtreePager(pbt); LPCRYPTBLOCK pBlock = (LPCRYPTBLOCK)sqlite3pager_get_codecarg(p); HCRYPTKEY hKey = DeriveKey(pKey, nKeySize); int rc = SQLITE_ERROR; |
︙ | ︙ |
Changes to SQLite.Interop/interop.c.
︙ | ︙ | |||
13 14 15 16 17 18 19 | #if _WIN32_WCE #include "merge.h" #else #include "merge_full.h" #endif // _WIN32_WCE #endif // NDEBUG | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | | | | | | | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #if _WIN32_WCE #include "merge.h" #else #include "merge_full.h" #endif // _WIN32_WCE #endif // NDEBUG #ifdef OS_WIN #include <tchar.h> typedef void (WINAPI *SQLITEUSERFUNC)(void *, int, void **); typedef int (WINAPI *SQLITECOLLATION)(int, const void *, int, const void*); typedef int (WINAPI *ENCRYPTFILEW)(const wchar_t *); typedef int (WINAPI *ENCRYPTEDSTATUSW)(const wchar_t *, unsigned long *); typedef int (WINAPI *DECRYPTFILEW)(const wchar_t *, unsigned long); typedef HANDLE (WINAPI *CREATEFILEW)( LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE); |
︙ | ︙ | |||
162 163 164 165 166 167 168 | void sqlite3_interop_final(sqlite3_context *pctx) { SQLITEUSERFUNC *pf = (SQLITEUSERFUNC *)sqlite3_user_data(pctx); pf[2](pctx, 0, 0); } | | | 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | void sqlite3_interop_final(sqlite3_context *pctx) { SQLITEUSERFUNC *pf = (SQLITEUSERFUNC *)sqlite3_user_data(pctx); pf[2](pctx, 0, 0); } __declspec(dllexport) void WINAPI sqlite3_sleep_interop(int milliseconds) { Sleep(milliseconds); } __declspec(dllexport) int sqlite3_encryptfile(const wchar_t *pwszFilename) { HMODULE hMod = LoadLibrary(_T("ADVAPI32")); |
︙ | ︙ | |||
282 283 284 285 286 287 288 | return n; #else SetLastError(ERROR_NOT_SUPPORTED); return 0; #endif } | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 | return n; #else SetLastError(ERROR_NOT_SUPPORTED); return 0; #endif } __declspec(dllexport) int WINAPI sqlite3_compressfile(const wchar_t *pwszFilename) { return SetCompression(pwszFilename, COMPRESSION_FORMAT_DEFAULT); } __declspec(dllexport) int WINAPI sqlite3_decompressfile(const wchar_t *pwszFilename) { return SetCompression(pwszFilename, COMPRESSION_FORMAT_NONE); } __declspec(dllexport) void WINAPI sqlite3_function_free_callbackcookie(void *pCookie) { if (pCookie) free(pCookie); } // sqlite3 wrappers __declspec(dllexport) const char * WINAPI sqlite3_libversion_interop(int *plen) { const char *val = sqlite3_libversion(); *plen = (val != 0) ? strlen(val) : 0; return val; } __declspec(dllexport) int WINAPI sqlite3_libversion_number_interop(void) { return sqlite3_libversion_number(); } __declspec(dllexport) int WINAPI sqlite3_close_interop(sqlite3 *db) { return sqlite3_close(db); } __declspec(dllexport) int WINAPI sqlite3_exec_interop(sqlite3 *db, const char *sql, sqlite3_callback cb, void *pv, char **errmsg, int *plen) { int n = sqlite3_exec(db, sql, cb, pv, errmsg); *plen = (*errmsg != 0) ? strlen(*errmsg) : 0; return n; } __declspec(dllexport) sqlite_int64 WINAPI sqlite3_last_insert_rowid_interop(sqlite3 *db) { return sqlite3_last_insert_rowid(db); } __declspec(dllexport) int WINAPI sqlite3_changes_interop(sqlite3 *db) { return sqlite3_changes(db); } __declspec(dllexport) int WINAPI sqlite3_total_changes_interop(sqlite3 *db) { return sqlite3_total_changes(db); } __declspec(dllexport) void WINAPI sqlite3_interrupt_interop(sqlite3 *db) { sqlite3_interrupt(db); } __declspec(dllexport) int WINAPI sqlite3_complete_interop(const char *sql) { return sqlite3_complete(sql); } __declspec(dllexport) int WINAPI sqlite3_complete16_interop(const void *sql) { return sqlite3_complete16(sql); } __declspec(dllexport) int WINAPI sqlite3_busy_handler_interop(sqlite3 *db, int(*cb)(void *, int), void *pv) { return sqlite3_busy_handler(db, cb, pv); } __declspec(dllexport) int WINAPI sqlite3_busy_timeout_interop(sqlite3 *db, int ms) { return sqlite3_busy_timeout(db, ms); } __declspec(dllexport) int WINAPI sqlite3_get_table_interop(sqlite3 *db, const char *sql, char ***resultp, int *nrow, int *ncolumn, char **errmsg, int *plen) { int n = sqlite3_get_table(db, sql, resultp, nrow, ncolumn, errmsg); *plen = (*errmsg != 0) ? strlen((char *)*errmsg) : 0; return n; } __declspec(dllexport) void WINAPI sqlite3_free_table_interop(char **result) { sqlite3_free_table(result); } __declspec(dllexport) void WINAPI sqlite3_free_interop(char *z) { sqlite3_free(z); } __declspec(dllexport) int WINAPI sqlite3_open_interop(const char*filename, sqlite3 **ppdb) { return sqlite3_open(filename, ppdb); } __declspec(dllexport) int WINAPI sqlite3_open16_interop(const void *filename, sqlite3 **ppdb) { return sqlite3_open16(filename, ppdb); } __declspec(dllexport) int WINAPI sqlite3_errcode_interop(sqlite3 *db) { return sqlite3_errcode(db); } __declspec(dllexport) const char * WINAPI sqlite3_errmsg_interop(sqlite3 *db, int *plen) { const char *pval = sqlite3_errmsg(db); *plen = (pval != 0) ? strlen(pval) : 0; return pval; } __declspec(dllexport) const void * WINAPI sqlite3_errmsg16_interop(sqlite3 *db, int *plen) { const void *pval = sqlite3_errmsg16(db); *plen = (pval != 0) ? wcslen((wchar_t *)pval) * sizeof(wchar_t): 0; return pval; } __declspec(dllexport) int WINAPI sqlite3_prepare_interop(sqlite3 *db, const char *sql, int nbytes, sqlite3_stmt **ppstmt, const char **pztail, int *plen) { int n = sqlite3_prepare(db, sql, nbytes, ppstmt, pztail); *plen = (*pztail != 0) ? strlen(*pztail) : 0; return n; } __declspec(dllexport) int WINAPI sqlite3_prepare16_interop(sqlite3 *db, const void *sql, int nchars, sqlite3_stmt **ppstmt, const void **pztail, int *plen) { int n = sqlite3_prepare16(db, sql, nchars * sizeof(wchar_t), ppstmt, pztail); *plen = (*pztail != 0) ? wcslen((wchar_t *)*pztail) * sizeof(wchar_t) : 0; return n; } __declspec(dllexport) int WINAPI sqlite3_bind_blob_interop(sqlite3_stmt *stmt, int iCol, const void *pv, int n, void(*cb)(void*)) { return sqlite3_bind_blob(stmt, iCol, pv, n, cb); } __declspec(dllexport) int WINAPI sqlite3_bind_double_interop(sqlite3_stmt *stmt, int iCol, double *val) { return sqlite3_bind_double(stmt,iCol,*val); } __declspec(dllexport) int WINAPI sqlite3_bind_int_interop(sqlite3_stmt *stmt, int iCol, int val) { return sqlite3_bind_int(stmt, iCol, val); } __declspec(dllexport) int WINAPI sqlite3_bind_int64_interop(sqlite3_stmt *stmt, int iCol, sqlite_int64 *val) { return sqlite3_bind_int64(stmt,iCol,*val); } __declspec(dllexport) int WINAPI sqlite3_bind_null_interop(sqlite3_stmt *stmt, int iCol) { return sqlite3_bind_null(stmt, iCol); } __declspec(dllexport) int WINAPI sqlite3_bind_text_interop(sqlite3_stmt *stmt, int iCol, const char *val, int n, void(*cb)(void *)) { return sqlite3_bind_text(stmt, iCol, val, n, cb); } __declspec(dllexport) int WINAPI sqlite3_bind_text16_interop(sqlite3_stmt *stmt, int iCol, const void *val, int n, void(*cb)(void *)) { return sqlite3_bind_text16(stmt, iCol, val, n, cb); } __declspec(dllexport) int WINAPI sqlite3_bind_parameter_count_interop(sqlite3_stmt *stmt) { return sqlite3_bind_parameter_count(stmt); } __declspec(dllexport) const char * WINAPI sqlite3_bind_parameter_name_interop(sqlite3_stmt *stmt, int iCol, int *plen) { const char *pval = sqlite3_bind_parameter_name(stmt, iCol); *plen = (pval != 0) ? strlen(pval) : 0; return pval; } __declspec(dllexport) int WINAPI sqlite3_bind_parameter_index_interop(sqlite3_stmt *stmt, const char *zName) { return sqlite3_bind_parameter_index(stmt, zName); } __declspec(dllexport) int WINAPI sqlite3_column_count_interop(sqlite3_stmt *stmt) { return sqlite3_column_count(stmt); } __declspec(dllexport) const char * WINAPI sqlite3_column_name_interop(sqlite3_stmt *stmt, int iCol, int *plen) { const char *pval = sqlite3_column_name(stmt, iCol); *plen = (pval != 0) ? strlen(pval) : 0; return pval; } __declspec(dllexport) const void * WINAPI sqlite3_column_name16_interop(sqlite3_stmt *stmt, int iCol, int *plen) { const void *pval = sqlite3_column_name16(stmt, iCol); *plen = (pval != 0) ? wcslen((wchar_t *)pval) * sizeof(wchar_t) : 0; return pval; } __declspec(dllexport) const char * WINAPI sqlite3_column_decltype_interop(sqlite3_stmt *stmt, int iCol, int *plen) { const char *pval = sqlite3_column_decltype(stmt, iCol); *plen = (pval != 0) ? strlen(pval) : 0; return pval; } __declspec(dllexport) const void * WINAPI sqlite3_column_decltype16_interop(sqlite3_stmt *stmt, int iCol, int *plen) { const void *pval = sqlite3_column_decltype16(stmt, iCol); *plen = (pval != 0) ? wcslen((wchar_t *)pval) * sizeof(wchar_t) : 0; return pval; } __declspec(dllexport) int WINAPI sqlite3_step_interop(sqlite3_stmt *stmt) { return sqlite3_step(stmt); } __declspec(dllexport) int WINAPI sqlite3_data_count_interop(sqlite3_stmt *stmt) { return sqlite3_data_count(stmt); } __declspec(dllexport) const void * WINAPI sqlite3_column_blob_interop(sqlite3_stmt *stmt, int iCol) { return sqlite3_column_blob(stmt, iCol); } __declspec(dllexport) int WINAPI sqlite3_column_bytes_interop(sqlite3_stmt *stmt, int iCol) { return sqlite3_column_bytes(stmt, iCol); } __declspec(dllexport) int WINAPI sqlite3_column_bytes16_interop(sqlite3_stmt *stmt, int iCol) { return sqlite3_column_bytes16(stmt, iCol); } __declspec(dllexport) void WINAPI sqlite3_column_double_interop(sqlite3_stmt *stmt, int iCol, double *val) { *val = sqlite3_column_double(stmt,iCol); } __declspec(dllexport) int WINAPI sqlite3_column_int_interop(sqlite3_stmt *stmt, int iCol) { return sqlite3_column_int(stmt, iCol); } __declspec(dllexport) void WINAPI sqlite3_column_int64_interop(sqlite3_stmt *stmt, int iCol, sqlite_int64 *val) { *val = sqlite3_column_int64(stmt,iCol); } __declspec(dllexport) const unsigned char * WINAPI sqlite3_column_text_interop(sqlite3_stmt *stmt, int iCol, int *plen) { const unsigned char *pval = sqlite3_column_text(stmt, iCol); *plen = (pval != 0) ? strlen((char *)pval) : 0; return pval; } __declspec(dllexport) const void * WINAPI sqlite3_column_text16_interop(sqlite3_stmt *stmt, int iCol, int *plen) { const void *pval = sqlite3_column_text16(stmt, iCol); *plen = (pval != 0) ? wcslen((wchar_t *)pval) * sizeof(wchar_t): 0; return pval; } __declspec(dllexport) int WINAPI sqlite3_column_type_interop(sqlite3_stmt *stmt, int iCol) { return sqlite3_column_type(stmt, iCol); } __declspec(dllexport) int WINAPI sqlite3_finalize_interop(sqlite3_stmt *stmt) { return sqlite3_finalize(stmt); } __declspec(dllexport) int WINAPI sqlite3_reset_interop(sqlite3_stmt *stmt) { return sqlite3_reset(stmt); } __declspec(dllexport) int WINAPI sqlite3_create_function_interop(sqlite3 *psql, const char *zFunctionName, int nArg, int eTextRep, SQLITEUSERFUNC func, SQLITEUSERFUNC funcstep, SQLITEUSERFUNC funcfinal, void **ppCookie) { int n; SQLITEUSERFUNC *p = (SQLITEUSERFUNC *)malloc(sizeof(SQLITEUSERFUNC) * 3); p[0] = func; p[1] = funcstep; p[2] = funcfinal; *ppCookie = 0; n = sqlite3_create_function(psql, zFunctionName, nArg, eTextRep, p, (func != 0) ? sqlite3_interop_func : 0, (funcstep != 0) ? sqlite3_interop_step : 0, (funcfinal != 0) ? sqlite3_interop_final : 0); if (n != 0) free(p); else *ppCookie = p; return n; } __declspec(dllexport) int WINAPI sqlite3_create_function16_interop(sqlite3 *psql, void *zFunctionName, int nArg, int eTextRep, SQLITEUSERFUNC func, SQLITEUSERFUNC funcstep, SQLITEUSERFUNC funcfinal, void **ppCookie) { int n; SQLITEUSERFUNC *p = (SQLITEUSERFUNC *)malloc(sizeof(SQLITEUSERFUNC) * 3); p[0] = func; p[1] = funcstep; p[2] = funcfinal; *ppCookie = 0; n = sqlite3_create_function16(psql, zFunctionName, nArg, eTextRep, p, (func != 0) ? sqlite3_interop_func : 0, (funcstep != 0) ? sqlite3_interop_step : 0, (funcfinal != 0) ? sqlite3_interop_final : 0); if (n != 0) free(p); else *ppCookie = p; return n; } __declspec(dllexport) int WINAPI sqlite3_create_collation_interop(sqlite3* db, const char *zName, int eTextRep, void* pvUser, SQLITECOLLATION func, void **ppCookie) { int n; SQLITECOLLATION *p = (SQLITECOLLATION *)malloc(sizeof(SQLITECOLLATION)); p[0] = func; *ppCookie = 0; n = sqlite3_create_collation(db, zName, eTextRep, p, sqlite3_interop_collationfunc); if (n != 0) free(p); else *ppCookie = p; return n; } __declspec(dllexport) int WINAPI sqlite3_create_collation16_interop(sqlite3* db, const void *zName, int eTextRep, void* pvUser, SQLITECOLLATION func, void **ppCookie) { int n; SQLITECOLLATION *p = (SQLITECOLLATION *)malloc(sizeof(SQLITECOLLATION)); p[0] = func; *ppCookie = 0; n = sqlite3_create_collation16(db, (const char *)zName, eTextRep, p, sqlite3_interop_collationfunc); if (n != 0) free(p); else *ppCookie = p; return n; } __declspec(dllexport) int WINAPI sqlite3_aggregate_count_interop(sqlite3_context *pctx) { return sqlite3_aggregate_count(pctx); } __declspec(dllexport) const void * WINAPI sqlite3_value_blob_interop(sqlite3_value *val) { return sqlite3_value_blob(val); } __declspec(dllexport) int WINAPI sqlite3_value_bytes_interop(sqlite3_value *val) { return sqlite3_value_bytes(val); } __declspec(dllexport) int WINAPI sqlite3_value_bytes16_interop(sqlite3_value *val) { return sqlite3_value_bytes16(val); } __declspec(dllexport) void WINAPI sqlite3_value_double_interop(sqlite3_value *pval, double *val) { *val = sqlite3_value_double(pval); } __declspec(dllexport) int WINAPI sqlite3_value_int_interop(sqlite3_value *val) { return sqlite3_value_int(val); } __declspec(dllexport) void WINAPI sqlite3_value_int64_interop(sqlite3_value *pval, sqlite_int64 *val) { *val = sqlite3_value_int64(pval); } __declspec(dllexport) const unsigned char * WINAPI sqlite3_value_text_interop(sqlite3_value *val, int *plen) { const unsigned char *pval = sqlite3_value_text(val); *plen = (pval != 0) ? strlen((char *)pval) : 0; return pval; } __declspec(dllexport) const void * WINAPI sqlite3_value_text16_interop(sqlite3_value *val, int *plen) { const void *pval = sqlite3_value_text16(val); *plen = (pval != 0) ? wcslen((wchar_t *)pval) * sizeof(wchar_t) : 0; return pval; } __declspec(dllexport) int WINAPI sqlite3_value_type_interop(sqlite3_value *val) { return sqlite3_value_type(val); } __declspec(dllexport) void * WINAPI sqlite3_aggregate_context_interop(sqlite3_context *pctx, int n) { return sqlite3_aggregate_context(pctx, n); } __declspec(dllexport) void WINAPI sqlite3_result_blob_interop(sqlite3_context *ctx, const void *pv, int n, void(*cb)(void *)) { sqlite3_result_blob(ctx, pv, n, cb); } __declspec(dllexport) void WINAPI sqlite3_result_double_interop(sqlite3_context *pctx, double *val) { sqlite3_result_double(pctx, *val); } __declspec(dllexport) void WINAPI sqlite3_result_int_interop(sqlite3_context *pctx, int val) { sqlite3_result_int(pctx, val); } __declspec(dllexport) void WINAPI sqlite3_result_int64_interop(sqlite3_context *pctx, sqlite_int64 *val) { sqlite3_result_int64(pctx, *val); } __declspec(dllexport) void WINAPI sqlite3_result_null_interop(sqlite3_context *pctx) { sqlite3_result_null(pctx); } __declspec(dllexport) void WINAPI sqlite3_result_error_interop(sqlite3_context *ctx, const char *pv, int n) { sqlite3_result_error(ctx, pv, n); } __declspec(dllexport) void WINAPI sqlite3_result_error16_interop(sqlite3_context *ctx, const void *pv, int n) { sqlite3_result_error16(ctx, pv, n); } __declspec(dllexport) void WINAPI sqlite3_result_text_interop(sqlite3_context *ctx, const char *pv, int n, void(*cb)(void *)) { sqlite3_result_text(ctx, pv, n, cb); } __declspec(dllexport) void WINAPI sqlite3_result_text16_interop(sqlite3_context *ctx, const void *pv, int n, void(*cb)(void *)) { sqlite3_result_text16(ctx, pv, n, cb); } __declspec(dllexport) const char * WINAPI sqlite3_column_database_name_interop(sqlite3_stmt *stmt, int iCol, int *plen) { const char *pval = sqlite3_column_database_name(stmt, iCol); *plen = (pval != 0) ? strlen(pval) : 0; return pval; } __declspec(dllexport) const void * WINAPI sqlite3_column_databsae_name16_interop(sqlite3_stmt *stmt, int iCol, int *plen) { const void *pval = sqlite3_column_database_name16(stmt, iCol); *plen = (pval != 0) ? wcslen((wchar_t *)pval) * sizeof(wchar_t) : 0; return pval; } __declspec(dllexport) const char * WINAPI sqlite3_column_table_name_interop(sqlite3_stmt *stmt, int iCol, int *plen) { const char *pval = sqlite3_column_table_name(stmt, iCol); *plen = (pval != 0) ? strlen(pval) : 0; return pval; } __declspec(dllexport) const void * WINAPI sqlite3_column_table_name16_interop(sqlite3_stmt *stmt, int iCol, int *plen) { const void *pval = sqlite3_column_table_name16(stmt, iCol); *plen = (pval != 0) ? wcslen((wchar_t *)pval) * sizeof(wchar_t) : 0; return pval; } __declspec(dllexport) const char * WINAPI sqlite3_column_origin_name_interop(sqlite3_stmt *stmt, int iCol, int *plen) { const char *pval = sqlite3_column_origin_name(stmt, iCol); *plen = (pval != 0) ? strlen(pval) : 0; return pval; } __declspec(dllexport) const void * WINAPI sqlite3_column_origin_name16_interop(sqlite3_stmt *stmt, int iCol, int *plen) { const void *pval = sqlite3_column_origin_name16(stmt, iCol); *plen = (pval != 0) ? wcslen((wchar_t *)pval) * sizeof(wchar_t) : 0; return pval; } __declspec(dllexport) int sqlite3_table_column_metadata_interop(sqlite3 *db, const char *zDbName, const char *zTableName, const char *zColumnName, char **pzDataType, char **pzCollSeq, int *pNotNull, int *pPrimaryKey, int *pAutoinc, int *pdtLen, int *pcsLen) { int n = sqlite3_table_column_metadata(db, zDbName, zTableName, zColumnName, pzDataType, pzCollSeq, pNotNull, pPrimaryKey, pAutoinc); *pdtLen = (*pzDataType != 0) ? strlen(*pzDataType) : 0; *pcsLen = (*pzCollSeq != 0) ? strlen(*pzCollSeq) : 0; return n; } //__declspec(dllexport) void WINAPI sqlite3_realcolnames(sqlite3 *db, int bOn) //{ // if (bOn) // db->flags |= 0x01000000; // else // db->flags &= (~0x01000000); //} #endif // OS_WIN |