#include <stdio.h>
#include <stdlib.h>
#include "sqlite3.h"
#define _DEBUG_
int main(int argc, char**argv)
{
sqlite3 *db=NULL;
int len;
int i=0;
int nrow=0;
int ncolumn = 0;
char *zErrMsg =NULL;
char **azResult=NULL; //二维数组存放结果
/* 打开数据库 */
len = sqlite3_open("device_information.db",&db);
if( len )
{
/* fprintf函数格式化输出错误信息到指定的stderr文件流中 */
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));//sqlite3_errmsg(db)用以获得数据库打开错误码的英文描述。
sqlite3_close(db);
exit(1);
}
else printf("You have opened a sqlite3 database named user successfully!\n");
// ID INTEGER PRIMARY KEY,
/* 创建表 */
char *sql = " CREATE TABLE devicelist(\
netaddr_endpoint VARCHAR(50),\
deviceid_zonetype VARCHAR(50),\
ieee VARCHAR(50)\
);" ;
sqlite3_exec(db,sql,NULL,NULL,&zErrMsg);
#ifdef _DEBUG_
printf("%s\n",zErrMsg);
sqlite3_free(zErrMsg);
#endif
char aa[20] = "abc123";
char bb[20] = "ddd";
char cc[20] = "ccc";
char sql4[512] = {0};
/*插入数据 */
char*sql1 ="INSERT INTO 'devicelist'VALUES('abc123','aabbccdd','1234567812345678');";
sqlite3_exec(db,sql1,NULL,NULL,&zErrMsg);
char*sql2 ="INSERT INTO 'devicelist'VALUES('abc163','aabbdcdd','1234567812345978');";
sqlite3_exec(db,sql2,NULL,NULL,&zErrMsg);
char*sql3 ="INSERT INTO 'devicelist'VALUES('abc173','aabaccdd','1234567812366678');";
sqlite3_exec(db,sql3,NULL,NULL,&zErrMsg);
sprintf(sql4, "INSERT INTO devicelist VALUES('%s','%s', '%s'); ", aa,bb,cc);
sqlite3_exec(db,sql4,NULL,NULL,&zErrMsg);
char*sql5 ="INSERT INTO 'devicelist'VALUES('abc17443','aabac44cdd','123454467812366678');";
sqlite3_exec(db,sql5,NULL,NULL,&zErrMsg);
/* 查询数据 */
// sql="select *from devicelist where netaddr_endpoint = 'abc'";
char sql6[512] = {0};
sprintf(sql6,"select *from devicelist where netaddr_endpoint = '%s';",aa);
sqlite3_get_table( db , sql6 , &azResult , &nrow , &ncolumn , &zErrMsg );
printf("nrow=%d ncolumn=%d\n",nrow,ncolumn);
printf("the result is:\n");
for(i=0;i<(nrow+1)*ncolumn;i++)
{
printf("+++azResult[%d]=%s,%d\n",i,azResult[i],strlen(azResult[i]));
}
/* 删除某个特定的数据 */
sql="delete from devicelist where netaddr_endpoint = 'abc123' ";
sqlite3_exec( db , sql , NULL , NULL , &zErrMsg );
#ifdef _DEBUG_
printf("zErrMsg = %s \n", zErrMsg);
sqlite3_free(zErrMsg);
#endif
/* 查询删除后的数据 */
sql = "SELECT * FROM devicelist ";
sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg );
printf( "row:%d column=%d\n " , nrow , ncolumn );
printf( "After deleting , the result is : \n" );
for( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ )
{
printf( "azResult[%d] = %s\n", i , azResult[i] );
}
sqlite3_free_table(azResult);
#ifdef _DEBUG_
printf("zErrMsg = %s \n", zErrMsg);
sqlite3_free(zErrMsg);
#endif
sqlite3_close(db);
return 0;
}
#include <stdlib.h>
#include "sqlite3.h"
#define _DEBUG_
int main(int argc, char**argv)
{
sqlite3 *db=NULL;
int len;
int i=0;
int nrow=0;
int ncolumn = 0;
char *zErrMsg =NULL;
char **azResult=NULL; //二维数组存放结果
/* 打开数据库 */
len = sqlite3_open("device_information.db",&db);
if( len )
{
/* fprintf函数格式化输出错误信息到指定的stderr文件流中 */
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));//sqlite3_errmsg(db)用以获得数据库打开错误码的英文描述。
sqlite3_close(db);
exit(1);
}
else printf("You have opened a sqlite3 database named user successfully!\n");
// ID INTEGER PRIMARY KEY,
/* 创建表 */
char *sql = " CREATE TABLE devicelist(\
netaddr_endpoint VARCHAR(50),\
deviceid_zonetype VARCHAR(50),\
ieee VARCHAR(50)\
);" ;
sqlite3_exec(db,sql,NULL,NULL,&zErrMsg);
#ifdef _DEBUG_
printf("%s\n",zErrMsg);
sqlite3_free(zErrMsg);
#endif
char aa[20] = "abc123";
char bb[20] = "ddd";
char cc[20] = "ccc";
char sql4[512] = {0};
/*插入数据 */
char*sql1 ="INSERT INTO 'devicelist'VALUES('abc123','aabbccdd','1234567812345678');";
sqlite3_exec(db,sql1,NULL,NULL,&zErrMsg);
char*sql2 ="INSERT INTO 'devicelist'VALUES('abc163','aabbdcdd','1234567812345978');";
sqlite3_exec(db,sql2,NULL,NULL,&zErrMsg);
char*sql3 ="INSERT INTO 'devicelist'VALUES('abc173','aabaccdd','1234567812366678');";
sqlite3_exec(db,sql3,NULL,NULL,&zErrMsg);
sprintf(sql4, "INSERT INTO devicelist VALUES('%s','%s', '%s'); ", aa,bb,cc);
sqlite3_exec(db,sql4,NULL,NULL,&zErrMsg);
char*sql5 ="INSERT INTO 'devicelist'VALUES('abc17443','aabac44cdd','123454467812366678');";
sqlite3_exec(db,sql5,NULL,NULL,&zErrMsg);
/* 查询数据 */
// sql="select *from devicelist where netaddr_endpoint = 'abc'";
char sql6[512] = {0};
sprintf(sql6,"select *from devicelist where netaddr_endpoint = '%s';",aa);
sqlite3_get_table( db , sql6 , &azResult , &nrow , &ncolumn , &zErrMsg );
printf("nrow=%d ncolumn=%d\n",nrow,ncolumn);
printf("the result is:\n");
for(i=0;i<(nrow+1)*ncolumn;i++)
{
printf("+++azResult[%d]=%s,%d\n",i,azResult[i],strlen(azResult[i]));
}
/* 删除某个特定的数据 */
sql="delete from devicelist where netaddr_endpoint = 'abc123' ";
sqlite3_exec( db , sql , NULL , NULL , &zErrMsg );
#ifdef _DEBUG_
printf("zErrMsg = %s \n", zErrMsg);
sqlite3_free(zErrMsg);
#endif
/* 查询删除后的数据 */
sql = "SELECT * FROM devicelist ";
sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg );
printf( "row:%d column=%d\n " , nrow , ncolumn );
printf( "After deleting , the result is : \n" );
for( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ )
{
printf( "azResult[%d] = %s\n", i , azResult[i] );
}
sqlite3_free_table(azResult);
#ifdef _DEBUG_
printf("zErrMsg = %s \n", zErrMsg);
sqlite3_free(zErrMsg);
#endif
sqlite3_close(db);
return 0;
}