SQLite3的API简单应用

前端之家收集整理的这篇文章主要介绍了SQLite3的API简单应用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

首先是一个简单的应用:

test_sqlite.c

  1. #include<stdio.h>@H_404_20@@H_404_20@@H_404_20@
  2. #include<sqlite3.h>@H_404_20@@H_404_20@@H_404_20@
  3. @H_404_20@
  4. static@H_404_20@@H_404_20@int@H_404_20@callback(@H_404_20@void@H_404_20@*NotUsed,@H_404_20@int@H_404_20@argc,87); font-weight:bold; background-color:inherit">char@H_404_20@**argv,87); font-weight:bold; background-color:inherit">char@H_404_20@**azColName)@H_404_20@@H_404_20@
  5. {@H_404_20@
  6. int@H_404_20@i;@H_404_20@@H_404_20@
  7. for@H_404_20@(i=0;i<argc;i++)@H_404_20@@H_404_20@
  8. {@H_404_20@
  9. printf("%s=%s/n"@H_404_20@,azColName[i],argv[i]?argv[i]:@H_404_20@"NULL"@H_404_20@);@H_404_20@@H_404_20@
  10. }@H_404_20@
  11. printf("/n"@H_404_20@);@H_404_20@@H_404_20@
  12. return@H_404_20@0;@H_404_20@@H_404_20@
  13. }@H_404_20@
  14. @H_404_20@
  15. int@H_404_20@main(@H_404_20@char@H_404_20@**argv)@H_404_20@@H_404_20@
  16. sqlite3*db;@H_404_20@
  17. char@H_404_20@*zErrMsg=0;@H_404_20@@H_404_20@
  18. int@H_404_20@rc;@H_404_20@@H_404_20@
  19. if@H_404_20@(argc!=3)@H_404_20@@H_404_20@
  20. fprintf(stderr,"Usage:%sDATABASEsql-STATEMENT/n"@H_404_20@,argv[0]);@H_404_20@@H_404_20@
  21. rc=sqlite3_open(argv[1],&db);@H_404_20@
  22. if@H_404_20@(rc)@H_404_20@@H_404_20@
  23. fprintf(stderr,"Can'topendatabase:%s/n"@H_404_20@,sqlite3_errmsg(db));@H_404_20@@H_404_20@
  24. sqlite3_close(db);@H_404_20@
  25. rc=sqlite3_exec(db,argv[2],callback,&zErrMsg);@H_404_20@
  26. if@H_404_20@(rc!=sqlITE_OK)@H_404_20@@H_404_20@
  27. "sqlerror:%s/n"@H_404_20@,zErrMsg);@H_404_20@@H_404_20@
  28. sqlite3_close(db);@H_404_20@
  29. }@H_404_20@
编译语句:arm-linux-gcc -o test_sqlite test_sqlite.c -lsqlite3 -L/home/bks/sqlite3/lib -I/home/bks/sqlite3/include@H_404_20@

需要加入lib和include的路径。

编译完成后使用语句:./test_sqlite test.db "SELECT * FROM phonetable"

这里需要注意的是:我之前在当前目录文件夹下建立了名字:test.db 的数据库,其中包含表格:phonetable

现在是一个高级运用啦:

