`
yunnysunny
  • 浏览: 19179 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

sqlite C代码(带注释)

阅读更多
// name: query.c
// This prog is used to test C/C++ API for sqlite3 .It is very simple,ha !
#include <stdio.h>
#include <stdlib.h>
#include "sqlite3.h" 
//#define _DEBUG_

int main( void )
{
	sqlite3 *db=NULL;
	char *zErrMsg = 0;
	char *dbPath = "/usr/tomcat6/webapps/sql/WEB-INF/classes/sq3.s3db";

	int rc;
	
	rc = sqlite3_open(dbPath, &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
	if( rc )
	{
		fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
		sqlite3_close(db);
		exit(1);
	}
	else 
	{
		printf("You have opened a sqlite3 database saved in %s successfully!\n",dbPath);
	}
	

	//创建一个表,如果该表存在,则不创建,
	//返回值为SQLITE_OK为成功
	//函数参数:第一个为操作数据库的指针,第二句为SQL命令字符串
	//第三个参数为callback函数,这里没有用,第四个参数为callback函数
	//第五个参数给出提示信息,存储在 zErrMsg 中
	char *sql = "	CREATE TABLE SensorData(\
				 	ID INTEGER PRIMARY KEY,\
					SensorID INTEGER,\
				 	SiteNum INTEGER,\
				 	Time VARCHAR(12),\
				 	SensorParameter REAL\
				 	);" ;
	sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );

	#ifdef _DEBUG_
        printf("zErrMsg = %s \n", zErrMsg);
    #endif
	
	//插入数据	
	sql = "INSERT INTO \"SensorData\" VALUES(NULL , 1 , 1 , '200605011206', 18.9 );" ;
	sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
	
	sql = "INSERT INTO \"SensorData\" VALUES(NULL , 1 , 1 , '200605011306', 16.4 );" ;
	sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
	
	
		
	int nrow = 0, ncolumn = 0;
	char **azResult; //二维数组存放结果

	//查询数据
	/*
	int sqlite3_get_table(sqlite3*, const char *sql,char***result , int *nrow , int *ncolumn ,char **errmsg );
	result中是以数组的形式存放你所查询的数据,首先是表名,再是数据。
	nrow ,ncolumn分别为查询语句返回的结果集的行数,列数,没有查到结果时返回0
	*/
	sql = "SELECT * FROM SensorData ";
	sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg );

	int i = 0 ;
	printf( "row:%d column=%d \n" , nrow , ncolumn );
	printf( "\nThe result of querying is : \n" );
	
	for( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ )
		printf( "azResult[%d] = %s\n", i , azResult[i] );

	//释放掉	 azResult 的内存空间
	sqlite3_free_table( azResult );
		
	#ifdef _DEBUG_
        printf("zErrMsg = %s \n", zErrMsg);
    #endif

	sqlite3_close(db); //关闭数据库
	return 0;
	
}

分享到:
评论

相关推荐

    sqlite3.c 去注释版 (sqlite 3.6.6.2)

    这个压缩包中的“sqlite3.c 去注释版 (sqlite 3.6.6.2)”是SQLite3源代码的一个版本,特别处理过以便在Visual C++ 6或Visual Studio 2005环境下进行跟踪调试。通常,原始的SQLite3源代码包含了大量的注释,这些注释...

    sqlite 源代码分析资料

    这部分资料可能包括源代码注释、分析文章、讲解视频等,旨在帮助读者理解SQLite的内部工作原理,提高数据库开发和优化能力。通过对源代码的深入研究,可以学习到数据库设计的精髓,对数据库性能调优有更深入的理解。...

    sqlite源代码,模块清晰,容易阅读。

    5. **Doxyfile**:Doxygen的配置文件,Doxygen是一款文档生成工具,可以从源代码中提取注释生成文档。这个文件定义了如何生成SQLite的API文档,包括输出格式、目录结构等。 6. **.gitignore**:Git的忽略文件,定义...

    已经分装好的sqlite3的例子代码

    SQLite3提供了丰富的C语言接口,包括打开/关闭数据库、执行SQL语句、事务处理等。在这些示例代码中,你可以看到如何初始化SQLite3库,打开或创建数据库文件,以及如何使用`sqlite3_prepare_v2`、`sqlite3_step`和`...

    SQLiteC++.pdf

    根据官方文档,可以通过重新编译SQLite库或在源代码中注释掉相关宏定义来解决这个问题。 最后,该项目在Ubuntu Linux下通过持续集成进行测试,确保其在最新版本的Linux系统上能够正常工作。这有助于维持SQLiteCpp库...

    sqlite3数据库操作类

    并用C语言格式导出C接口供C语言的调用; 即本程序是C语言、C++兼容 本程序所使用的Makefile文件由本人创作(注释详细),可支持动态库编译、静态库编译等等,经过长时间优化积累,可通过简单修改参数适用于绝大部分...

    sqlite:SQLite源代码树的官方Git镜像

    SQLite源代码库 该存储库包含的完整源代码。 还包括一些测试脚本。 但是,许多其他测试脚本和大多数文档是分开管理的。 版本控制 SQLite源使用 (一种专门设计和编写来支持SQLite开发的分布式版本控制系统)进行管理...

    sqlite3.7.5 合并版

    1. **源代码**:包括SQLite的C语言源码,这些源文件被组合在一起,使得开发者可以轻松地将其编译进自己的应用程序。 2. **头文件**:提供了与SQLite交互所需的函数声明和数据结构定义。 3. **构建脚本**:可能包含...

    sqlite分析

    8. **源代码质量**:源代码注释详尽,100% 测试覆盖率,且所有代码都包含在一个 C 源文件中,方便嵌入到项目中。 9. **自包含**:没有外部依赖,可轻松移植到不同平台。 10. **跨平台**:广泛支持各种操作系统,...

    sqlite3资料大全

    SQLite3的源代码组织清晰,注释详尽,是学习数据库系统实现的绝佳素材。 sqlite3软件指的是SQLite3命令行工具,它是与SQLite3数据库交互的基础工具。通过这个软件,用户可以执行SQL语句,创建、查询、更新和管理...

    sqlite3.08源码包及使用指南

    SQLite是一个实现嵌入式SQL数据库引擎小型C语言库(C library),实现了独立的,可嵌入的,零配置的SQL数据库引擎。 特性包括:事务操作是原子,一致,孤立,并且持久的,即使在系统崩溃和电源故障之后。零配置——...

    SQLite教程(十三):C语言编程实例代码(1)

     见以下代码及关键性注释: 代码如下: #include &lt;sqlite3&gt; #include using namespace std; void doTest() {  sqlite3* conn = NULL;  //1. 打开数据库  int result = sqlite3_open(“D:/mytest.db”,&conn); ...

    sqlite:SQLite源代码的非官方git镜像(有关构建说明,请参见链接)

    SQLite源代码库 该存储库包含的完整源代码。 还包括一些测试脚本。 但是,许多其他测试脚本和大多数文档是分开管理的。 版本控制 SQLite源使用 (一种专门设计和编写来支持SQLite开发的分布式版本控制系统)进行管理...

    宿舍管理软件C语言代码

    【宿舍管理软件C语言代码】是一个基于C语言开发的课程设计项目,主要目的是为了实现对宿舍信息的有效管理和操作。在实际应用中,这样的系统能够帮助学校或其他组织方便地记录、查询和更新宿舍的相关数据,提高工作...

    ios之sqlite3的数据库demo

    - 示例代码展示了如何在Objective-C或Swift中封装SQLite3的API,创建一个易于使用的数据库管理类。 - 注释详细解释了每个函数的作用,以及如何使用它们来执行SQL语句。 - 可能包括创建表的示例,例如创建一个用户表...

    SQLite开发笔记1

    例如,上述示例代码展示了如何在C程序中连接SQLite数据库并执行SQL语句。`sqlite3_open()`函数用于打开或创建数据库,`sqlite3_exec()`执行SQL命令,`callback`函数是回调函数,用于处理查询结果,`sqlite3_close()`...

    “SQLITE数据库支持库”开发指南.pdf

    - 代码体积小,C代码少于30000行,代码空间小于250KB(以gcconi486为例)。 - 性能表现通常优于流行的客户端/服务器数据库引擎,尤其在最常见的操作上。 2. SQLite的优点和特性: - 简单易用的API,提供了TCL...

    如何使用C#操作SQLite数据库

    这使得你的C#代码可以使用SQLite的相关类和方法。 关键的命名空间是`System.Data.SQLite`,导入此命名空间后,你就可以像使用其他ADO.NET提供者一样操作SQLite了。以下是一个简单的示例代码,演示了如何连接数据库...

    SQLite 数据库

    SQLite是一个小型的C程序库,实现了独立的,可嵌入的,零配置的SQL数据库引擎。特性包括: 事务操作是原子,一致,孤立,并且持久的(ACID),即使在系统崩溃和电源故障之后。 零配置——不需要安装和管理。 实现...

Global site tag (gtag.js) - Google Analytics