SQLite3的API简单应用
2014-09-26 18:13
387 查看
首先是一个简单的应用:
test_sqlite.c
[cpp] view
plaincopy
#include <stdio.h>
#include <sqlite3.h>
static int callback(void *NotUsed, int argc, char **argv, char **azColName)
{
int i;
for(i=0; i<argc; i++)
{
printf("%s = %s/n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("/n");
return 0;
}
int main(int argc, char **argv)
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
if( argc!=3 )
{
fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT/n", argv[0]);
}
rc = sqlite3_open(argv[1], &db);
if( rc )
{
fprintf(stderr, "Can't open database: %s/n", sqlite3_errmsg(db));
sqlite3_close(db);
}
rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
if( rc!=SQLITE_OK )
{
fprintf(stderr, "SQL error: %s/n", zErrMsg);
}
sqlite3_close(db);
return 0;
}
编译语句:arm-linux-gcc -o test_sqlite test_sqlite.c -lsqlite3 -L/home/bks/sqlite3/lib -I/home/bks/sqlite3/include
需要加入lib和include的路径。
编译完成后使用语句:./test_sqlite test.db "SELECT * FROM phonetable"
这里需要注意的是:我之前在当前目录文件夹下建立了名字:test.db 的数据库,其中包含表格:phonetable
现在是一个高级运用啦:
[cpp] view
plaincopy
#include <stdio.h>
#include "sqlite3.h"
static int callback(void *NotUsed, int ncols, char **values, char **headers)
{
int i;
for(i=0; i<ncols; i++)
{
printf("%s = %s\n", headers[i], values[i] ? values[i] : "NULL");
}
printf("\n");
return 0;
}
void doCmd(sqlite3 *db,char *pCmd)
{
char *errmsg=NULL;
if (sqlite3_exec(db,pCmd,NULL,NULL,&errmsg) != SQLITE_OK) {
printf("%s\n",errmsg);
return;
}
}
int main()
{
sqlite3 *db = NULL;
char *errmsg=NULL;
printf("Please input the name of DB(*.db):\n");
char dbname[30];
gets(dbname);
//Open a DB
int result = sqlite3_open(dbname,&db);
if (result != SQLITE_OK) {
sqlite3_close(db);
return;
}
//Create a Table
char *createTableSQL =
"CREATE TABLE IF NOT EXISTS PHONETABLE (id integer primary key,name text ,phone_number integer)";
doCmd(db,createTableSQL);
printf("Succeed to create test table now.\n");
//Insert
char *sql=NULL;
sql="INSERT into PHONETABLE (name,phone_number) values('Jone','15901110265')";
doCmd(db,sql);
sql="INSERT into PHONETABLE (name,phone_number) values('Jack','13811907568')";
doCmd(db,sql);
doCmd(db,"INSERT into PHONETABLE (name,phone_number) values('Jackson','13811907568')");
//Show
printf("Show the table\n");
sql="SELECT *FROM PHONETABLE";
int rc = sqlite3_exec(db,sql, callback, 0, &errmsg);
if( rc!=SQLITE_OK )
{
fprintf(stderr, "SQL error: %s\n", errmsg);
}
//Delete
printf("Delete 'Jack' from table\n");
sql="DELETE FROM phonetable where name='Jack'";
doCmd(db,sql);
printf("Show the table\n");
sql="SELECT *FROM PHONETABLE";
rc = sqlite3_exec(db,sql, callback, 0, &errmsg);
if( rc!=SQLITE_OK )
{
fprintf(stderr, "SQL error: %s\n", errmsg);
}
//Change
printf("Alter Jackson to Mike.\n");
sql="update phonetable set name='Jack' where name='Jone'";
doCmd(db,sql);
printf("Show the table\n");
sql="SELECT *FROM PHONETABLE";
rc = sqlite3_exec(db,sql, callback, 0, &errmsg);
if( rc!=SQLITE_OK )
{
fprintf(stderr, "SQL error: %s\n", errmsg);
}
sqlite3_close(db);
return 0;
}
这个属于升级版了。操作包括了
1.建立数据库;
2.插入数据;
3.删除数据;
4.修改数据;
5.以及查询数据;
各位看官自己慢慢看吧。
就到这里,后续有新的研究成果在写出来
test_sqlite.c
[cpp] view
plaincopy
#include <stdio.h>
#include <sqlite3.h>
static int callback(void *NotUsed, int argc, char **argv, char **azColName)
{
int i;
for(i=0; i<argc; i++)
{
printf("%s = %s/n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("/n");
return 0;
}
int main(int argc, char **argv)
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
if( argc!=3 )
{
fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT/n", argv[0]);
}
rc = sqlite3_open(argv[1], &db);
if( rc )
{
fprintf(stderr, "Can't open database: %s/n", sqlite3_errmsg(db));
sqlite3_close(db);
}
rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
if( rc!=SQLITE_OK )
{
fprintf(stderr, "SQL error: %s/n", zErrMsg);
}
sqlite3_close(db);
return 0;
}
编译语句:arm-linux-gcc -o test_sqlite test_sqlite.c -lsqlite3 -L/home/bks/sqlite3/lib -I/home/bks/sqlite3/include
需要加入lib和include的路径。
编译完成后使用语句:./test_sqlite test.db "SELECT * FROM phonetable"
这里需要注意的是:我之前在当前目录文件夹下建立了名字:test.db 的数据库,其中包含表格:phonetable
现在是一个高级运用啦:
[cpp] view
plaincopy
#include <stdio.h>
#include "sqlite3.h"
static int callback(void *NotUsed, int ncols, char **values, char **headers)
{
int i;
for(i=0; i<ncols; i++)
{
printf("%s = %s\n", headers[i], values[i] ? values[i] : "NULL");
}
printf("\n");
return 0;
}
void doCmd(sqlite3 *db,char *pCmd)
{
char *errmsg=NULL;
if (sqlite3_exec(db,pCmd,NULL,NULL,&errmsg) != SQLITE_OK) {
printf("%s\n",errmsg);
return;
}
}
int main()
{
sqlite3 *db = NULL;
char *errmsg=NULL;
printf("Please input the name of DB(*.db):\n");
char dbname[30];
gets(dbname);
//Open a DB
int result = sqlite3_open(dbname,&db);
if (result != SQLITE_OK) {
sqlite3_close(db);
return;
}
//Create a Table
char *createTableSQL =
"CREATE TABLE IF NOT EXISTS PHONETABLE (id integer primary key,name text ,phone_number integer)";
doCmd(db,createTableSQL);
printf("Succeed to create test table now.\n");
//Insert
char *sql=NULL;
sql="INSERT into PHONETABLE (name,phone_number) values('Jone','15901110265')";
doCmd(db,sql);
sql="INSERT into PHONETABLE (name,phone_number) values('Jack','13811907568')";
doCmd(db,sql);
doCmd(db,"INSERT into PHONETABLE (name,phone_number) values('Jackson','13811907568')");
//Show
printf("Show the table\n");
sql="SELECT *FROM PHONETABLE";
int rc = sqlite3_exec(db,sql, callback, 0, &errmsg);
if( rc!=SQLITE_OK )
{
fprintf(stderr, "SQL error: %s\n", errmsg);
}
//Delete
printf("Delete 'Jack' from table\n");
sql="DELETE FROM phonetable where name='Jack'";
doCmd(db,sql);
printf("Show the table\n");
sql="SELECT *FROM PHONETABLE";
rc = sqlite3_exec(db,sql, callback, 0, &errmsg);
if( rc!=SQLITE_OK )
{
fprintf(stderr, "SQL error: %s\n", errmsg);
}
//Change
printf("Alter Jackson to Mike.\n");
sql="update phonetable set name='Jack' where name='Jone'";
doCmd(db,sql);
printf("Show the table\n");
sql="SELECT *FROM PHONETABLE";
rc = sqlite3_exec(db,sql, callback, 0, &errmsg);
if( rc!=SQLITE_OK )
{
fprintf(stderr, "SQL error: %s\n", errmsg);
}
sqlite3_close(db);
return 0;
}
这个属于升级版了。操作包括了
1.建立数据库;
2.插入数据;
3.删除数据;
4.修改数据;
5.以及查询数据;
各位看官自己慢慢看吧。
就到这里,后续有新的研究成果在写出来
相关文章推荐
- DVD-Logger源码——SQLite简单应用
- Google Map Api 的简单应用
- 使用SQLite offline storage API来存储应用的设置
- android之SQLite简单应用
- 王立平--SQLite,SQLiteOpenHelper的简单应用
- GoogMap的简单实现(GoogleMapApI简单应用)
- Rest API的简单应用
- 简单的API应用
- windows 简单api应用
- SQLite3的API应用(续)
- Google Map Api 的简单应用之方法属性
- 嵌入式数据库--SQLite简单应用(一)
- android 使用MideaPlayer API来播放简单的应用
- SQLite操作数据库的简单应用
- 开源Sqlite的在java下的简单应用
- 引用 Google Maps API 简单应用之几个有用的方法
- Skia API的简单应用
- 嵌入式数据库--SQLite简单应用(三)--基于Qt3+SQLite3的通信录
- Android平台SQLite简单应用
- OWL API 简单应用 构建领域本体 —— 以旅游数据为例