// 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源代码的一个版本,特别处理过以便在Visual C++ 6或Visual Studio 2005环境下进行跟踪调试。通常,原始的SQLite3源代码包含了大量的注释,这些注释...
这部分资料可能包括源代码注释、分析文章、讲解视频等,旨在帮助读者理解SQLite的内部工作原理,提高数据库开发和优化能力。通过对源代码的深入研究,可以学习到数据库设计的精髓,对数据库性能调优有更深入的理解。...
5. **Doxyfile**:Doxygen的配置文件,Doxygen是一款文档生成工具,可以从源代码中提取注释生成文档。这个文件定义了如何生成SQLite的API文档,包括输出格式、目录结构等。 6. **.gitignore**:Git的忽略文件,定义...
SQLite3提供了丰富的C语言接口,包括打开/关闭数据库、执行SQL语句、事务处理等。在这些示例代码中,你可以看到如何初始化SQLite3库,打开或创建数据库文件,以及如何使用`sqlite3_prepare_v2`、`sqlite3_step`和`...
根据官方文档,可以通过重新编译SQLite库或在源代码中注释掉相关宏定义来解决这个问题。 最后,该项目在Ubuntu Linux下通过持续集成进行测试,确保其在最新版本的Linux系统上能够正常工作。这有助于维持SQLiteCpp库...
并用C语言格式导出C接口供C语言的调用; 即本程序是C语言、C++兼容 本程序所使用的Makefile文件由本人创作(注释详细),可支持动态库编译、静态库编译等等,经过长时间优化积累,可通过简单修改参数适用于绝大部分...
SQLite源代码库 该存储库包含的完整源代码。 还包括一些测试脚本。 但是,许多其他测试脚本和大多数文档是分开管理的。 版本控制 SQLite源使用 (一种专门设计和编写来支持SQLite开发的分布式版本控制系统)进行管理...
1. **源代码**:包括SQLite的C语言源码,这些源文件被组合在一起,使得开发者可以轻松地将其编译进自己的应用程序。 2. **头文件**:提供了与SQLite交互所需的函数声明和数据结构定义。 3. **构建脚本**:可能包含...
8. **源代码质量**:源代码注释详尽,100% 测试覆盖率,且所有代码都包含在一个 C 源文件中,方便嵌入到项目中。 9. **自包含**:没有外部依赖,可轻松移植到不同平台。 10. **跨平台**:广泛支持各种操作系统,...
SQLite3的源代码组织清晰,注释详尽,是学习数据库系统实现的绝佳素材。 sqlite3软件指的是SQLite3命令行工具,它是与SQLite3数据库交互的基础工具。通过这个软件,用户可以执行SQL语句,创建、查询、更新和管理...
SQLite是一个实现嵌入式SQL数据库引擎小型C语言库(C library),实现了独立的,可嵌入的,零配置的SQL数据库引擎。 特性包括:事务操作是原子,一致,孤立,并且持久的,即使在系统崩溃和电源故障之后。零配置——...
见以下代码及关键性注释: 代码如下: #include <sqlite3> #include using namespace std; void doTest() { sqlite3* conn = NULL; //1. 打开数据库 int result = sqlite3_open(“D:/mytest.db”,&conn); ...
SQLite源代码库 该存储库包含的完整源代码。 还包括一些测试脚本。 但是,许多其他测试脚本和大多数文档是分开管理的。 版本控制 SQLite源使用 (一种专门设计和编写来支持SQLite开发的分布式版本控制系统)进行管理...
【宿舍管理软件C语言代码】是一个基于C语言开发的课程设计项目,主要目的是为了实现对宿舍信息的有效管理和操作。在实际应用中,这样的系统能够帮助学校或其他组织方便地记录、查询和更新宿舍的相关数据,提高工作...
- 示例代码展示了如何在Objective-C或Swift中封装SQLite3的API,创建一个易于使用的数据库管理类。 - 注释详细解释了每个函数的作用,以及如何使用它们来执行SQL语句。 - 可能包括创建表的示例,例如创建一个用户表...
例如,上述示例代码展示了如何在C程序中连接SQLite数据库并执行SQL语句。`sqlite3_open()`函数用于打开或创建数据库,`sqlite3_exec()`执行SQL命令,`callback`函数是回调函数,用于处理查询结果,`sqlite3_close()`...
- 代码体积小,C代码少于30000行,代码空间小于250KB(以gcconi486为例)。 - 性能表现通常优于流行的客户端/服务器数据库引擎,尤其在最常见的操作上。 2. SQLite的优点和特性: - 简单易用的API,提供了TCL...
这使得你的C#代码可以使用SQLite的相关类和方法。 关键的命名空间是`System.Data.SQLite`,导入此命名空间后,你就可以像使用其他ADO.NET提供者一样操作SQLite了。以下是一个简单的示例代码,演示了如何连接数据库...
SQLite是一个小型的C程序库,实现了独立的,可嵌入的,零配置的SQL数据库引擎。特性包括: 事务操作是原子,一致,孤立,并且持久的(ACID),即使在系统崩溃和电源故障之后。 零配置——不需要安装和管理。 实现...