Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | 1.0.31.0 |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | sourceforge |
Files: | files | file ages | folders |
SHA1: |
d2b95f8376dd737d7212dced6c34f54b |
User & Date: | rmsimpson 2006-07-16 17:41:41.000 |
Context
2006-07-16
| ||
17:43 | 1.0.31.0 - scalar function returns null instead of dbnull check-in: f96ea449db user: rmsimpson tags: sourceforge | |
17:41 | 1.0.31.0 check-in: d2b95f8376 user: rmsimpson tags: sourceforge | |
2006-07-13
| ||
06:04 | Re-fix view schema parsing check-in: 64915ce689 user: rmsimpson tags: sourceforge | |
Changes
Changes to SQLite.Designer/AssemblyInfo.cs.
︙ | ︙ | |||
28 29 30 31 32 33 34 | // 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: | | | | 28 29 30 31 32 33 34 35 36 37 38 39 | // 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.31.0")] [assembly: AssemblyFileVersion("1.0.31.0")] [assembly: AssemblyDelaySignAttribute(false)] [assembly: AssemblyKeyFileAttribute("..\\System.Data.SQLite\\System.Data.SQLite.snk")] [assembly: AssemblyKeyNameAttribute("")] |
Changes to SQLite.Designer/SQLite.Designer.csproj.
︙ | ︙ | |||
63 64 65 66 67 68 69 70 71 72 73 74 75 76 | <Reference Include="System.Data" /> <Reference Include="System.Design" /> <Reference Include="System.Drawing" /> <Reference Include="System.Windows.Forms" /> <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> <Compile Include="SQLiteAdapterDesigner.cs"> </Compile> <Compile Include="SQLiteCommandDesigner.cs"> </Compile> <Compile Include="SQLiteCommandHandler.cs" /> <Compile Include="SQLiteConnectionProperties.cs" /> <Compile Include="SQLiteConnectionStringEditor.cs" /> | > > > > > > | 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | <Reference Include="System.Data" /> <Reference Include="System.Design" /> <Reference Include="System.Drawing" /> <Reference Include="System.Windows.Forms" /> <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> <Compile Include="ChangePasswordDialog.cs"> <SubType>Form</SubType> </Compile> <Compile Include="ChangePasswordDialog.Designer.cs"> <DependentUpon>ChangePasswordDialog.cs</DependentUpon> </Compile> <Compile Include="SQLiteAdapterDesigner.cs"> </Compile> <Compile Include="SQLiteCommandDesigner.cs"> </Compile> <Compile Include="SQLiteCommandHandler.cs" /> <Compile Include="SQLiteConnectionProperties.cs" /> <Compile Include="SQLiteConnectionStringEditor.cs" /> |
︙ | ︙ | |||
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | <Generator>ResXFileCodeGenerator</Generator> <LastGenOutput>VSPackage.Designer.cs</LastGenOutput> <MergeWithCTO>true</MergeWithCTO> <SubType>Designer</SubType> </EmbeddedResource> </ItemGroup> <ItemGroup> <EmbeddedResource Include="SQLiteConnectionUIControl.resx"> <SubType>Designer</SubType> <DependentUpon>SQLiteConnectionUIControl.cs</DependentUpon> </EmbeddedResource> <EmbeddedResource Include="SQLiteDataObjectSupport.xml" /> </ItemGroup> <ItemGroup> <CtcFile Include="CtcComponents\PkgCmd.ctc"> <ResourceName>1000</ResourceName> </CtcFile> <None Include="CtcComponents\Guids.h" /> <None Include="CtcComponents\PkgCmdID.h" /> </ItemGroup> <ItemGroup> <Folder Include="Properties\" /> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> | > > > > | | 107 108 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 | <Generator>ResXFileCodeGenerator</Generator> <LastGenOutput>VSPackage.Designer.cs</LastGenOutput> <MergeWithCTO>true</MergeWithCTO> <SubType>Designer</SubType> </EmbeddedResource> </ItemGroup> <ItemGroup> <EmbeddedResource Include="ChangePasswordDialog.resx"> <SubType>Designer</SubType> <DependentUpon>ChangePasswordDialog.cs</DependentUpon> </EmbeddedResource> <EmbeddedResource Include="SQLiteConnectionUIControl.resx"> <SubType>Designer</SubType> <DependentUpon>SQLiteConnectionUIControl.cs</DependentUpon> </EmbeddedResource> <EmbeddedResource Include="SQLiteDataObjectSupport.xml" /> </ItemGroup> <ItemGroup> <CtcFile Include="CtcComponents\PkgCmd.ctc"> <ResourceName>1000</ResourceName> </CtcFile> <None Include="CtcComponents\Guids.h" /> <None Include="CtcComponents\PkgCmdID.h" /> </ItemGroup> <ItemGroup> <Folder Include="Properties\" /> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="C:\Program Files (x86)\Visual Studio 2005 SDK\2006.04\VisualStudioIntegration\Tools\Build\Microsoft.VsSDK.targets" /> <PropertyGroup> <PostBuildEvent> </PostBuildEvent> </PropertyGroup> </Project> |
Changes to SQLite.Designer/SQLiteCommandHandler.cs.
︙ | ︙ | |||
8 9 10 11 12 13 14 15 16 17 18 19 20 21 | namespace SQLite.Designer { using System; using Microsoft.VisualStudio.Data; using System.Windows.Forms.Design; using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio; enum cmdid { CreateTable = 0x3006, Alter = 0x3003, Delete = 17, Vacuum = 262, | > | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | namespace SQLite.Designer { using System; using Microsoft.VisualStudio.Data; using System.Windows.Forms.Design; using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio; using System.Data.Common; enum cmdid { CreateTable = 0x3006, Alter = 0x3003, Delete = 17, Vacuum = 262, |
︙ | ︙ | |||
137 138 139 140 141 142 143 | case cmdid.CreateTable: CreateTable(); break; case cmdid.Vacuum: Vacuum(); break; case cmdid.Rekey: | | | 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | case cmdid.CreateTable: CreateTable(); break; case cmdid.Vacuum: Vacuum(); break; case cmdid.Rekey: ChangePassword(itemId); break; default: returnValue = base.ExecuteCommand(itemId, command, executionOption, arguments); break; } } else if (command.GroupGuid == VSConstants.GUID_VSStandardCommandSet97) |
︙ | ︙ | |||
264 265 266 267 268 269 270 | } private void Vacuum() { DataViewHierarchyAccessor.Connection.Command.ExecuteWithoutResults("VACUUM", (int)System.Data.CommandType.Text, null, 0); } | | | | | > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | } private void Vacuum() { DataViewHierarchyAccessor.Connection.Command.ExecuteWithoutResults("VACUUM", (int)System.Data.CommandType.Text, null, 0); } private void ChangePassword(int itemId) { DataConnection dataConn = DataViewHierarchyAccessor.Connection; DbConnection cnn = DataViewHierarchyAccessor.Connection.ConnectionSupport.ProviderObject as DbConnection; if (cnn == null) return; SQLiteConnectionProperties props = new SQLiteConnectionProperties(cnn.ConnectionString); using (ChangePasswordDialog dlg = new ChangePasswordDialog(props)) { if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { if (String.IsNullOrEmpty(dlg.Password)) props.Remove("Password"); else props["Password"] = dlg.Password; System.Reflection.MethodInfo method = cnn.GetType().GetMethod("ChangePassword", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.InvokeMethod, null, new Type[] { typeof(string) }, null); if (method != null) { method.Invoke(cnn, new object[] { dlg.Password }); dataConn.Close(); dataConn.DisplayConnectionString = props.ToDisplayString(); dataConn.Open(); Refresh(itemId); } } } } private void Refresh(int itemId) { IVsUIHierarchy hier = DataViewHierarchyAccessor.Hierarchy as IVsUIHierarchy; Guid g = VSConstants.GUID_VSStandardCommandSet97; hier.ExecCommand((uint)itemId, ref g, (uint)0xbd, (uint)OleCommandExecutionOption.DoDefault, IntPtr.Zero, IntPtr.Zero); } } } |
Changes to SQLite.Designer/SQLiteConnectionProperties.cs.
︙ | ︙ | |||
34 35 36 37 38 39 40 41 42 43 44 45 46 47 | { get { return true; } } // Provides automatic locating and loading of the SQLite assembly if its not registered in the GAC. // However, if it's not registered in the GAC, then certain design-time elements will fail. // //private static System.Reflection.Assembly _sqlite = null; //static SQLiteConnectionProperties() //{ // AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); | > > > > > > > > | 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | { get { return true; } } public override bool EquivalentTo(DataConnectionProperties connectionProperties) { SQLiteConnectionProperties props = connectionProperties as SQLiteConnectionProperties; if (props == null) return false; return (String.Compare((string)this["Data Source"], (string)props["Data Source"], true) == 0); } // Provides automatic locating and loading of the SQLite assembly if its not registered in the GAC. // However, if it's not registered in the GAC, then certain design-time elements will fail. // //private static System.Reflection.Assembly _sqlite = null; //static SQLiteConnectionProperties() //{ // AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); |
︙ | ︙ |
Changes to SQLite.Designer/SQLiteConnectionUIControl.cs.
︙ | ︙ | |||
60 61 62 63 64 65 66 | passwordTextBox.Text = ConnectionProperties["Password"] as string; } #endregion private void passwordTextBox_Leave(object sender, EventArgs e) { | > > > | > > > | > > > | > > > | | 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 | passwordTextBox.Text = ConnectionProperties["Password"] as string; } #endregion private void passwordTextBox_Leave(object sender, EventArgs e) { if (String.IsNullOrEmpty(passwordTextBox.Text)) ConnectionProperties.Remove("Password"); else ConnectionProperties["Password"] = passwordTextBox.Text; } private void encoding_Changed(object sender, EventArgs e) { if (utf8RadioButton.Checked == true) ConnectionProperties.Remove("UseUTF16Encoding"); else ConnectionProperties["UseUTF16Encoding"] = utf16RadioButton.Checked; } private void datetime_Changed(object sender, EventArgs e) { if (iso8601RadioButton.Checked == true) ConnectionProperties.Remove("DateTimeFormat"); else ConnectionProperties["DateTimeFormat"] = "Ticks"; } private void sync_Changed(object sender, EventArgs e) { string sync = "Normal"; if (fullRadioButton.Checked == true) sync = "Full"; else if (offRadioButton.Checked == true) sync = "Off"; if (sync == "Normal") ConnectionProperties.Remove("Synchronous"); else ConnectionProperties["Synchronous"] = sync; } private void pageSizeTextBox_Leave(object sender, EventArgs e) { int n = Convert.ToInt32(pageSizeTextBox.Text); ConnectionProperties["Page Size"] = n; } |
︙ | ︙ |
Changes to SQLite.Designer/SQLiteDataObjectSupport.xml.
︙ | ︙ | |||
106 107 108 109 110 111 112 113 114 115 116 117 118 119 | <Property name="Name" type="System.String" itemName="column_name"/> <Property name="Ordinal" type="System.Int32" itemName="ordinal_position"> <Concepts> <Concept name="Ordinal"> </Concept> </Concepts> </Property> <Property name="SystemType" type="System.String" itemName="data_type"> <Concepts> <Concept name="UserDataType"/> <Concept name="NativeDataType"/> <Concept name="ProviderDataType"> <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/> </Concept> | > | 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | <Property name="Name" type="System.String" itemName="column_name"/> <Property name="Ordinal" type="System.Int32" itemName="ordinal_position"> <Concepts> <Concept name="Ordinal"> </Concept> </Concepts> </Property> <Property name="DataType" type="System.String" itemName="data_type" /> <Property name="SystemType" type="System.String" itemName="data_type"> <Concepts> <Concept name="UserDataType"/> <Concept name="NativeDataType"/> <Concept name="ProviderDataType"> <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/> </Concept> |
︙ | ︙ |
Changes to SQLite.Designer/SQLiteDataViewSupport.xml.
︙ | ︙ | |||
198 199 200 201 202 203 204 | </Part> <Part name="View"> <Category resource="Category_Location"/> </Part> </Identifier> <Properties> <Property name="Ordinal"/> | | | | 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 | </Part> <Part name="View"> <Category resource="Category_Location"/> </Part> </Identifier> <Properties> <Property name="Ordinal"/> <Property name="DataType"> <DisplayName>Data Type</DisplayName> </Property> <Property name="Nullable"> <DisplayName>Allow Nulls</DisplayName> </Property> <Property name="Default"> <DisplayName>Default Value</DisplayName> </Property> |
︙ | ︙ | |||
258 259 260 261 262 263 264 | <Part name="Table"> <Category resource="Category_Location"/> </Part> </Identifier> <Properties> <Property name="Ordinal"/> <Property name="Length"/> | | | | 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 | <Part name="Table"> <Category resource="Category_Location"/> </Part> </Identifier> <Properties> <Property name="Ordinal"/> <Property name="Length"/> <Property name="DataType"> <DisplayName>Data Type</DisplayName> </Property> <Property name="Nullable"> <DisplayName>Allow Nulls</DisplayName> </Property> <Property name="Default"> <DisplayName>Default Value</DisplayName> </Property> |
︙ | ︙ |
Changes to SQLite.Designer/SQLiteProviderObjectFactory.cs.
︙ | ︙ | |||
24 25 26 27 28 29 30 | } public override object CreateObject(Type objType) { if (objType == typeof(DataConnectionSupport)) return new SQLiteDataConnectionSupport(); | | | | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | } public override object CreateObject(Type objType) { if (objType == typeof(DataConnectionSupport)) return new SQLiteDataConnectionSupport(); if (objType == typeof(IDataConnectionProperties) || objType == typeof(DataConnectionProperties)) return new SQLiteConnectionProperties(); if (objType == typeof(IDataConnectionUIControl) || objType == typeof(DataConnectionUIControl)) return new SQLiteConnectionUIControl(); return base.CreateObject(objType); } } } |
Changes to SQLite.Designer/VSPackage.Designer.cs.
︙ | ︙ | |||
64 65 66 67 68 69 70 71 72 | /// Looks up a localized string similar to MHM2ZQETQKDTJEPTC1MTQCZ1R1KQEMAPZHETDZPZI9RPJ0E0DHAHKCHZPKQ8AQZICADHKIZ1JAQED8IDEHZPZKZEIKAQERHPRCQMAMRKDEZZQRDRDHJEZIKECZPDIIKC. /// </summary> internal static string _400 { get { return ResourceManager.GetString("400", resourceCulture); } } } } | > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /// Looks up a localized string similar to MHM2ZQETQKDTJEPTC1MTQCZ1R1KQEMAPZHETDZPZI9RPJ0E0DHAHKCHZPKQ8AQZICADHKIZ1JAQED8IDEHZPZKZEIKAQERHPRCQMAMRKDEZZQRDRDHJEZIKECZPDIIKC. /// </summary> internal static string _400 { get { return ResourceManager.GetString("400", resourceCulture); } } /// <summary> /// Looks up a localized string similar to The database and its metadata will be un-encrypted. No password will be required to open the database and view its contents.. /// </summary> internal static string Decrypt { get { return ResourceManager.GetString("Decrypt", resourceCulture); } } /// <summary> /// Looks up a localized string similar to The database and its metadata will be encrypted using the supplied password as a hash.. /// </summary> internal static string Encrypt { get { return ResourceManager.GetString("Encrypt", resourceCulture); } } /// <summary> /// Looks up a localized string similar to The database and its metadata will be re-encrypted using the supplied password as a hash.. /// </summary> internal static string ReEncrypt { get { return ResourceManager.GetString("ReEncrypt", resourceCulture); } } } } |
Changes to SQLite.Designer/VSPackage.resx.
︙ | ︙ | |||
116 117 118 119 120 121 122 123 | </resheader> <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <data name="400" xml:space="preserve"> <value>MHM2ZQETQKDTJEPTC1MTQCZ1R1KQEMAPZHETDZPZI9RPJ0E0DHAHKCHZPKQ8AQZICADHKIZ1JAQED8IDEHZPZKZEIKAQERHPRCQMAMRKDEZZQRDRDHJEZIKECZPDIIKC</value> </data> </root> | > > > > > > > > > | 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | </resheader> <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <data name="400" xml:space="preserve"> <value>MHM2ZQETQKDTJEPTC1MTQCZ1R1KQEMAPZHETDZPZI9RPJ0E0DHAHKCHZPKQ8AQZICADHKIZ1JAQED8IDEHZPZKZEIKAQERHPRCQMAMRKDEZZQRDRDHJEZIKECZPDIIKC</value> </data> <data name="Decrypt" xml:space="preserve"> <value>The database and its metadata will be un-encrypted. No password will be required to open the database and view its contents.</value> </data> <data name="Encrypt" xml:space="preserve"> <value>The database and its metadata will be encrypted using the supplied password as a hash.</value> </data> <data name="ReEncrypt" xml:space="preserve"> <value>The database and its metadata will be re-encrypted using the supplied password as a hash.</value> </data> </root> |
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,31,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", "SQLite.NET Interop Library" VALUE "FileVersion", "1.0.31.0" VALUE "InternalName", "SQLite.Interop.DLL" VALUE "LegalCopyright", "Released to the public domain" VALUE "OriginalFilename", "SQLite3.DLL 3.3.6" VALUE "ProductName", "SQLite.NET" VALUE "ProductVersion", "1.0" END END |
︙ | ︙ |
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(".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(".clr") #pragma comment(linker, "/SECTION:.clr,ER") char __ph[116028] = {0}; // The number of bytes to reserve #pragma data_seg() 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(".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(".clr") #pragma comment(linker, "/SECTION:.clr,ER") char __ph[124824] = {0}; // The number of bytes to reserve #pragma data_seg() typedef BOOL (WINAPI *DLLMAIN)(HANDLE, DWORD, LPVOID); typedef struct EXTRA_STUFF { DWORD dwNativeEntryPoint; } EXTRA_STUFF, *LPEXTRA_STUFF; |
︙ | ︙ |
Changes to System.Data.SQLite/AssemblyInfo.cs.
︙ | ︙ | |||
41 42 43 44 45 46 47 | // 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: | | | | 41 42 43 44 45 46 47 48 49 50 51 | // 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.31.0")] #if !PLATFORM_COMPACTFRAMEWORK [assembly: AssemblyFileVersion("1.0.31.0")] #endif |
Changes to System.Data.SQLite/SQLiteDataAdapter.cs.
︙ | ︙ | |||
13 14 15 16 17 18 19 | using System.ComponentModel; /// <summary> /// SQLite implementation of DbDataAdapter. /// </summary> #if !PLATFORM_COMPACTFRAMEWORK [DefaultEvent("RowUpdated")] | | | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | using System.ComponentModel; /// <summary> /// SQLite implementation of DbDataAdapter. /// </summary> #if !PLATFORM_COMPACTFRAMEWORK [DefaultEvent("RowUpdated")] [ToolboxItem("SQLite.Designer.SQLiteDataAdapterToolboxItem, SQLite.Designer, Version=1.0.31.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139")] [Designer("Microsoft.VSDesigner.Data.VS.SqlDataAdapterDesigner, Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] #endif public sealed class SQLiteDataAdapter : DbDataAdapter { private static object _updatingEventPH = new object(); private static object _updatedEventPH = new object(); |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteDataReader.cs.
︙ | ︙ | |||
554 555 556 557 558 559 560 | if (wantDefaultValue) { // Determine the default value for the column, which sucks because we have to query the schema for each column using (SQLiteCommand cmdTable = new SQLiteCommand(String.Format(CultureInfo.InvariantCulture, "PRAGMA [{0}].TABLE_INFO([{1}])", row[SchemaTableOptionalColumn.BaseCatalogName], row[SchemaTableColumn.BaseTableName] ), _command.Connection)) | < | | | | | | | | | | < | 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 | if (wantDefaultValue) { // Determine the default value for the column, which sucks because we have to query the schema for each column using (SQLiteCommand cmdTable = new SQLiteCommand(String.Format(CultureInfo.InvariantCulture, "PRAGMA [{0}].TABLE_INFO([{1}])", row[SchemaTableOptionalColumn.BaseCatalogName], row[SchemaTableColumn.BaseTableName] ), _command.Connection)) using (DbDataReader rdTable = cmdTable.ExecuteReader()) { // Find the matching column while (rdTable.Read()) { if (String.Compare((string)row[SchemaTableColumn.BaseColumnName], rdTable.GetString(1), true, CultureInfo.InvariantCulture) == 0) { if (rdTable.IsDBNull(4) == false) row[SchemaTableOptionalColumn.DefaultValue] = rdTable[4]; break; } } } } // Determine IsUnique properly, which is a pain in the butt! if (wantUniqueInfo) |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteException.cs.
︙ | ︙ | |||
11 12 13 14 15 16 17 18 19 20 21 22 23 24 | using System.Collections.Generic; using System.Text; using System.Data.Common; #if !PLATFORM_COMPACTFRAMEWORK using System.Runtime.Serialization; #endif /// <summary> /// SQLite error codes /// </summary> public enum SQLiteErrorCode { /// <summary> | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 101 102 103 104 105 106 107 108 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 | using System.Collections.Generic; using System.Text; using System.Data.Common; #if !PLATFORM_COMPACTFRAMEWORK using System.Runtime.Serialization; #endif /// <summary> /// SQLite exception class. /// </summary> #if !PLATFORM_COMPACTFRAMEWORK [Serializable] public sealed class SQLiteException : DbException #else public sealed class SQLiteException : Exception #endif { private SQLiteErrorCode _errorCode; #if !PLATFORM_COMPACTFRAMEWORK private SQLiteException(SerializationInfo info, StreamingContext context) : base(info, context) { } #endif /// <summary> /// Public constructor for generating a SQLite error given the base error code /// </summary> /// <param name="errorCode">The SQLite error code to report</param> /// <param name="extendedInformation">Extra text to go along with the error message text</param> public SQLiteException(int errorCode, string extendedInformation) : base(GetStockErrorMessage(errorCode, extendedInformation)) { _errorCode = (SQLiteErrorCode)errorCode; } /// <summary> /// Various public constructors that just pass along to the base Exception /// </summary> /// <param name="message">Passed verbatim to Exception</param> public SQLiteException(string message) : base(message) { } /// <summary> /// Various public constructors that just pass along to the base Exception /// </summary> public SQLiteException() { } /// <summary> /// Various public constructors that just pass along to the base Exception /// <param name="message">Passed to Exception</param> /// <param name="innerException">Passed to Exception</param> /// </summary> public SQLiteException(string message, Exception innerException) : base(message, innerException) { } /// <summary> /// Retrieves the underlying SQLite error code for this exception /// </summary> #if !PLATFORM_COMPACTFRAMEWORK public new SQLiteErrorCode ErrorCode #else public SQLiteErrorCode ErrorCode #endif { get { return _errorCode; } } /// <summary> /// Initializes the exception class with the SQLite error code. /// </summary> /// <param name="errorCode">The SQLite error code</param> /// <param name="errorMessage">A detailed error message</param> /// <returns>An error message string</returns> private static string GetStockErrorMessage(int errorCode, string errorMessage) { if (errorMessage == null) errorMessage = ""; if (errorMessage.Length > 0) errorMessage = "\r\n" + errorMessage; if (errorCode < 0 || errorCode >= _errorMessages.Length) errorCode = 1; return _errorMessages[errorCode] + errorMessage; } private static string[] _errorMessages = { "SQLite OK", "SQLite error", "An internal logic error in SQLite", "Access permission denied", "Callback routine requested an abort", "The database file is locked", "A table in the database is locked", "malloc() failed", "Attempt to write a read-only database", "Operation terminated by sqlite3_interrupt()", "Some kind of disk I/O error occurred", "The database disk image is malformed", "Table or record not found", "Insertion failed because the database is full", "Unable to open the database file", "Database lock protocol error", "Database is empty", "The database schema changed", "Too much data for one row of a table", "Abort due to constraint violation", "Data type mismatch", "Library used incorrectly", "Uses OS features not supported on host", "Authorization denied", "Auxiliary database format error", "2nd parameter to sqlite3_bind() out of range", "File opened that is not a database file", }; } /// <summary> /// SQLite error codes /// </summary> public enum SQLiteErrorCode { /// <summary> |
︙ | ︙ | |||
134 135 136 137 138 139 140 | /// </summary> Row = 100, /// <summary> /// sqlite3_step() has finished executing /// </summary> Done = 101, } | | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 252 253 254 255 256 257 258 259 | /// </summary> Row = 100, /// <summary> /// sqlite3_step() has finished executing /// </summary> Done = 101, } } |
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.31.0 July 16, 2006<br> Using SQLite 3.3.6<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> <br> The latest version can be downloaded <a href="http://sourceforge.net/projects/sqlite-dotnet2"> here</a> <br> |
︙ | ︙ | |||
43 44 45 46 47 48 49 | <LI> DbProviderFactory support. <LI> Full support for ATTACH'ed databases. Exposed as <I>Catalogs</I> in the schema. When cloning a connection, all attached databases are automatically re-attached to the new connection. <LI> | | | < > | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | <LI> DbProviderFactory support. <LI> Full support for ATTACH'ed databases. Exposed as <I>Catalogs</I> in the schema. When cloning a connection, all attached databases are automatically re-attached to the new connection. <LI> DbConnection.GetSchema(...) support includes <I>ReservedWords, MetaDataCollections</I>, <I>DataSourceInformation</I>, <I>DataTypes, Columns</I>, <I>Tables</I>, <I>Views, ViewColumns, </I><I>Catalogs, </I><I>Indexes, IndexColumns </I>and <EM>ForeignKeys</EM> . <LI> Enhanced DbDataReader.GetSchemaTable() functionality returns catalog, namespace and detailed schema information even for complex queries. <LI> Named and unnamed parameters. <LI> Full UTF-8 and UTF-16 support, each with optimized pipelines into the native |
︙ | ︙ | |||
115 116 117 118 119 120 121 122 123 124 125 126 127 128 | The SQLite3 source code is compiled directly from the SQLite.org release sources. All builds of sqlite after 3.2.8 have included support for Windows CE. Additionally, 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.</p> <p></p> <p> <b>Version History</b></p> <p><b>1.0.30.1 - July 2, 2006</b></p> <ul> <li>Code merge with SQLite 3.3.6</li> <li>Added support for the |DataDirectory| keyword in the Data Source filename string. </li> <li>Added hook notification support to SQLiteConnection. Specifically, there are three new events on the SQLiteConnection object which are raised when an update/insert/delete | > > > > > > > > > > | 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | The SQLite3 source code is compiled directly from the SQLite.org release sources. All builds of sqlite after 3.2.8 have included support for Windows CE. Additionally, 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.</p> <p></p> <p> <b>Version History</b></p> <p><b>1.0.31.0 - July 16, 2006</b></p> <ul> <li>Re-applied the view parsing bugfix in 1.0.29.0 that was accidentally reverted out of the 30 build.</li><li>Fixed SQLiteCommand.ExecuteScalar() to return null instead of DbNull.Value when no rows were returned.</li> <li>Design-time installer now installs the package-based designer on full Visual Studio versions. Express editions continue to use the packageless designer.</li> <li>In Visual Studio (not Express), you can now right-click a SQLite connection in the Server Explorer and vacuum the database and change the encryption password.</li> </ul> <p><b>1.0.30.1 - July 2, 2006</b></p> <ul> <li>Code merge with SQLite 3.3.6</li> <li>Added support for the |DataDirectory| keyword in the Data Source filename string. </li> <li>Added hook notification support to SQLiteConnection. Specifically, there are three new events on the SQLiteConnection object which are raised when an update/insert/delete |
︙ | ︙ |