System.Data.SQLite
Check-in [6d3877ca4d]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:1.0.21 RTM
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | sourceforge
Files: files | file ages | folders
SHA1: 6d3877ca4db5ad27f8ad7dcad5acf914ede6aeaa
User & Date: rmsimpson 2005-11-03 20:25:58
Context
2005-11-03
20:30
no message check-in: 6748d3069f user: rmsimpson tags: sourceforge
20:25
1.0.21 RTM check-in: 6d3877ca4d user: rmsimpson tags: sourceforge
2005-10-19
17:34
1.0.20 check-in: e9a77782dc user: rmsimpson tags: sourceforge
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to SQLite.NET.sln.

8
9
10
11
12
13
14
15
16
17
18
19
20
21



22
23
24
25
26
27
28
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test", "test\test.csproj", "{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}"
	ProjectSection(ProjectDependencies) = postProject
		{10B51CE8-A838-44DE-BD82-B658F0296F80} = {10B51CE8-A838-44DE-BD82-B658F0296F80}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{39A3B743-1EBD-4CC0-8E37-ACE3DD38B1C0}"
	ProjectSection(SolutionItems) = postProject
		readme.htm = readme.htm
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SQLite.Interop", "SQLite.Interop\SQLite.Interop.vcproj", "{10B51CE8-A838-44DE-BD82-B658F0296F80}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "testce", "testce\testce.csproj", "{B86CE504-C4E4-496F-A0F0-E613BCFD3DF7}"



EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SQLite.Designer", "SQLite.Designer\SQLite.Designer.csproj", "{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Compact Framework = Debug|Compact Framework
		Debug|Itanium = Debug|Itanium







|






>
>
>







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test", "test\test.csproj", "{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}"
	ProjectSection(ProjectDependencies) = postProject
		{10B51CE8-A838-44DE-BD82-B658F0296F80} = {10B51CE8-A838-44DE-BD82-B658F0296F80}
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{39A3B743-1EBD-4CC0-8E37-ACE3DD38B1C0}"
	ProjectSection(SolutionItems) = preProject
		readme.htm = readme.htm
	EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SQLite.Interop", "SQLite.Interop\SQLite.Interop.vcproj", "{10B51CE8-A838-44DE-BD82-B658F0296F80}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "testce", "testce\testce.csproj", "{B86CE504-C4E4-496F-A0F0-E613BCFD3DF7}"
	ProjectSection(ProjectDependencies) = postProject
		{AC139951-261A-4463-B6FA-AEBC25283A66} = {AC139951-261A-4463-B6FA-AEBC25283A66}
	EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SQLite.Designer", "SQLite.Designer\SQLite.Designer.csproj", "{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Compact Framework = Debug|Compact Framework
		Debug|Itanium = Debug|Itanium

Changes to bin/CompactFramework/SQLite.Interop.dll.

cannot compute difference between binary files

Changes to bin/CompactFramework/System.Data.SQLite.dll.

cannot compute difference between binary files

Changes to bin/CompactFramework/testce.exe.

cannot compute difference between binary files

Changes to bin/Designer/Install.cmd.

20
21
22
23
24
25
26

27
28
29

30
31
32
33
34
35
36
GOTO ParseCmdLine

:Main

ECHO Installing DDEX Data Provider for SQLite
ECHO   VS Registry Root: %REGROOT%
ECHO   XML File Path:    %XMLPATH%


IF NOT EXIST "%XMLPATH%\SQLiteDataViewSupport.xml" ECHO The data view support XML file was not found.& GOTO End
IF NOT EXIST "%XMLPATH%\SQLiteDataObjectSupport.xml" ECHO The data object support XML file was not found.& GOTO End


CScript "%MYDIR%\Install.vbs" //NoLogo "%REGROOT%" "%XMLPATH%"

GOTO End

:Help








>



>







20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
GOTO ParseCmdLine

:Main

ECHO Installing DDEX Data Provider for SQLite
ECHO   VS Registry Root: %REGROOT%
ECHO   XML File Path:    %XMLPATH%
ECHO   SQLite.DLL Path:  %MYDIR%..\

IF NOT EXIST "%XMLPATH%\SQLiteDataViewSupport.xml" ECHO The data view support XML file was not found.& GOTO End
IF NOT EXIST "%XMLPATH%\SQLiteDataObjectSupport.xml" ECHO The data object support XML file was not found.& GOTO End
IF NOT EXIST "..\System.Data.SQLite.DLL" ECHO The ..\System.Data.SQLite.DLL could not be found.& GOTO End

CScript "%MYDIR%\Install.vbs" //NoLogo "%REGROOT%" "%XMLPATH%"

GOTO End

:Help

Changes to bin/Designer/SQLite.Designer.dll.

cannot compute difference between binary files

Changes to bin/System.Data.SQLite.dll.

cannot compute difference between binary files

Changes to bin/itanium/System.Data.SQLite.DLL.

cannot compute difference between binary files

Changes to bin/test.exe.

cannot compute difference between binary files

Changes to bin/test.exe.config.

1
2
3

4
5
6
7
<configuration>
  <system.data>
    <DbProviderFactories>

      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
    </DbProviderFactories>
  </system.data>
</configuration>



>




1
2
3
4
5
6
7
8
<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" />
    </DbProviderFactories>
  </system.data>
</configuration>

Changes to bin/x64/System.Data.SQLite.DLL.

cannot compute difference between binary files

Changes to readme.htm.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
..
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
...
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
<!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.20 - Oct 19, 2005<br>
    Interop using SQLite 3.2.7<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>
    This provider was written and tested using the Visual Studio 2005 Team System 
    Release Candidate<br>
    VS2005 Beta 2 users should continue using the 1.0.18.1 release.<br>
    <br>
    The latest version can be downloaded <a href="http://sourceforge.net/projects/sqlite-dotnet2">
      here</a>
    <br>
    <br>
    <b></b>
    <h2>
      <b>Features:</b><br>
................................................................................
        your commercial project, please read the previous sentence again -- only slower 
        and sound out the words this time.
      </LI>
    </UL>
    <strong></strong>
    <h2>
      <strong>Design-Time Support (new as of 1.0.14)</strong></h2>
    <P>Until an installer is created, the steps for registering the provider for 
      design-time support are:</P>
    <OL>
      <LI>
        Register the <STRONG>System.Data.SQLite.DLL</STRONG> in the Global Assembly 
        Cache either by using the .Net 2.0 version of GACUTIL, or through <STRONG>Administrative 
          Tools -&gt; Microsoft .NET Framework 2.0 Configuration</STRONG>.
      <LI>
        Through a command-prompt or Windows Explorer, navigate to the <STRONG>SQLite.NET\bin\Designer</STRONG>
        folder and execute the <STRONG>INSTALL.CMD</STRONG>
      file.
      <LI>
        <STRONG>NOTE:&nbsp; Enabling Design-Time support for SQLite causes the SQLite 
          Provider to be registered in your machine.config.</STRONG>&nbsp;&nbsp; If you 
        have already added the XML shown below to your <STRONG>app.config</STRONG> in 
        your applications, <STRONG>you need to remove it.</STRONG>&nbsp; If you 
      don't, it will cause a unique constraint violation when you run your program.
      <LI>
        Delete the <STRONG>test.exe.config</STRONG> file from the <STRONG>SQLite.NET\bin</STRONG>
        folder -- it is no longer necessary.</LI></OL>



    <H2><STRONG>DbFactory Support (Non-Compact Framework)</STRONG></H2>
    In order to use the SQLiteFactory and have the SQLite data provider enumerated 
    in the DbProviderFactories methods, you must add the following segment into 
    either your application's app.config or the system's machine.config located in 
    the %SystemRoot%\Microsoft.Net\Framework\v2.xxxx\Config folder:<br>
    <br>
    <pre>&lt;configuration&gt;
  &lt;system.data&gt;
    &lt;DbProviderFactories&gt;

      &lt;add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"<BR > type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.19.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /&gt;
    &lt;/DbProviderFactories&gt;
  &lt;/system.data&gt;
&lt;/configuration&gt;
</pre>
    <P>If you choose to install the Visual Studio Design-Time support for SQLite, you 
      must not add the above XML to your app.config.&nbsp; The installer will have 
      already added it to your machine's machine.config file.</P>
    <h3>
      Compiling for the Compact Framework</h3>
    <p>
      Just change the target platform from Win32 to Compact Framework and 
      recompile.&nbsp; <STRONG>The Compact Framework has no support for enumerating 
        attributes in an assembly, therefore all user-defined collating sequences and 
        functions must be explicitly registered.</STRONG>&nbsp; See the <STRONG>testce</STRONG>
................................................................................
      folder must be distributed with your application(s).&nbsp; They contain the 
      managed wrapper and the native SQLite3 codebase respectively.&nbsp; The Compact 
      Framework does not currently support managed C++, thus the reason for two 
      files.</P>
    <H2><B>Development Notes Regarding the SQLite 3 Source Code</B></H2>
    <p></p>
    <p>
      Steps for merging the sqlite3 core codebase:</p>
    <p>
      <strong>This section is obsolete, but remains for historical purposes.&nbsp; The 
        1.0.11+ versions of the ADO.NET 2.0 SQLite provider make significant changes to 
        the core sqlite3 codebase in order to support C++ /clr compiling.&nbsp; 
        Specifically, all the implicit casts throughout the core codebase must be 
        modified.&nbsp; There are several hundred of these casts and they must be fixed 
        up every time a new sqlite version is released.</strong></p>
    <ol>
      <li>
        <FONT color="silver">Download the latest sqlite3 source from </FONT><a href="http://www.sqlite.org/download.html">
          <FONT color="silver">http://www.sqlite.org/download.html</FONT></a><FONT color="silver">
        </FONT>

      <li>
        <FONT color="silver">Extract the source code to the <b>SQLite.Interop\src</b> directory 
          of this project </FONT>
      <li>
        <FONT color="silver">Open the <b>src\select.c</b> file. </FONT>
      <li>
        <FONT color="silver">Add <b>#include "../interop.h" </b>to the top of the file 
          where the other include's are. </FONT>
      <li>
        <FONT color="silver">Scroll down the <b>select.c</b> file to around line <b>748</b>.&nbsp; 
          Change the name of the function <b>static void generateColumnNames </b>to <b>static 
            void _generateColumnNames</b> (<i>note the underscore in front of the name</i>).
        </FONT>

      <li>
        <FONT color="silver">Compile it. </FONT>
      </li>
    </ol>
    <b></b>
    <h2>
      <b>Version History</b></h2>









    <p><b>1.0.20 - October 19, 2005</b></p>
    <UL>
      <li>
      Fixed a shortcut in SQLiteBase.GetValue which was insufficient for international
      environments.&nbsp; The shortcut was removed and the "proper" procedure put in.</UL>

    <p><b>1.0.19 - October 5, 2005</b></p>
    <UL>
      <li>
      Code merge with SQLite 3.2.7
      <LI>
      Fixed bugs in the CE port code (os_wince.c)&nbsp;which were brought to 
      light&nbsp;by&nbsp;recent changes in the SQLite engine.







|




<
<
<
<







 







<
<
<
<
<
<
<
<
|

<
<
<
<
<
<
<
<
<
<
>
>
>


|
<
<




>
|




|
|
<







 







|
|
<
<
<
<
<
<


|
|
<
>

|
|

|

|
|

|


<
>

|





>
>
>
>
>
>
>
>
>



|
|
>







1
2
3
4
5
6
7
8
9
10
11
12




13
14
15
16
17
18
19
..
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
...
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
<!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.21- Nov 4, 2005<br>
    Interop using SQLite 3.2.7<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>
    <br>
    <b></b>
    <h2>
      <b>Features:</b><br>
................................................................................
        your commercial project, please read the previous sentence again -- only slower 
        and sound out the words this time.
      </LI>
    </UL>
    <strong></strong>
    <h2>
      <strong>Design-Time Support (new as of 1.0.14)</strong></h2>








    <P>Until an installer is created, through a command-prompt or Windows Explorer, navigate to the <STRONG>SQLite.NET\bin\Designer</STRONG>
        folder and execute the <STRONG>INSTALL.CMD</STRONG>










      file.&nbsp; The script and
      batch file will register the System.Data.SQLite DLL in the Global Assembly Cache,
      and modify the machine.config file to add SQLite to the list of default data providers.</P>
    <H2><STRONG>DbFactory Support (Non-Compact Framework)</STRONG></H2>
    In order to use the SQLiteFactory and have the SQLite data provider enumerated 
    in the DbProviderFactories methods, you must add the following segment into your application's app.config file:<br>


    <br>
    <pre>&lt;configuration&gt;
  &lt;system.data&gt;
    &lt;DbProviderFactories&gt;
      &lt;remove invariant="System.Data.SQLite"/&gt;
      &lt;add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"<BR > type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /&gt;
    &lt;/DbProviderFactories&gt;
  &lt;/system.data&gt;
&lt;/configuration&gt;
</pre>
    <p>See the help documentation for further details on implementing both version-specific (GAC enabled) and version independent DBProviderFactories support.
      </p>

    <h3>
      Compiling for the Compact Framework</h3>
    <p>
      Just change the target platform from Win32 to Compact Framework and 
      recompile.&nbsp; <STRONG>The Compact Framework has no support for enumerating 
        attributes in an assembly, therefore all user-defined collating sequences and 
        functions must be explicitly registered.</STRONG>&nbsp; See the <STRONG>testce</STRONG>
................................................................................
      folder must be distributed with your application(s).&nbsp; They contain the 
      managed wrapper and the native SQLite3 codebase respectively.&nbsp; The Compact 
      Framework does not currently support managed C++, thus the reason for two 
      files.</P>
    <H2><B>Development Notes Regarding the SQLite 3 Source Code</B></H2>
    <p></p>
    <p>
      Steps for merging the sqlite3 core codebase (without Compact Framework support --
      that's another story):</p>






    <ol>
      <li>
        Download the latest sqlite3 source from <a href="http://www.sqlite.org/download.html">
          http://www.sqlite.org/download.html</a>

        
      <li>
        Extract the source code to the <b>SQLite.Interop\src</b> directory 
          of this project 
      <li>
        Open the <b>src\select.c</b> file. 
      <li>
        Add <b>#include "../interop.h" </b>to the top of the file 
          where the other include's are. 
      <li>
        Scroll down the <b>select.c</b> file to around line <b>822</b>.&nbsp; 
          Change the name of the function <b>static void generateColumnNames </b>to <b>static 
            void _generateColumnNames</b> (<i>note the underscore in front of the name</i>).

        
      <li>
        Compile it. 
      </li>
    </ol>
    <b></b>
    <h2>
      <b>Version History</b></h2>
    <p><b>1.0.21 - November 4, 2005</b></p>
    <UL>
      <li>Fixed a designer bug when creating typed datasets with parameterized queries.</li>
      <li>The above fix then exposed another bug in the datareader's ability to query schema
        information on parameterized commands, which was also fixed.</li>
      <li>Compiled against the RTM version of VS2005.</li>
      <li>Rewrote the design-time install script to use the XML DOM objects when writing
        to the machine.config and to automatically register the DLL in the GAC.</li><li>Made changes to the app.config descriptions and help file to improve version-independent
        factory support.</li></UL>
    <p><b>1.0.20 - October 19, 2005</b></p>
    <UL>
      <li>
        Fixed a shortcut in SQLiteBase.GetValue which was insufficient for 
        international environments.&nbsp; The shortcut was removed and the "proper" 
        procedure put in.</li></UL>
    <p><b>1.0.19 - October 5, 2005</b></p>
    <UL>
      <li>
      Code merge with SQLite 3.2.7
      <LI>
      Fixed bugs in the CE port code (os_wince.c)&nbsp;which were brought to 
      light&nbsp;by&nbsp;recent changes in the SQLite engine.