当前位置:   article > 正文

sqlite学习笔记(1)环境搭建_sqlitestudio没有tab自动补充命令吗

sqlitestudio没有tab自动补充命令吗

 

一、       命令运行平台

学习一样新的先要把环境平台搭建起来,然后自己多实践才能领悟的更快一点。初学时可以参考《sqlite3权威指南》。

首先去官网下载sqlite-tools-win32-x86-3190300.zipsqlite-dll-win64-x64-3200100.zip(注意我的是64位的,如果是32位的下载x86版)

然后在d盘创建一个文件夹D:\sqlite3,把 sqlite3.defsqlite3.dllsqlite3.exe三个文件放进去。打开cmd,先进入D盘,再cd进入sqlite3目录,再运行sqlite3.exe,敲命令时只需敲前几个字母,再按tab键就会自动补齐。如下图创建成功。

clip_image002[4]

然后创建数据库,出错

clip_image004[4]

这是因为之前运行了sqlite3.exe,现在表示数据库状态,怎么能在数据库里创建数据库呢,按ctrl+c退回原目录,再创建数据库就可以了,这时还看不到创建的db文件,一定要先创建一张表之后,才能在目录下看到文件。

   输入sqlite3.exe test.db

 create table test (id integer primary key, value text);

clip_image006[4]

这里要注意一点,命令是没“;”的,sql语句是有“;”的

下面是基本命令介绍:

.dump:这个就是输出你之前对数据库的各种操作命令

.output stdout:输出到屏幕上

.output file.sql:输出到file.sql文件

.read file.sql:把文件里的命令导入到当前数据库并执行

如果命令符是在安装目录,可以这样D:\sqlite3>sqlite3.exe test.db < file.sql,这样就把file.sql导入到test.db里。

二、       visul stdio 2010平台

这个主要参考http://blog.csdn.net/hyxiaohaiyang/article/details/7382551

   在官网下载sqlite-amalgamation-3180000.zip,里面有sqlite3.h文件,首先把从VS2010的安装目录下Microsoft Visual Studio 10.0\VC\bin找到lib.exelink.exe,从VS2010的安装目录下Microsoft Visual Studio 10.0\Common7\IDE找到mspdb100.dll。将lib.exe link.exe mspdb100.dll放到上文所说的D:\sqlite3文件夹里,在D:\sqlite3目录下运行lib /def:sqlite3.def,将会生成sqlite3.lib文件。

clip_image008[4]

然后在vs里新建win32控制台应用工程,选空项目,然后把sqlite3.hsqlite3.lib复制到源码目录,然后添加一个cpp文件,并把输入以下测试代码,现在先不管代码的意思

  1. #include <stdio.h>
  2. #include "sqlite3.h"
  3. //查询的回调函数声明
  4. int select_callback(void * data, int col_count, char ** col_values,
  5. char ** col_Name);
  6. int main(int argc, char * argv[])
  7. {
  8. const char * sSQL1 =
  9. "create table users(userid varchar(20) PRIMARY KEY, age int, birthday datetime);";
  10. char * pErrMsg = 0;
  11. int result = 0;
  12. // 连接数据库
  13. sqlite3 * db = 0;
  14. int ret = sqlite3_open("./test.db", &db);
  15. if (ret != SQLITE_OK)
  16. {
  17. fprintf(stderr, "无法打开数据库: %s", sqlite3_errmsg(db));
  18. return (1);
  19. }
  20. printf("数据库连接成功!\n");
  21. // 执行建表SQL
  22. sqlite3_exec(db, sSQL1, 0, 0, &pErrMsg);
  23. if (ret != SQLITE_OK)
  24. {
  25. fprintf(stderr, "SQL error: %s\n", pErrMsg);
  26. sqlite3_free(pErrMsg);
  27. }
  28. // 执行插入记录SQL
  29. result = sqlite3_exec(db, "insert into users values('张三',20,'2011-7-23');",
  30. 0, 0, &pErrMsg);
  31. if (result == SQLITE_OK)
  32. {
  33. printf("插入数据成功\n");
  34. }
  35. result = sqlite3_exec(db, "insert into users values('李四',20,'2012-9-20');",
  36. 0, 0, &pErrMsg);
  37. if (result == SQLITE_OK)
  38. {
  39. printf("插入数据成功\n");
  40. }
  41. // 查询数据表
  42. printf("查询数据库内容\n");
  43. sqlite3_exec(db, "select * from users;", select_callback, 0, &pErrMsg);
  44. // 关闭数据库
  45. sqlite3_close(db);
  46. db = 0;
  47. printf("数据库关闭成功!\n");
  48. return 0;
  49. }
  50. int select_callback(void * data, int col_count, char ** col_values,
  51. char ** col_Name)
  52. {
  53. // 每条记录回调一次该函数,有多少条就回调多少次
  54. int i;
  55. for (i = 0; i < col_count; i++)
  56. {
  57. printf("%s = %s\n", col_Name[i],
  58. col_values[i] == 0 ? "NULL" : col_values[i]);
  59. }
  60. return 0;
  61. }


