• 数据库 如何在VC6下使用sqlite3


    http://www.sqlite.org/download.html下载:

    解压后得到sqlite3.h,得到的其他文件这里不会用到

    下载第二个,解压后得到sqlite3.dll和sqlite3.def

     

    下面要做的是:利用sqlite3.def生成sqlite3.lib

    ①把sqlite3.def放到VC6的LIB.exe所在目录,例如我的VC是装在G盘的:G:Microsoft Visual StudioVC98Bin

    ②开始菜单->运行->cmd,打开cmd命令行

    (以下括号里的黑色字体是输入的内容)

    ③输入(g:)然后回车切换到g盘目录(因为我VC装在g盘)

    ④输入(cd Microsoft Visual StudioVC98Bin)然后回车切换到LIB.exe所在目录

    ⑤输入命令(LIB /MACHINE:IX86 /DEF:sqlite3.def)然后回车,在同一目录下就会生成了sqlite3.lib文件了,当然还生成了sqlite3.exp,不过这里没用到

    (如果提示丢失mspd60.dll,请到Microsoft Visual StudioCommonMSDev98Bin目录找到mspd60.dll,然后再把它复制到Microsoft Visual StudioVC98Bin目录)

    参考截图:


     

    ⑥用VC6新建一个空的控制台工程,把(sqlite3.h、sqlite3.dll、sqlite3.lib)放到工程文件夹里,

    选择菜单栏的工程-->设置:在连接的(对象/库模块)后面加上sqlite3.lib,然后点确定



     

    ⑦在工程里新建一个cpp文件,运行以下代码:

    Cpp代码  收藏代码
    1. #include <iostream>  
    2. #include "sqlite3.h"  
    3. using namespace std;  
    4.   
    5. int sqlite3_exec_callback (void *data, int nColumn, char **colValues, char **colNames)  
    6. {  
    7.     for (int i = 0; i < nColumn; i++)  
    8.         printf ("%s ", colValues[i]);  
    9.     printf (" ");  
    10.     return 0;  
    11. }  
    12.   
    13. int main(int argc, char** argv)  
    14. {  
    15.     sqlite3 *conn = NULL;  
    16.     char *err_msg = NULL;  
    17.     char sql[200] = "";  
    18.   
    19.     //打开数据库,创建连接  
    20.     if (sqlite3_open("data.db", &conn) != SQLITE_OK) puts ("无法打开!");  
    21.   
    22.       
    23.     //执行SQL,创建表VC6_test  
    24.     sprintf (sql, "CREATE TABLE VC6_test   
    25.                 (id int, name varchar(20), age int)");  
    26.           
    27.     if (sqlite3_exec (conn, sql, NULL, NULL, &err_msg) != SQLITE_OK)  
    28.     {  
    29.         printf ("操作失败,错误代码:%s ", err_msg);  
    30.         exit(-1);  
    31.     }  
    32.   
    33.     //添加10条记录  
    34.     for (int i = 0; i < 10; i++)  
    35.     {  
    36.         //执行SQL  
    37.         sprintf (sql, "INSERT INTO VC6_test   
    38.                     (id, name, age) VALUES   
    39.                     (%d, '%s', %d)", i, "testPeople", i);  
    40.         if (sqlite3_exec (conn, sql, NULL, NULL, &err_msg) != SQLITE_OK)  
    41.         {  
    42.             printf ("操作失败,错误代码:%s ", err_msg);  
    43.             exit(-1);  
    44.         }  
    45.     }  
    46.       
    47.       
    48.     //查询  
    49.     sprintf (sql, "SELECT * FROM VC6_test");  
    50.     sqlite3_exec (conn, sql, &sqlite3_exec_callback, 0, &err_msg);  
    51.   
    52.     //关闭连接  
    53.     if (sqlite3_close(conn) != SQLITE_OK)  
    54.     {  
    55.         printf ("无法关闭,错误代码:%s ", sqlite3_errmsg(conn));  
    56.         exit(-1);  
    57.     }  
    58.   
    59.     puts ("操作成功");  
    60.     return 0;  
    61. }  

      运行结果:



     再次运行由于表已存在,不能再创建,所以出错:



     

  • 相关阅读:
    弄懂JDK、JRE和JVM到底是什么
    精选Java面试题(二)
    精选Java面试题
    HttpPost请求将json作为请求体传入的简单处理方法
    Python在for循环中更改list值的方法
    vue 图片加载失败时,加载默认图片
    移动端,进入页面前空白,添加加载状态
    img 失效时 显示默认图片
    vue 全局组件的引用
    页面到达底部,加载更多
  • 原文地址:https://www.cnblogs.com/vipwtl/p/5916925.html
Copyright © 2020-2023  润新知