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文件。

参考: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;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/juluwangriyue/article/details/125606544
今日推荐