ipplat 专利探索
ipplat 专利探索 >> 博客文章 >> Sqlite简介以及delphi7应用示例

Sqlite简介以及delphi7应用示例

Sqlite数据库
    Sqlite数据库是D.Richard Hipp用C语言编写的开源嵌入式数据库,支持的数据库大小为2TB,全部源代码约3万行,每个数据库完全存储在单个磁盘文件中,数据以B+树数据结构的形式存储在磁盘上,Sqlite根据该文件系统获得其数据库权限[2]。
    Sqlite可直接运行在大多数的操作系统上,并且支持C/C++、Java等常用的开发工具。本项目用到的是Sqlite最新版本3.3.4,支持多数SQL92标准,如SELECT、CREATE、TABLE、ALTER、INDEX、VIEW、DELETE等,但不支持EXISTS,不支持存储过程[4]。Sqlite支持事务的ACID特性,即原子性、一致性、隔离性和持久性。所以,Sqlite数据库能够在系统崩溃前和断电时不会丢失数据。Sqlite通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。在某个进程或线程向数据库执行写操作之前,必须获得独占锁定。在发出独占锁定后,其他的读或写操作将不会再发生。
    嵌入式数据库来自于其嵌入式运行模式,它使用精简代码编写,零配置,直接在应用程序中运行,并且占用资源非常少[4]。嵌入式数据库系统没有管理员,具有自调节和自适应能力,能够“无处不在”。Sqlite是一个非常适合嵌入式应用的数据库,这可以从其设计的目的和独特的特点看出。Sqlite设计的主要目的是简单:简单的管理、简单的操作、简单地嵌入、简单的维护。Sqlite的特征如下:
   (1)零配置。
   (2)无服务器。
   (3)精简性。
   (4)简单的访问。
   (5)可变长度的纪录。
    Sqlite不仅小、快,而且简单、可靠,这是它受欢迎的主要原因。对于嵌入式场合,管理、执行、维护的简单化比企业数据库引擎提供的许多复杂应用更重要,因此Sqlite数据库是一个很好的选择。

上次使用发现有一些问题,今天再次测试了一下,估计当时是因为操作问题。

现在把一个简单完整的delphi的例子放上大家看看:

1、新建应用程序
2、在默认窗体上拖放一个ASQLite3DB控件、一个ASQLite3Query、一个dbgrid、一个datasource。设置好各个控件的连接,ASQLite3Query的connection设置为ASQLite3DB,dbgrid的datasource设置为datasource,datasource的数据集dataset设置为ASQLite3Query。
3、拖放一个按钮,2个label,2个edit。

双击窗体,加入oncreate事件:
  if not fileexists('db.dat') then
    begin
      asdbconn.Database := 'db.dat';
      asdbconn.Close;
      asdbconn.Open;
      asdbconn.SQLite3_ExecSQL('create table inf (id integer primary key, name varchar(255), num numeric)');
    end;
//检查是否存在该数据库文件,没有则新建并创建该文件
  asdbconn.Database := 'db.dat';
  asdbconn.Close;
  asdbconn.Open;
  asquery.SQL.Text:='select * from inf';
  asquery.Open;

双击按钮,加入onclick事件: 
  asdbconn.SQLite3_ExecSQL('insert into inf(name,num) values('''+ edit1.text +''','+ edit2.Text +')');
  asquery.Close;
  asquery.SQL.Text:='select * from inf';
  asquery.Open;

Google
[来源:原创] [作者:solock] [日期:08-06-02] [热度:]
© 2006-2008 IPPlat.com All rights reserved.
湘ICP备08003301号