zoukankan      html  css  js  c++  java
  • 数据库 如何在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. }  

      运行结果:



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



     

  • 相关阅读:
    校验XX是否在有效期内
    Thymleaf js直接获取后台传过来的对象或者对象的属性以及map
    H5新特性之data-*
    Thymleaf中th:each标签遍历list如何获取index
    SpringBoot图片上传(三)——调用文件上传项目的方法(同时启动两个项目)
    根据状态码,展示不同的文本,两种方法简单讨论
    列表前台验空的必要性
    thymleaf模板截取日期的年月日,去掉时分秒
    javaWeb锁屏的简单实现
    svn上check下来的项目,用idea打开,菜单栏没有svn工具解决办法
  • 原文地址:https://www.cnblogs.com/vipwtl/p/5916925.html
Copyright © 2011-2022 走看看