qq_37471881 2023-09-22 13:40 采纳率: 0%
浏览 11
已结题

VC中怎么用sql语言联合查询多个加密数据库?

请问VC中怎么实现多个加密数据库文件的联合查询?
比如有两个加密数据库,两个数据库中的表的结构完全一样,加密密码也一样。

sqlite3 * db1;
sqlite3 * db2;
char chsql1[100]="select a,b,c from ABC order by a asc;";

sqlite3_open("db1.db", &db1);
sqlite3_key(db1, pBtPassword, 10);
sqlite3_exec(db1, (const char*)chsql1, callbackFunction, NULL, NULL);

sqlite3_open("db2.db", &db2);
sqlite3_key(db2, pBtPassword, 10);
sqlite3_exec(db2, (const char*)chsql1, callbackFunction, NULL, NULL);

这样执行sql语句的话,只对单个表中的数据根据a进行了排序,导致从这两个数据库文件中读取出数据后,并没有完全按照a进行排序。我现在想要用一个sql语句来读这两个数据库文件,并将获取的数据整体根据a进行排序,请问怎么实现呢?

  • 写回答

17条回答 默认 最新

  • Watch the clown 2023-09-22 13:53
    关注
    获得2.00元问题酬金

    用sqlite的attach把,具体用法可以打开你的网页搜sqlite attach database example

    sqlite3 *db;
    char *errorMsg;
    sqlite3_open("main.db", &db);
    sqlite3_key(db, pBtPassword, 10);
    char attachCmd1[100] = "ATTACH 'db1.db' AS db1";
    sqlite3_exec(db, attachCmd1, 0, 0, &errorMsg);
    
    char attachCmd2[100] = "ATTACH 'db2.db' AS db2";
    sqlite3_exec(db, attachCmd2, 0, 0, &errorMsg);
    
    char query[200] = "SELECT a, b, c FROM db1.ABC UNION ALL SELECT a, b, c FROM db2.ABC ORDER BY a ASC";
    sqlite3_exec(db, query, callbackFunction, 0, &errorMsg);
    sqlite3_close(db);
    
    
    
    评论

报告相同问题?

问题事件

  • 系统已结题 9月30日
  • 创建了问题 9月22日