sqlite C/C++ API
发布时间:2020-12-12 20:03:10 所属栏目:百科 来源:网络整理
导读:官网:https://sqlite.org/download.html 下载代码安装三步走: ./configure// ./configure --help查看安装参数设置,学习configure的配置,明白安装后include、lib、bin等文件的位置make make install 学习SQL基本语法,各个数据库基本相同 http://www.w3cs
官网:https://sqlite.org/download.html
下载代码安装三步走: ./configure // ./configure --help查看安装参数设置,学习configure的配置,明白安装后include、lib、bin等文件的位置 make make install 学习SQL基本语法,各个数据库基本相同 http://www.w3cschool.cc/sqlite/sqlite-tutorial.html
常用函数: int sqlite3_open( const char *filename,/* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */ ); typedef int (*sqlite3_callback)( void*,/* Data provided in the 4th argument of sqlite3_exec() */ int,/* The number of columns in row */ char**,/* An array of strings representing fields in the row */ char** /* An array of strings representing column names */ ); int sqlite3_exec( sqlite3*,/* An open database */ const char *sql,/* SQL to be evaluated */ int (*callback)(void*,int,char**,char**),/* Callback function */ void *,/* 1st argument to callback */ char **errmsg /* Error msg written here */ ); int sqlite3_close(sqlite3*); 例子: #include <stdio.h> #include <stdlib.h> #include <sqlite3.h> #define DB_FILENAME "/home/suo/Desktop/sqlite/datadir/sqlite.db" static int flag = 0; static int callback(void *userData,int columnNum,char **columnText,char **columnName) { int index; if (userData && !flag++) { fprintf(stdout,"---------%s------n",(const char*)userData); for (index=0; index<columnNum; index++) { printf("%st",columnName[index]); } printf("n"); } for(index=0; index<columnNum; index++){ printf("%st",columnText[index] ? columnText[index] : "NULL"); } printf("n"); return 0; } int main(int argc,char* argv[]) { sqlite3 *db; char *zErrMsg = 0; int rc; char *sql; rc = sqlite3_open(DB_FILENAME,&db); if( rc != SQLITE_OK){ fprintf(stderr,"Can't open database: %sn",sqlite3_errmsg(db)); exit(0); }else{ fprintf(stderr,"Opened database successfullyn"); } sql = "CREATE TABLE COMPANY(" "ID INT PRIMARY KEY NOT NULL," "NAME TEXT NOT NULL," "AGE INT NOT NULL," "ADDRESS CHAR(50)," "SALARY REAL);"; rc = sqlite3_exec(db,sql,callback,(void *)sql,&zErrMsg); if(rc != SQLITE_OK){ fprintf(stderr,"SQL error :%sn",zErrMsg); sqlite3_free(zErrMsg); } else { fprintf(stdout,"Table created successfullyn"); } sql = "INSERT INTO COMPANY(ID,NAME,AGE,ADDRESS,SALARY) " "VALUES(1,'Paul',32,'California',20000.00); " "INSERT INTO COMPANY(ID,SALARY) " "VALUES(2,'Allen',25,'Texas',15000.00);" "INSERT INTO COMPANY(ID,SALARY) " "VALUES(3,'Teddy',23,'Norway',20000.00);" "INSERT INTO COMPANY(ID,SALARY) " "VALUES(4,'Mark','Rick-Mond',65000.00);"; rc = sqlite3_exec(db,"SQL error: %s","Records created successfullyn"); } sql = "SELECT * FROM COMPANY;"; rc = sqlite3_exec(db,"Select records successfullyn"); } sqlite3_close(db); return 0; }
对应Makefile: #! /usr/make rm=/bin/rm -f CC = gcc DEFS = PROGNAME = testsqlite INCLUDES = -I /home/suo/Desktop/sqlite/include DEFINES += $(INCLUDES) $(DEFS) CFLAGS = $(DEFINES) -g -Wall -O2 LDFLAGS = SRCS = testsqlite.c OBJS = testsqlite.o LIBS = -L./lib -lsqlite3 .cpp.o: $(rm) $@ $(CC) $(CFLAGS) -c $*.cpp all: $(PROGNAME) $(PROGNAME) : $(OBJS) $(CC) $(CFLAGS) -o $(PROGNAME) $(OBJS) $(LDFLAGS) $(LIBS) clean: $(rm) $(OBJS) $(PROGNAME) core *~ 执行结果: Opened database successfully Table created successfully Records created successfully ---------SELECT * FROM COMPANY;------ ID NAME AGE ADDRESS SALARY 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rick-Mond 65000.0 Select records successfully (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |