近来因为工作需要加入sqlite 处理数据,下载了sqlite3.6.22(amalgamation 版本),又想自己动手编译出来想动态链接就动态,想静态链接也可以,于是有了这篇文章,有意思的是之前也试过编译Sqlite,但没成功,不了了之,可能近来要过年了
跟
RP有关吧:)。
1 首先创建vs2008的一个空DLL工程;
2 将sqlite3.c文件添加到工程,不需要sqlite3.h头文件,sqlite3.c已经包含了头文件的接口跟数据结构。
3. 最重要的一步,将编译选项里的"编译成C++"改为“编译成C”,我在Google现成的sqlite vs工程发现许多人都因为那些烦人的类型没定义或者不匹配崩溃,修改这个选项后就不需要修改代码了。
4. sqlite网站提供一个Windows的编译库,我没用到那个DLL,但那个sqlite3.def却可以用来声明导出函数,比自己去导出省力,所以也添加进工程。
5 还有一个编译宏,SQLITE_ENABLE_COLUMN_METADATA,如果遇到sqlite3_column_database_name**()函数没定义,那就是提醒要加进这个宏了,我是在工程"属性"框------> C++ ------->Preprocessor-------->Preprocessor Definition添加的,当然也可以在其他地方添加,
但以我的 ......
使用工具:
SQLite Expert SQLite数据库管理工具,非常好用,类似我之前介绍的EMS SQL Manager 2007 for MySQL
System.Data.SQLite SQLite For ADO.NET驱动,类似我之前介绍的MySql.Data.dll
这2个工具都包括了SQLite的引擎
1、从http://www.sqlite.org/下载SQLite 3.3.4的版本
为了方便,我把它解压了,就一个SQLite3.exe,放入Windows目录下。
Cmd 进入命令行
1) 创建数据库文件:
>SQLite3 d:\test.db 回车
就生成了一个test.db在d盘。
这样同时也SQLite3挂上了这个test.db
2) 用.help可以看看有什么命令
>.help 回车即可
&nbs ......
1、如何得到最后插入项的自动增长ID值? 对应的C#代码段如下:
using (SQLiteConnection cn = new SQLiteConnection (“data source = Test.db”))
{
cn.Open ();
SQLiteCommand cmd = new SQLiteCommand ("INSERT INTO TestTable VALUES (NULL, ‘TestString’); SELECT last_insert_rowid ()", cn);
int NewID = Convert.ToInt32 (cmd.ExecuteScalar ());
cn.Close ();
}
NewID值为0表示插入未成功。 2、如何将查询结果直接保存到表? 保存到表之前,首先将表清空。对应的C#代码段如下:
using (SQLiteConnection cn = new SQLiteConnection (“data source = Test.db”))
{
cn.Open ();
SQLiteCommand cmd = new SQLiteCommand ("DELETE from TestTable; INSERT INTO TestTable SELECT ID, Name fr ......
要用ASP来操作SQLite数据库,前提条件是在服务器上得安装SQLite的ODBC驱动程序,可到这个站点上下载安装:http://www.ch-werner.de/sqliteodbc/,安装好后就可以像使用Access一样来使用SQLite了!下边是一个SQLite数据库结构:
引用内容
Create TABLE admin(username text,age integer);
我们再来用ASP演示下如何对SQLite数据库进行记录的增、查、改、删操作:
程序代码
<%
Response.Buffer = False '不加此句可能出现"超过响应缓冲区限制"错误
Set conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
conn.open "DRIVER={SQLite3 ODBC Driver};Database=F:\mzwucom\bbs\db1.db"
conn.execute("insert into admin values('usera',20)")
'conn.execute("update admin set username='kk' where username='usera'")
'conn.execute("delete from admin where age=20")
rs.open "select * from admin",conn,1,1
Do while Not rs.Eof
Response.Write(rs("username") & "," & rs("age") & "<br/>")
rs.movenext
Loop
rs.close
Set rs = ......
要用ASP来操作SQLite数据库,前提条件是在服务器上得安装SQLite的ODBC驱动程序,可到这个站点上下载安装:http://www.ch-werner.de/sqliteodbc/,安装好后就可以像使用Access一样来使用SQLite了!下边是一个SQLite数据库结构:
引用内容
Create TABLE admin(username text,age integer);
我们再来用ASP演示下如何对SQLite数据库进行记录的增、查、改、删操作:
程序代码
<%
Response.Buffer = False '不加此句可能出现"超过响应缓冲区限制"错误
Set conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
conn.open "DRIVER={SQLite3 ODBC Driver};Database=F:\mzwucom\bbs\db1.db"
conn.execute("insert into admin values('usera',20)")
'conn.execute("update admin set username='kk' where username='usera'")
'conn.execute("delete from admin where age=20")
rs.open "select * from admin",conn,1,1
Do while Not rs.Eof
Response.Write(rs("username") & "," & rs("age") & "<br/>")
rs.movenext
Loop
rs.close
Set rs = ......
SQLite Database Browser
SQLite Database browser is a light GUI editor for SQLite databases, built on top of Qt. The main goal of the project is to allow non-technical users to create, modify and edit SQLite databases using a set of wizards and a spreadsheet-like interface.
Download Now!sqlitebrowser_200_b1_win.... (7.3 MB)ORView all files
http://sqlitebrowser.sourceforge.net
好东西,强烈推荐!分析M8的db数据时找到的。 ......
2010年SQLite学习笔记之一
一. 如何获取SQLite最新版本
官方站点:http://www.sqlite.org/
从http://www.sqlite.org/网站的Download页面获取
即如下页面下载
http://www.sqlite.org/download.html
二.Windows下的SQLite的源代码是哪个软件压缩包?
sqlite-amalgamation-3_6_22.zip是SQLite的windows下源码文件
三.Window下的SQLite命令行工具
sqlite-3_6_22.zip
四.Window下的SQLite开发库,即动态链接库以及DEF文件
sqlitedll-3_6_22.zip
五.SQLite最新版本是:3.6.22
六.b<=a && a <= c 的SQL语句如何写
在SQLite中, 表达式"a BETWEEN b AND c"等于表达式 "a >= b AND a <= c",在比较表达式时,a可以是具有任何亲和性
七.a的值是x,y,z其中一个值,SQL语句如何写
SQLite把表达式 "a IN (x, y, z)" 和 "a = z OR a = y OR a = z"视为相等.
八.如何创建制定目录的数据库
sqlite3 D:\Project\SyncML\Lib\debug\atsync.db
九.创建数据的注意事项
如果不往数据库里面添加任何的表,这个数据库等于没有建立,不会在硬盘上产生任何文件,如果数据库 ......