Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | 1.0.50.0 |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | sourceforge |
Files: | files | file ages | folders |
SHA1: |
1db667d2bd2bd1e3b1d8fd60baf4f420 |
User & Date: | rmsimpson 2008-06-27 21:33:26.000 |
Context
2008-06-27
| ||
21:34 | 1.0.50.0 check-in: 5d225801e2 user: rmsimpson tags: sourceforge | |
21:33 | 1.0.50.0 check-in: 1db667d2bd user: rmsimpson tags: sourceforge | |
2008-05-28
| ||
08:19 | VS2008 Conversion check-in: 464ebf8948 user: rmsimpson tags: sourceforge | |
Changes
Changes to Doc/Extra/dbfactorysupport.html.
︙ | ︙ | |||
93 94 95 96 97 98 99 | <configuration> <system.data> <DbProviderFactories> <remove invariant="System.Data.SQLite"/> <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, | | | 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | <configuration> <system.data> <DbProviderFactories> <remove invariant="System.Data.SQLite"/> <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.50.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139"/> </DbProviderFactories> </system.data> </configuration> </pre> </div> <p> |
︙ | ︙ |
Changes to Doc/Extra/version.html.
︙ | ︙ | |||
51 52 53 54 55 56 57 58 59 60 61 62 63 64 | </td> </tr> </table> </div> <div id="mainSection"> <div id="mainBody"> <h1 class="heading">Version History</h1> <p><b>1.0.49.0 - May 28, 2008</b></p> <ul> <li>Code merge with SQLite 3.5.9</li> <li>Fixed schema problems when querying the TEMP catalog.</li> <li>Changed BLOB datatype schema to return IsLong = False instead of True. This was preventing DbCommandBuilder from using GUID's and BLOB's as primary keys.</li> <li>Fix rollover issue with SQLite3.Reset() using TickCount.</li> | > > > > > > > > > > | 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | </td> </tr> </table> </div> <div id="mainSection"> <div id="mainBody"> <h1 class="heading">Version History</h1> <p><b>1.0.50.0 - June 27, 2008</b></p> <ul> <li>Fixed some lingering dispose issues and race conditions when some objects were finalized.</li> <li>Fixed the SQLiteConvert.Split() routine to be a little smarter when splitting strings, which solves the quoted data source filename problem.</li> <li>Enhanced the mergebin utility to work around the strong name validation bug on the Compact Framework. The old workaround kludged the DLL and caused WM6.1 to fail to load it. This new solution is permanent and no longer kludges the DLL.</li> </ul> <p><b>1.0.49.0 - May 28, 2008</b></p> <ul> <li>Code merge with SQLite 3.5.9</li> <li>Fixed schema problems when querying the TEMP catalog.</li> <li>Changed BLOB datatype schema to return IsLong = False instead of True. This was preventing DbCommandBuilder from using GUID's and BLOB's as primary keys.</li> <li>Fix rollover issue with SQLite3.Reset() using TickCount.</li> |
︙ | ︙ |
Changes to Doc/SQLite.NET.chm.
cannot compute difference between binary files
Changes to SQLite.Designer/SQLite.Designer.csproj.
1 2 3 4 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | | | 1 2 3 4 5 6 7 8 9 10 11 12 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProductVersion>9.0.30428</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}</ProjectGuid> <OutputType>Library</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>SQLite.Designer</RootNamespace> <AssemblyName>SQLite.Designer</AssemblyName> <SignAssembly>false</SignAssembly> |
︙ | ︙ | |||
50 51 52 53 54 55 56 57 58 59 | <RegisterOutputPackage>false</RegisterOutputPackage> <RegisterWithCodebase>false</RegisterWithCodebase> <GeneratePkgDefFile>false</GeneratePkgDefFile> </PropertyGroup> <ItemGroup> <Reference Include="Microsoft.Data.ConnectionUI, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <Private>False</Private> </Reference> <Reference Include="Microsoft.VisualStudio.Data, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | > < | > | 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | <RegisterOutputPackage>false</RegisterOutputPackage> <RegisterWithCodebase>false</RegisterWithCodebase> <GeneratePkgDefFile>false</GeneratePkgDefFile> </PropertyGroup> <ItemGroup> <Reference Include="Microsoft.Data.ConnectionUI, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\Program Files (x86)\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Common\Assemblies\2005\Microsoft.Data.ConnectionUI.dll</HintPath> <Private>False</Private> </Reference> <Reference Include="Microsoft.VisualStudio.Data, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\Program Files (x86)\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Common\Assemblies\2005\Microsoft.VisualStudio.Data.dll</HintPath> <Private>False</Private> </Reference> <Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <SpecificVersion>False</SpecificVersion> </Reference> <Reference Include="Microsoft.VisualStudio.Shell, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> |
︙ | ︙ |
Changes to SQLite.Interop/SQLite.Interop.rc.
︙ | ︙ | |||
49 50 51 52 53 54 55 | ///////////////////////////////////////////////////////////////////////////// // // Version // VS_VERSION_INFO VERSIONINFO | | | | 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | ///////////////////////////////////////////////////////////////////////////// // // Version // VS_VERSION_INFO VERSIONINFO FILEVERSION 1,0,50,0 PRODUCTVERSION 1,0,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x4L FILETYPE 0x2L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904b0" BEGIN VALUE "Comments", "http://sqlite.phxsoftware.com" VALUE "FileDescription", "System.Data.SQLite Interop Library" VALUE "FileVersion", "1.0.50.0" VALUE "InternalName", "SQLite.Interop.DLL" VALUE "LegalCopyright", "Released to the public domain" VALUE "OriginalFilename", "SQLite3.DLL 3.5.9" VALUE "ProductName", "System.Data.SQLite" VALUE "ProductVersion", "1.0" END END |
︙ | ︙ |
Changes to SQLite.Interop/SQLite.Interop.vcproj.
︙ | ︙ | |||
109 110 111 112 113 114 115 | </Configuration> <Configuration Name="Release|Pocket PC 2003 (ARMV4)" OutputDirectory="Pocket PC 2003 (ARMV4)\$(ConfigurationName)" IntermediateDirectory="Pocket PC 2003 (ARMV4)\$(ConfigurationName)" ConfigurationType="2" CharacterSet="1" | | > > < > > > > | > > | | 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 | </Configuration> <Configuration Name="Release|Pocket PC 2003 (ARMV4)" OutputDirectory="Pocket PC 2003 (ARMV4)\$(ConfigurationName)" IntermediateDirectory="Pocket PC 2003 (ARMV4)\$(ConfigurationName)" ConfigurationType="2" CharacterSet="1" WholeProgramOptimization="0" > <Tool Name="VCPreBuildEventTool" CommandLine="" /> <Tool Name="VCCustomBuildTool" /> <Tool Name="VCXMLDataGeneratorTool" /> <Tool Name="VCWebServiceProxyGeneratorTool" /> <Tool Name="VCMIDLTool" /> <Tool Name="VCCLCompilerTool" ExecutionBucket="7" Optimization="1" FavorSizeOrSpeed="2" PreprocessorDefinitions="_WIN32_WCE=$(CEVER);UNDER_CE=$(CEVER);WINCE;$(PLATFORMDEFINES);NDEBUG;_WINDOWS;_USRDLL;CPPSMART_EXPORTS;$(ARCHFAM);$(_ARCHFAM_);UNICODE;_UNICODE;SQLITE_HAS_CODEC;SQLITE_ENABLE_COLUMN_METADATA;SQLITE_ENABLE_FTS3;SQLITE_OMIT_TRACE" ExceptionHandling="0" BufferSecurityCheck="false" /> <Tool Name="VCManagedResourceCompilerTool" /> <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG;_UNICODE;UNICODE;_WIN32_WCE;UNDER_CE" Culture="1033" AdditionalIncludeDirectories="$(IntDir)" /> <Tool Name="VCPreLinkEventTool" Description="Fixing .bss section" CommandLine="..\bin\tools\mergebin.exe /B:"$(IntDir)\interop.obj"" /> <Tool Name="VCLinkerTool" OutputFile="../bin/CompactFramework/System.Data.SQLite.DLL" SuppressStartupBanner="false" AdditionalLibraryDirectories="" IgnoreDefaultLibraryNames="" ModuleDefinitionFile="src\sqlite3.def" AddModuleNamesToAssembly="" EmbedManagedResourceFile="" SubSystem="8" EntryPointSymbol="" RandomizedBaseAddress="0" DataExecutionPrevention="0" MergeSections="" TargetMachine="3" /> <Tool Name="VCALinkTool" /> <Tool Name="VCXDCMakeTool" /> <Tool Name="VCBscMakeTool" /> <Tool Name="VCFxCopTool" /> <Tool Name="VCCodeSignTool" /> <Tool Name="VCPostBuildEventTool" Description="Merging binaries ..." CommandLine="..\bin\tools\mergebin.exe /S:.clr ..\System.Data.SQLite\bin\CompactFramework\$(TargetFileName) "$(TargetPath)"
sn -Ra "$(TargetPath)" ..\System.Data.SQLite\System.Data.SQLite.CF.snk
" /> <DeploymentTool ForceDirty="-1" RemoteDirectory="\Program Files\testce" RegisterOutput="0" AdditionalFiles="" /> |
︙ | ︙ |
Changes to SQLite.Interop/interop.c.
|
| < | 1 2 3 4 5 6 7 | #include "src/sqlite3.c" #include "crypt.c" #include <tchar.h> #if NDEBUG #if _WIN32_WCE |
︙ | ︙ | |||
59 60 61 62 63 64 65 | } __declspec(dllexport) void WINAPI sqlite3_sleep_interop(int milliseconds) { Sleep(milliseconds); } | > | | > > | | < | > | | > | | < | < < | > | < < | < > | | | | | | | | | | | | | | | | | | < > | 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | } __declspec(dllexport) void WINAPI sqlite3_sleep_interop(int milliseconds) { Sleep(milliseconds); } static CRITICAL_SECTION g_cs; static LONG g_dwcsInit = 0; //void InitializeDbMutex(sqlite3 *pdb) //{ // //pdb->pTraceArg = (CRITICAL_SECTION *)sqlite3_malloc(sizeof(CRITICAL_SECTION)); // //InitializeCriticalSection(pdb->pTraceArg); //} // void EnterGlobalMutex() { if (InterlockedCompareExchange(&g_dwcsInit, 1, 0) == 0) InitializeCriticalSection(&g_cs); EnterCriticalSection(&g_cs); } void LeaveGlobalMutex() { LeaveCriticalSection(&g_cs); } // //int sqlite3_closeAndFreeMutex(sqlite3 *db) //{ // //CRITICAL_SECTION *pcrit = db->pTraceArg; // int ret; // //EnterDbMutex(db); // // ret = sqlite3_close(db); // //if (ret == SQLITE_OK) // //{ // // if (pcrit) // // { // // LeaveCriticalSection(pcrit); // // DeleteCriticalSection(pcrit); // // sqlite3_free(pcrit); // // } // //} // //else // // LeaveDbMutex(db); // // return ret; //} int SetCompression(const wchar_t *pwszFilename, unsigned short ufLevel) { #ifdef FSCTL_SET_COMPRESSION HMODULE hMod = GetModuleHandle(_T("KERNEL32")); CREATEFILEW pfunc; HANDLE hFile; |
︙ | ︙ | |||
185 186 187 188 189 190 191 | their memory is freed and can be used for something else. The GC thread could potentially try and call finalize again on the statement after that memory was deallocated. BAD. So, what we need to do is make a copy of each statement, and call finalize() on the copy -- so that the original statement's memory is preserved, and marked as BAD, but we can still manage to finalize everything and forcibly close the database. Later when the GC gets around to calling finalize_interop() on the "bad" statement, we detect that and finish deallocating the pointer. */ __declspec(dllexport) int WINAPI sqlite3_close_interop(sqlite3 *db) { | > > > > | | > > > > | > > < < | 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 | their memory is freed and can be used for something else. The GC thread could potentially try and call finalize again on the statement after that memory was deallocated. BAD. So, what we need to do is make a copy of each statement, and call finalize() on the copy -- so that the original statement's memory is preserved, and marked as BAD, but we can still manage to finalize everything and forcibly close the database. Later when the GC gets around to calling finalize_interop() on the "bad" statement, we detect that and finish deallocating the pointer. */ __declspec(dllexport) int WINAPI sqlite3_close_interop(sqlite3 *db) { int ret; EnterGlobalMutex(); ret = sqlite3_close(db); if (ret == SQLITE_BUSY && db->pVdbe) { while (db->pVdbe) { // Make a copy of the first prepared statement Vdbe *p = (Vdbe *)sqlite3_malloc(sizeof(Vdbe)); Vdbe *po = db->pVdbe; if (!p) { ret = SQLITE_NOMEM; break; } CopyMemory(p, po, sizeof(Vdbe)); // Put it on the chain so we can free it db->pVdbe = p; ret = sqlite3_finalize((sqlite3_stmt *)p); // This will also free the copy's memory if (ret) { // finalize failed -- so we must put back anything we munged CopyMemory(po, p, sizeof(Vdbe)); db->pVdbe = po; break; } else { ZeroMemory(po, sizeof(Vdbe)); po->magic = VDBE_MAGIC_DEAD; } } ret = sqlite3_close(db); } LeaveGlobalMutex(); return ret; } // Returns the number of databases attached to this one __declspec(dllexport) void WINAPI sqlite3_detach_all_interop(sqlite3 *db) { } __declspec(dllexport) int WINAPI sqlite3_exec_interop(sqlite3 *db, const char *sql, sqlite3_callback cb, void *pv, char **errmsg, int *plen) { int n; 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); |
︙ | ︙ | |||
298 299 300 301 302 303 304 | { sqlite3_free(z); } __declspec(dllexport) int WINAPI sqlite3_open_interop(const char*filename, sqlite3 **ppdb) { int ret = sqlite3_open(filename, ppdb); | < < < < | 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 | { sqlite3_free(z); } __declspec(dllexport) int WINAPI sqlite3_open_interop(const char*filename, sqlite3 **ppdb) { int ret = sqlite3_open(filename, ppdb); return ret; } __declspec(dllexport) int WINAPI sqlite3_open16_interop(const void *filename, sqlite3 **ppdb) { int ret = sqlite3_open16(filename, ppdb); return ret; } __declspec(dllexport) int WINAPI sqlite3_errcode_interop(sqlite3 *db) { return sqlite3_errcode(db); } |
︙ | ︙ | |||
334 335 336 337 338 339 340 | return sqlite3_errmsg_interop(p->db, plen); } __declspec(dllexport) int WINAPI sqlite3_prepare_interop(sqlite3 *db, const char *sql, int nbytes, sqlite3_stmt **ppstmt, const char **pztail, int *plen) { int n; | < | < | | 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 | return sqlite3_errmsg_interop(p->db, plen); } __declspec(dllexport) int WINAPI sqlite3_prepare_interop(sqlite3 *db, const char *sql, int nbytes, sqlite3_stmt **ppstmt, const char **pztail, int *plen) { int n; 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; 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); } |
︙ | ︙ | |||
441 442 443 444 445 446 447 | return pval; } __declspec(dllexport) int WINAPI sqlite3_step_interop(sqlite3_stmt *stmt) { int ret; | < < < | 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 | return pval; } __declspec(dllexport) int WINAPI sqlite3_step_interop(sqlite3_stmt *stmt) { int ret; if (((Vdbe *)stmt)->magic == VDBE_MAGIC_DEAD) return SQLITE_ERROR; ret = sqlite3_step(stmt); return ret; } __declspec(dllexport) int WINAPI sqlite3_data_count_interop(sqlite3_stmt *stmt) { return sqlite3_data_count(stmt); |
︙ | ︙ | |||
507 508 509 510 511 512 513 | { return sqlite3_column_type(stmt, iCol); } __declspec(dllexport) int WINAPI sqlite3_finalize_interop(sqlite3_stmt *stmt) { // Try and finalize a statement, and close the database it belonged to if the database was marked for closing | | | > > > > > > > | | > > | | > | > | | < | | | | | | | | | | > > > > < < | 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 | { return sqlite3_column_type(stmt, iCol); } __declspec(dllexport) int WINAPI sqlite3_finalize_interop(sqlite3_stmt *stmt) { // Try and finalize a statement, and close the database it belonged to if the database was marked for closing Vdbe *p; sqlite3 *db; int ret; EnterGlobalMutex(); p = (Vdbe *)stmt; db = (p == NULL) ? NULL : p->db; while(1) { if (p->magic == VDBE_MAGIC_DEAD) { if (db == NULL) { sqlite3_free(p); ret = SQLITE_OK; break; } } ret = sqlite3_finalize(stmt); if (ret == SQLITE_OK) { if (db->flags & SQLITE_WantClose) { if (db->pVdbe == NULL) { ret = sqlite3_close(db); } } } break; } LeaveGlobalMutex(); return ret; } __declspec(dllexport) int WINAPI sqlite3_reset_interop(sqlite3_stmt *stmt) { int ret; if (((Vdbe *)stmt)->magic == VDBE_MAGIC_DEAD) return SQLITE_SCHEMA; ret = sqlite3_reset(stmt); return ret; } __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); |
︙ | ︙ | |||
771 772 773 774 775 776 777 | return pval; } __declspec(dllexport) int WINAPI 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; | < < | 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 | return pval; } __declspec(dllexport) int WINAPI 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; 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; } void sqlite3_update_callback(void *pArg, int type, const char *pDatabase, const char *pTable, sqlite_int64 rowid) { SQLITEUPDATEHOOK func = (SQLITEUPDATEHOOK)pArg; |
︙ | ︙ | |||
819 820 821 822 823 824 825 | __declspec(dllexport) int WINAPI sqlite3_table_cursor(sqlite3_stmt *pstmt, int iDb, Pgno tableRootPage) { Vdbe *p = (Vdbe *)pstmt; sqlite3 *db = (p == NULL) ? NULL : p->db; int n; int ret = -1; | | > | | | 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 | __declspec(dllexport) int WINAPI sqlite3_table_cursor(sqlite3_stmt *pstmt, int iDb, Pgno tableRootPage) { Vdbe *p = (Vdbe *)pstmt; sqlite3 *db = (p == NULL) ? NULL : p->db; int n; int ret = -1; sqlite3_mutex_enter(db->mutex); for (n = 0; n < p->nCursor && p->apCsr[n] != NULL; n++) { if (p->apCsr[n]->isTable == FALSE) continue; if (p->apCsr[n]->iDb != iDb) continue; if (p->apCsr[n]->pCursor->pgnoRoot == tableRootPage) { ret = n; break; } } sqlite3_mutex_leave(db->mutex); return ret; } __declspec(dllexport) int WINAPI sqlite3_cursor_rowid(sqlite3_stmt *pstmt, int cursor, sqlite_int64 *prowid) { Vdbe *p = (Vdbe *)pstmt; sqlite3 *db = (p == NULL) ? NULL : p->db; int rc = 0; Cursor *pC; int ret = 0; sqlite3_mutex_enter(db->mutex); while (1) { if (cursor < 0 || cursor >= p->nCursor) { ret = SQLITE_ERROR; break; } |
︙ | ︙ | |||
887 888 889 890 891 892 893 | break; } sqlite3BtreeKeySize(pC->pCursor, prowid); *prowid = keyToInt(*prowid); } break; } | | < | | | > | 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 | break; } sqlite3BtreeKeySize(pC->pCursor, prowid); *prowid = keyToInt(*prowid); } break; } sqlite3_mutex_leave(db->mutex); return ret; } // IMPORTANT: This placeholder is here for a reason!!! // On the Compact Framework the .data section of the DLL must have its RawDataSize larger than the VirtualSize! // If its not, strong name validation will fail and other bad things will happen. //#if _WIN32_WCE //__int64 _ph[17] = {1}; //#endif // _WIN32_WCE #endif // OS_WIN |
Changes to SQLite.Interop/merge.h.
1 2 3 4 5 6 7 | // This code was automatically generated from assembly // C:\Src\SQLite.NET\System.Data.SQLite\bin\CompactFramework\System.Data.SQLite.dll #include <windef.h> #pragma data_seg(push,clrseg,".clr") #pragma comment(linker, "/SECTION:.clr,ER") | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // This code was automatically generated from assembly // C:\Src\SQLite.NET\System.Data.SQLite\bin\CompactFramework\System.Data.SQLite.dll #include <windef.h> #pragma data_seg(push,clrseg,".clr") #pragma comment(linker, "/SECTION:.clr,ER") char __ph[132720] = {0}; // The number of bytes to reserve #pragma data_seg(pop,clrseg) typedef BOOL (WINAPI *DLLMAIN)(HANDLE, DWORD, LPVOID); typedef struct EXTRA_STUFF { DWORD dwNativeEntryPoint; } EXTRA_STUFF, *LPEXTRA_STUFF; |
︙ | ︙ |
Changes to SQLite.Interop/merge_full.h.
1 2 3 4 5 6 7 | // This code was automatically generated from assembly // C:\Src\SQLite.NET\System.Data.SQLite\bin\System.Data.SQLite.dll #include <windef.h> #pragma data_seg(push,clrseg,".clr") #pragma comment(linker, "/SECTION:.clr,ER") | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // This code was automatically generated from assembly // C:\Src\SQLite.NET\System.Data.SQLite\bin\System.Data.SQLite.dll #include <windef.h> #pragma data_seg(push,clrseg,".clr") #pragma comment(linker, "/SECTION:.clr,ER") char __ph[144728] = {0}; // The number of bytes to reserve #pragma data_seg(pop,clrseg) typedef BOOL (WINAPI *DLLMAIN)(HANDLE, DWORD, LPVOID); typedef struct EXTRA_STUFF { DWORD dwNativeEntryPoint; } EXTRA_STUFF, *LPEXTRA_STUFF; |
︙ | ︙ |
Changes to SQLite.NET.suo.
cannot compute difference between binary files
Changes to System.Data.SQLite/AssemblyInfo.cs.
︙ | ︙ | |||
44 45 46 47 48 49 50 | // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: | | | | 44 45 46 47 48 49 50 51 52 53 54 | // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: [assembly: AssemblyVersion("1.0.50.0")] #if !PLATFORM_COMPACTFRAMEWORK [assembly: AssemblyFileVersion("1.0.50.0")] #endif |
Changes to System.Data.SQLite/LINQ/SQLiteConnection_Linq.cs.
︙ | ︙ | |||
12 13 14 15 16 17 18 | using System.Data.Common; using System.Collections.Generic; using System.Globalization; using System.ComponentModel; public sealed partial class SQLiteConnection { | < < < < < < | < | | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | using System.Data.Common; using System.Collections.Generic; using System.Globalization; using System.ComponentModel; public sealed partial class SQLiteConnection { /// <summary> /// Returns a SQLiteProviderFactory object. /// </summary> protected override DbProviderFactory DbProviderFactory { get { return SQLiteFactory.Instance; } } } } |
Changes to System.Data.SQLite/SQLiteConvert.cs.
︙ | ︙ | |||
334 335 336 337 338 339 340 | while (source.Length > 0) { n = source.IndexOfAny(toks, n); if (n == -1) break; if (source[n] == toks[0]) { | | | | > | > > > | > > > > > > | 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 | while (source.Length > 0) { n = source.IndexOfAny(toks, n); if (n == -1) break; if (source[n] == toks[0]) { //source = source.Remove(n, 1); n = source.IndexOfAny(quot, n + 1); if (n == -1) { //source = "\"" + source; break; } n++; //source = source.Remove(n, 1); } else { s = source.Substring(0, n).Trim(); if (s.Length > 1 && s[0] == quot[0] && s[s.Length - 1] == s[0]) s = s.Substring(1, s.Length - 2); source = source.Substring(n + 1).Trim(); if (s.Length > 0) ls.Add(s); n = 0; } } if (source.Length > 0) { s = source.Trim(); if (s.Length > 1 && s[0] == quot[0] && s[s.Length - 1] == s[0]) s = s.Substring(1, s.Length - 2); ls.Add(s); } string[] ar = new string[ls.Count]; ls.CopyTo(ar, 0); return ar; } |
︙ | ︙ |
Changes to System.Data.SQLite/System.Data.SQLite.
1 2 3 4 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | | | > > > > > > | > > > > | | > > > < < | > | | < | < | < < < > > < | | > > | > > | > > < < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProductVersion>9.0.21022</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>{AC139951-261A-4463-B6FA-AEBC25283A66}</ProjectGuid> <OutputType>Library</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>System.Data.SQLite</RootNamespace> <AssemblyName>System.Data.SQLite</AssemblyName> <ProjectTypeGuids>{4D628B5B-2FBC-4AA6-8C16-197242AEB884};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <PlatformFamilyName>Smartphone</PlatformFamilyName> <PlatformID>f27da329-3269-4191-98e0-c87d3d7f1db9</PlatformID> <OSVersion>5.02</OSVersion> <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> <FormFactorID> </FormFactorID> <SignAssembly>true</SignAssembly> <AssemblyOriginatorKeyFile>System.Data.SQLite.CF.snk</AssemblyOriginatorKeyFile> <DeployDirSuffix>testce</DeployDirSuffix> <DeployDirPrefix>%25CSIDL_PROGRAM_FILES%25</DeployDirPrefix> <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent> <FileUpgradeFlags> </FileUpgradeFlags> <OldToolsVersion>2.0</OldToolsVersion> <NativePlatformName>Windows Mobile 6 Standard SDK</NativePlatformName> <UpgradeBackupLocation> </UpgradeBackupLocation> <DelaySign>false</DelaySign> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>..\bin\CompactFramework\</OutputPath> <DefineConstants>TRACE;DEBUG;PocketPC;PLATFORM_COMPACTFRAMEWORK;USE_INTEROP_DLL</DefineConstants> <NoStdLib>true</NoStdLib> <NoConfig>true</NoConfig> <ErrorReport>prompt</ErrorReport> <FileAlignment>512</FileAlignment> <WarningLevel>4</WarningLevel> <DocumentationFile> </DocumentationFile> <GenerateSerializationAssemblies>off</GenerateSerializationAssemblies> <AllowUnsafeBlocks>false</AllowUnsafeBlocks> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> <Optimize>true</Optimize> <OutputPath>bin\CompactFramework\</OutputPath> <DefineConstants>PocketPC;PLATFORM_COMPACTFRAMEWORK</DefineConstants> <NoStdLib>true</NoStdLib> <NoConfig>true</NoConfig> <ErrorReport>prompt</ErrorReport> <FileAlignment>512</FileAlignment> <WarningLevel>4</WarningLevel> <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies> <AllowUnsafeBlocks>false</AllowUnsafeBlocks> </PropertyGroup> <ItemGroup> <Reference Include="mscorlib" /> <Reference Include="System"> <Private>False</Private> </Reference> <Reference Include="System.Data"> <Private>False</Private> </Reference> <Reference Include="System.Xml"> <Private>False</Private> </Reference> </ItemGroup> <ItemGroup> <Compile Include="AssemblyInfo.cs" /> <Compile Include="SQLite3.cs" /> <Compile Include="SQLite3_UTF16.cs" /> <Compile Include="SQLiteBase.cs" /> <Compile Include="SQLiteCommand.cs"> <SubType>Component</SubType> </Compile> <Compile Include="SQLiteCommandBuilder.cs"> <SubType>Component</SubType> </Compile> <Compile Include="SQLiteConnection.cs"> <SubType>Component</SubType> </Compile> <Compile Include="SQLiteConnectionPool.cs" /> <Compile Include="SQLiteConnectionStringBuilder.cs" /> <Compile Include="SQLiteConvert.cs" /> <Compile Include="SQLiteDataAdapter.cs"> <SubType>Component</SubType> </Compile> <Compile Include="SQLiteDataReader.cs" /> <Compile Include="SQLiteException.cs" /> <Compile Include="SQLiteFactory.cs" /> <Compile Include="SQLiteFunction.cs" /> <Compile Include="SQLiteFunctionAttribute.cs" /> <Compile Include="SQLiteKeyReader.cs" /> <Compile Include="SQLiteMetaDataCollectionNames.cs" /> <Compile Include="SQLiteParameter.cs" /> |
︙ | ︙ | |||
114 115 116 117 118 119 120 | <ItemGroup> <None Include="DataTypes.xml" /> </ItemGroup> <ItemGroup> <None Include="MetaDataCollections.xml" /> </ItemGroup> <ItemGroup> | < < < < < > | < | > > | | < | < > | > > | 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | <ItemGroup> <None Include="DataTypes.xml" /> </ItemGroup> <ItemGroup> <None Include="MetaDataCollections.xml" /> </ItemGroup> <ItemGroup> <Folder Include="Properties\" /> </ItemGroup> <Import Condition="'$(TargetFrameworkVersion)' == 'v1.0'" Project="$(MSBuildBinPath)\Microsoft.CompactFramework.CSharp.v1.targets" /> <Import Condition="'$(TargetFrameworkVersion)' == 'v2.0'" Project="$(MSBuildBinPath)\Microsoft.CompactFramework.CSharp.targets" /> <ProjectExtensions> <VisualStudio> <FlavorProperties GUID="{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"> <HostingProcess disable="1" /> </FlavorProperties> </VisualStudio> </ProjectExtensions> <PropertyGroup> <PostBuildEvent>"$(SolutionDir)bin\tools\mergebin.exe" /p:"$(TargetPath)" >"$(SolutionDir)SQLite.Interop\merge.h" </PostBuildEvent> </PropertyGroup> <Import Condition="'$(TargetFrameworkVersion)' == 'v3.5'" Project="$(MSBuildBinPath)\Microsoft.CompactFramework.CSharp.targets" /> </Project> |
Changes to bin/CompactFramework/System.Data.SQLite.DLL.
cannot compute difference between binary files
Changes to bin/CompactFramework/System.Data.SQLite.lib.
cannot compute difference between binary files
Changes to bin/CompactFramework/testce.exe.
cannot compute difference between binary files
Changes to bin/System.Data.SQLite.XML.
︙ | ︙ | |||
477 478 479 480 481 482 483 | <param name="strCatalog">An optional catalog to restrict results on</param> <param name="strTable">An optional table to restrict results on</param> <param name="strKeyName">An optional foreign key name to restrict results on</param> <returns>A DataTable with the results of the query</returns> </member> <member name="P:System.Data.SQLite.SQLiteConnection.DbProviderFactory"> <summary> | | < | 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 | <param name="strCatalog">An optional catalog to restrict results on</param> <param name="strTable">An optional table to restrict results on</param> <param name="strKeyName">An optional foreign key name to restrict results on</param> <returns>A DataTable with the results of the query</returns> </member> <member name="P:System.Data.SQLite.SQLiteConnection.DbProviderFactory"> <summary> Returns a SQLiteProviderFactory object. </summary> </member> <member name="E:System.Data.SQLite.SQLiteConnection.StateChange"> <summary> This event is raised whenever the database is opened or closed. </summary> </member> |
︙ | ︙ |
Changes to bin/System.Data.SQLite.dll.
cannot compute difference between binary files
Changes to bin/System.Data.SQLite.lib.
cannot compute difference between binary files
Changes to bin/test.exe.
cannot compute difference between binary files
Changes to readme.htm.
1 2 3 4 5 6 7 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title></title> </head> <body> ADO.NET 2.0 SQLite Data Provider<br> | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title></title> </head> <body> ADO.NET 2.0 SQLite Data Provider<br> Version 1.0.50.0 June 27, 2008<br> Using SQLite 3.5.9<br> Written by Robert Simpson (<a href="mailto:robert@blackcastlesoft.com">robert@blackcastlesoft.com</a>)<br> Released to the public domain, use at your own risk!<br> Official provider website: <a href="http://sqlite.phxsoftware.com">http://sqlite.phxsoftware.com</a><br /> <br> The latest version can be downloaded <a href="http://sourceforge.net/projects/sqlite-dotnet2"> here</a> |
︙ | ︙ | |||
116 117 118 119 120 121 122 123 124 125 126 127 128 129 | <p> The core sqlite engine is compiled directly from the unmodified source code available at the sqlite.org website. Several additional pieces are compiled on top of it to extend its functionality, but the core engine's source is not changed.</p> <p></p> <p> <b>Version History</b></p> <p><b>1.0.49.0 - May 28, 2008</b></p> <ul> <li>Code merge with SQLite 3.5.9</li> <li>Fixed schema problems when querying the TEMP catalog.</li> <li>Changed BLOB datatype schema to return IsLong = False instead of True. This was preventing DbCommandBuilder from using GUID's and BLOB's as primary keys.</li> <li>Fix rollover issue with SQLite3.Reset() using TickCount.</li> | > > > > > > > > > > | 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | <p> The core sqlite engine is compiled directly from the unmodified source code available at the sqlite.org website. Several additional pieces are compiled on top of it to extend its functionality, but the core engine's source is not changed.</p> <p></p> <p> <b>Version History</b></p> <p><b>1.0.50.0 - June 27, 2008</b></p> <ul> <li>Fixed some lingering dispose issues and race conditions when some objects were finalized.</li> <li>Fixed the SQLiteConvert.Split() routine to be a little smarter when splitting strings, which solves the quoted data source filename problem.</li> <li>Enhanced the mergebin utility to work around the strong name validation bug on the Compact Framework. The old workaround kludged the DLL and caused WM6.1 to fail to load it. This new solution is permanent and no longer kludges the DLL.</li> </ul> <p><b>1.0.49.0 - May 28, 2008</b></p> <ul> <li>Code merge with SQLite 3.5.9</li> <li>Fixed schema problems when querying the TEMP catalog.</li> <li>Changed BLOB datatype schema to return IsLong = False instead of True. This was preventing DbCommandBuilder from using GUID's and BLOB's as primary keys.</li> <li>Fix rollover issue with SQLite3.Reset() using TickCount.</li> |
︙ | ︙ |