• C++读写数据库


    官网下载地址:https://www.sqlite.org/download.html

    1、 下载sqlite文件

    SQLite版本为SQLite 3.39.0,相关文件如下。
    sqlite-dll-win64-x64-3390000.zip:包含sqlite3.def、sqlite3.dll文件。
    sqlite-amalgamation-3390000.zip:包含sqlite3.h 文件。

    2、 生成sqlite3.lib

    • sqlite-dll-win64-x64-3390000.zip文件解压到D:\ sqlite。
    • 运行Visual Studio 2019 lib命令行程序。
    • 依次执行控制台命令。
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>cd /d D:\ProgramFiles\sqlite-dll-win64-x64-3390000
    
    D:\ProgramFiles\sqlite-dll-win64-x64-3390000>lib.exe /def:sqlite3.def /machine:ix64
    Microsoft (R) Library Manager Version 14.29.30133.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    LINK : warning LNK4012: 值“ix64”无效,必须是“ARM, ARM64, ARM64X, EBC, X64, or X86”;已忽略选项
    LINK : warning LNK4068: 未指定 /MACHINE;默认设置为 X64
      正在创建库 sqlite3.lib 和对象 sqlite3.exp
    
    D:\ProgramFiles\sqlite-dll-win64-x64-3390000>lib.exe /def:sqlite3.def /machine:X64
    Microsoft (R) Library Manager Version 14.29.30133.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
      正在创建库 sqlite3.lib 和对象 sqlite3.exp
    即可生成sqlite3.lib文件。
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    参考:SQLite - C/C++
    参考:C/C++使用SQLite步骤及示例

    3、测试程序

    #include <stdio.h>
    #include <stdlib.h>
    #include <sqlite3.h>
    
    //int main(int argc, char* argv[])
    //{
    //    sqlite3* db;
    //    char* zErrMsg = 0;
    //    int rc;
    //
    //    rc = sqlite3_open("test.db", &db);
    //
    //    if (rc) {
    //        fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
    //        exit(0);
    //    }
    //    else {
    //        fprintf(stderr, "Opened database successfully\n");
    //    }
    //    sqlite3_close(db);
    //}
    
    static int callback(void* NotUsed, int argc, char** argv, char** azColName) {
        int i;
        for (i = 0; i < argc; i++) {
            printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
        }
        printf("\n");
        return 0;
    }
    
    int main(int argc, char* argv[])
    {
        sqlite3* db;
        char* zErrMsg = 0;
        int  rc;
        char* sql;
    
        /* Open database */
        rc = sqlite3_open("test.db", &db);
        if (rc) {
            fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
            exit(0);
        }
        else {
            fprintf(stdout, "Opened database successfully\n");
        }
    
        /* Create SQL statement */
        sql = "CREATE TABLE COMPANY("  \
            "ID INT PRIMARY KEY     NOT NULL," \
            "NAME           TEXT    NOT NULL," \
            "AGE            INT     NOT NULL," \
            "ADDRESS        CHAR(50)," \
            "SALARY         REAL );";
    
        /* Execute SQL statement */
        rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
        if (rc != SQLITE_OK) {
            fprintf(stderr, "SQL error: %s\n", zErrMsg);
            sqlite3_free(zErrMsg);
        }
        else {
            fprintf(stdout, "Table created successfully\n");
        }
        sqlite3_close(db);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68

    在这里插入图片描述

  • 相关阅读:
    python后端,一个账户,多设备登录管理
    for循环中易混的点-------跳出循环的条件
    Spring Boot 集成 ElasticSearch
    Solon 1.8.3 发布,云原生微服务开发框架
    使用LocalForage进行浏览器端数据存储
    MYSQL之主从复制
    2023最新最全【Python3.11.3】下载安装零基础教程【附安装包】
    paddleocr的cpp_infer在Liunx下编译部署
    Vision-Centric BEV Perception: A Survey (以视觉为中心的BEV感知综述)论文笔记
    视频播放 (二) 自定义 MediaPlayer
  • 原文地址:https://blog.csdn.net/juluwangriyue/article/details/125606544