然后必须把sqlite.lib添加到工程里,lib有两种,静态的不需要dll,动态的需要链接dll,这里是动态的lib

clip_image010[4]

编译整个工程,出现LINK:fatal error LNK1123:转换到 COFF期间失败:文件无效或损坏,出现这个问题参考http://blog.csdn.net/kevin_mqj/article/details/22981873项目——项目属性——配置属性——连接器——清单文件——嵌入清单改为就可以了。

编译通过后生成exe文件,在debug文件夹里(注意有2debug文件夹,exe文件在外层那个),然后把sqlite.dll放到这个目录下面。运行后又出现“应用程序无法正常启动0xc000007b的错误”,网上搜了一下,主要问题大概是于32位的程序调用了64位的dll或者反过来,由于我的dll64位的,那么说明应用程序是32位,可能需要对vs的环境进行设置。另外一种方法我直接重新下了一个32位的dll替换掉64位就可以了。

          clip_image012[4]

三、       eclipse cdt gcc平台

使用eclipse之前首先要安装jdk,这里jdk要和eclipse的版本对应,然后再安装cdt插件,不同版本的cdt对应着不同的eclipse版本,可以在官网查看对应版本

http://www.eclipse.org/cdt/downloads.php

也可以直接下载带cdteclipse,这样就不用安装插件了

http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/oxygen1a

我使用的版本是eclipse 4.3 cdt8.3 jdk1.6,先安装jdk,再安装插件,然后要安装gcc编译器,一般网上讲的都是mingw,但是这个似乎要在线安装比较麻烦,所以我选择TDM-GCC,软件很小,一键安装就可以,使用都和mingw差不多。

然后把jdk的环境变量设一下就可以了,这个网上讲的很多了,就不说了,TDM-GCC安装后,它的环境变量会自动添加的。这里要注意的是如果想自己使用make命令的话,要把安装目录TDM-GCC-32\bin下的mingw32-make.exe的改为make.exe。如果用eclipse的话就不要管了。

接下来新建项目,如图所示

clip_image014[4]

   然后添加main.c文件,代码和上面的一样,再把sqlite.dllsqlite.h放到工程下,这里eclipse不用添加文件,因为他的工程目录和文件目录是保持同步的,拷到工程目录下就可以了。这里sqlite.dll要重新命名为libsqlite.dll(不改好像也可以),然后右键工程属性—c++构建库里面添加dll路径,路径添加时点+号里的工作空间,找到位置双击就可以了

clip_image016[4]

编译后在debug文件夹下生成sqlite_test2.exe,这时要把sqlite.dll文件拷到这个文件夹下才能运行,点绿色三角形的运行按钮后,运行成功。

clip_image018[4]

如果要debug,工程目录不能为中文,点击虫子按钮右边三角形下拉的调试配置选项

clip_image020[4]

把原来的gdb改为

clip_image022[4]

这样就可以单步调试了

clip_image024[4]

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/173895
推荐阅读
相关标签
  

闽ICP备14008679号