Index: SQLite.Interop/crypt.c
==================================================================
--- SQLite.Interop/crypt.c
+++ SQLite.Interop/crypt.c
@@ -40,16 +40,13 @@
// most platforms
static BOOL InitializeProvider()
{
if (g_hProvider) return TRUE;
- if (!CryptAcquireContext(&g_hProvider, NULL, MS_ENHANCED_PROV, PROV_RSA_FULL, 0))
+ if (!CryptAcquireContext(&g_hProvider, NULL, MS_ENHANCED_PROV, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
{
- if(!CryptAcquireContext(&g_hProvider, NULL, MS_ENHANCED_PROV, PROV_RSA_FULL, CRYPT_NEWKEYSET))
- {
- return FALSE;
- }
+ return FALSE;
}
return TRUE;
}
// Create or update a cryptographic context for a pager.
Index: SQLite.Interop/interop.c
==================================================================
--- SQLite.Interop/interop.c
+++ SQLite.Interop/interop.c
@@ -1,22 +1,24 @@
#include "src/sqliteint.h"
#include "src\os.h"
#include
#if NDEBUG
+
#if _WIN32_WCE
#include "merge.h"
-#else
-#include "merge_full.h"
-#endif // _WIN32_WCE
-#endif // NDEBUG
// 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.
DWORD _ph[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+#else
+#include "merge_full.h"
+#endif // _WIN32_WCE
+#endif // NDEBUG
+
#ifdef OS_WIN
#include
typedef void (WINAPI *SQLITEUSERFUNC)(void *, int, void **);
Index: SQLite.Interop/merge.h
==================================================================
--- SQLite.Interop/merge.h
+++ SQLite.Interop/merge.h
@@ -1,20 +1,19 @@
// This code was automatically generated from assembly
-// C:\src\SQLite.NET\System.Data.SQLite\bin\CompactFramework\System.Data.SQLite.dll
+// C:\Src\SQLite.NET\System.Data.SQLite\bin\CompactFramework\System.Data.SQLite.dll
#include
#pragma data_seg(".clr")
#pragma comment(linker, "/SECTION:.clr,ER")
- char __ph[118000] = {0}; // The number of bytes to reserve
+ char __ph[117996] = {0}; // The number of bytes to reserve
#pragma data_seg()
typedef BOOL (WINAPI *DLLMAIN)(HANDLE, DWORD, LPVOID);
typedef struct EXTRA_STUFF
{
DWORD dwNativeEntryPoint;
- DWORD dwReserved;
} EXTRA_STUFF, *LPEXTRA_STUFF;
__declspec(dllexport) BOOL WINAPI _CorDllMainStub(HANDLE hModule, DWORD dwReason, LPVOID pvReserved)
{
HANDLE hMod;
Index: SQLite.Interop/merge_full.h
==================================================================
--- SQLite.Interop/merge_full.h
+++ SQLite.Interop/merge_full.h
@@ -1,20 +1,19 @@
// This code was automatically generated from assembly
-// C:\src\SQLite.NET\System.Data.SQLite\bin\System.Data.SQLite.dll
+// C:\Src\SQLite.NET\System.Data.SQLite\bin\System.Data.SQLite.dll
#include
#pragma data_seg(".clr")
#pragma comment(linker, "/SECTION:.clr,ER")
- char __ph[127232] = {0}; // The number of bytes to reserve
+ char __ph[127248] = {0}; // The number of bytes to reserve
#pragma data_seg()
typedef BOOL (WINAPI *DLLMAIN)(HANDLE, DWORD, LPVOID);
typedef struct EXTRA_STUFF
{
DWORD dwNativeEntryPoint;
- DWORD dwReserved;
} EXTRA_STUFF, *LPEXTRA_STUFF;
__declspec(dllexport) BOOL WINAPI _CorDllMainStub(HANDLE hModule, DWORD dwReason, LPVOID pvReserved)
{
HANDLE hMod;
Index: System.Data.SQLite/SQLiteEnlistment.cs
==================================================================
--- System.Data.SQLite/SQLiteEnlistment.cs
+++ System.Data.SQLite/SQLiteEnlistment.cs
@@ -25,10 +25,19 @@
_scope = scope;
_disposeConnection = false;
_scope.EnlistVolatile(this, System.Transactions.EnlistmentOptions.None);
}
+
+ private void Cleanup(SQLiteConnection cnn)
+ {
+ if (_disposeConnection)
+ cnn.Dispose();
+
+ _transaction = null;
+ _scope = null;
+ }
#region IEnlistmentNotification Members
public void Commit(Enlistment enlistment)
{
@@ -43,15 +52,11 @@
enlistment.Done();
}
finally
{
- if (_disposeConnection)
- cnn.Dispose();
-
- _transaction = null;
- _scope = null;
+ Cleanup(cnn);
}
}
public void InDoubt(Enlistment enlistment)
{
@@ -82,17 +87,13 @@
_transaction.Rollback();
enlistment.Done();
}
finally
{
- if (_disposeConnection)
- cnn.Dispose();
-
- _transaction = null;
- _scope = null;
+ Cleanup(cnn);
}
}
#endregion
}
}
#endif // !PLATFORM_COMPACT_FRAMEWORK
Index: readme.htm
==================================================================
--- readme.htm
+++ readme.htm
@@ -3,12 +3,12 @@
ADO.NET 2.0 SQLite Data Provider
- Version 1.0.35.1 September 12, 2006
- Using SQLite 3.3.7
+ Version 1.0.36.0 September 12, 2006
+ Using SQLite 3.3.8
Written by Robert Simpson (robert@blackcastlesoft.com)
Released to the public domain, use at your own risk!
Official provider website: http://sqlite.phxsoftware.com
The latest version can be downloaded
@@ -118,10 +118,16 @@
just one minor modification is made to pager.c, that modification is made automatically by the fixsource.vbs file
when the VS2005 solution is compiled.
Version History
+ 1.0.36.0 - October 14, 2006
+
+ - Fixed another bug retrieving data types when UseUtf16Encoding is true. Side-effect of further merging the common code between the two base classes.
- Fixed a bug with System.Transactions whereby a connection closed during a transaction scope cannot be rolled back nor committed.
+ - Implemented a workaround for a Compact Framework issue regarding strong-named
+ assemblies containing a PE section with a raw size less than the virtual size.
+
1.0.35.1 - September 12, 2006
- Fixed the TYPES keyword to work when UseUTF16Encoding is true.
- Fix another bug revealed in 1.0.35.0 regarding infinite loops when the 2nd or subsequent statements of a semi-colon separated command cannot be parsed.
- Updated the help documentation.