copy

    #include"sqlite3.h"@H_404_20@@H_404_20@@H_404_20@
  1. int@H_404_20@ncols,87); font-weight:bold; background-color:inherit">char@H_404_20@**values,87); font-weight:bold; background-color:inherit">char@H_404_20@**headers)@H_404_20@@H_404_20@
  2. int@H_404_20@i;@H_404_20@@H_404_20@
  3. for@H_404_20@(i=0;i<ncols;i++)@H_404_20@@H_404_20@
  4. printf("%s=%s\n"@H_404_20@,headers[i],values[i]?values[i]:@H_404_20@"NULL"@H_404_20@);@H_404_20@@H_404_20@
  5. printf("\n"@H_404_20@);@H_404_20@@H_404_20@
  6. return@H_404_20@0;@H_404_20@@H_404_20@
  7. void@H_404_20@doCmd(sqlite3*db,87); font-weight:bold; background-color:inherit">char@H_404_20@*pCmd)@H_404_20@@H_404_20@
  8. char@H_404_20@*errmsg=NULL;@H_404_20@@H_404_20@
  9. if@H_404_20@(sqlite3_exec(db,pCmd,NULL,&errmsg)!=sqlITE_OK){@H_404_20@@H_404_20@
  10. printf("%s\n"@H_404_20@,errmsg);@H_404_20@@H_404_20@
  11. return@H_404_20@;@H_404_20@@H_404_20@
  12. int@H_404_20@main()@H_404_20@@H_404_20@
  13. sqlite3*db=NULL;@H_404_20@
  14. printf("PleaseinputthenameofDB(*.db):\n"@H_404_20@);@H_404_20@@H_404_20@
  15. char@H_404_20@dbname[30];@H_404_20@@H_404_20@
  16. gets(dbname);@H_404_20@
  17. //OpenaDB@H_404_20@@H_404_20@@H_404_20@
  18. int@H_404_20@result=sqlite3_open(dbname,&db);@H_404_20@@H_404_20@
  19. if@H_404_20@(result!=sqlITE_OK){@H_404_20@@H_404_20@
  20. return@H_404_20@;@H_404_20@@H_404_20@
  21. //CreateaTable@H_404_20@@H_404_20@@H_404_20@
  22. char@H_404_20@*createTablesql=@H_404_20@@H_404_20@
  23. "CREATETABLEIFNOTEXISTSPHONETABLE(idintegerprimarykey,nametext,phone_numberinteger)"@H_404_20@;@H_404_20@@H_404_20@
  24. doCmd(db,createTablesql);@H_404_20@
  25. printf("Succeedtocreatetesttablenow.\n"@H_404_20@);@H_404_20@@H_404_20@
  26. //Insert@H_404_20@@H_404_20@@H_404_20@
  27. char@H_404_20@*sql=NULL;@H_404_20@@H_404_20@
  28. sql="INSERTintoPHONETABLE(name,phone_number)values('Jone','15901110265')"@H_404_20@;@H_404_20@@H_404_20@
  29. sql);@H_404_20@
  30. sql="INSERTintoPHONETABLE(name,phone_number)values('Jack','13811907568')"@H_404_20@;@H_404_20@@H_404_20@
  31. doCmd(db,sql);@H_404_20@
  32. "INSERTintoPHONETABLE(name,phone_number)values('Jackson','13811907568')"@H_404_20@);@H_404_20@@H_404_20@
  33. //Show@H_404_20@@H_404_20@@H_404_20@
  34. printf("Showthetable\n"@H_404_20@);@H_404_20@@H_404_20@
  35. sql="SELECT*FROMPHONETABLE"@H_404_20@;@H_404_20@@H_404_20@
  36. int@H_404_20@rc=sqlite3_exec(db,sql,&errmsg);@H_404_20@@H_404_20@
  37. "sqlerror:%s\n"@H_404_20@,0); background-color:inherit">//Delete@H_404_20@@H_404_20@@H_404_20@
  38. printf("Delete'Jack'fromtable\n"@H_404_20@);@H_404_20@@H_404_20@
  39. sql="DELETEFROMphonetablewherename='Jack'"@H_404_20@;@H_404_20@@H_404_20@
  40. 404_20@
  41. //Change@H_404_20@@H_404_20@@H_404_20@
  42. printf("AlterJacksontoMike.\n"@H_404_20@);@H_404_20@@H_404_20@
  43. sql="updatephonetablesetname='Jack'wherename='Jone'"@H_404_20@;@H_404_20@@H_404_20@
  44. }@H_404_20@

这个属于升级版了。操作包括了@H_404_20@

1.建立数据库

2.插入数据;

3.删除数据;

4.修改数据;

5.以及查询数据;

各位看官自己慢慢看吧。

就到这里,后续有新的研究成果在写出来

猜你在找的Sqlite相关文章