【问题标题】:Qt how to open SQL Compact Server file .sdfQt如何打开SQL Compact Server文件.sdf
【发布时间】:2015-08-28 19:47:13
【问题描述】:

我正在尝试使用 Qt 打开一个 SQL Compact Server 文件 .sdf。 我有以下代码:

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("C:\\testresults.sdf");
bool Success = db.open();

sprintf(writeToMonitorBuffer, "dblastError = %s", (const char *)db.lastError().text().toLatin1());
writeToMonitor(writeToMonitorBuffer);

sprintf(writeToMonitorBuffer, "db.open(): Success/Fail = %s", Success ? "Pass" : "Fail");
writeToMonitor(writeToMonitorBuffer);

我收到错误消息:

dblastError = [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified QODBC3: Unable to connect

我得到:

db.open(): Success/Fail = Fail

我该如何解决这个问题?

【问题讨论】:

  • 你应该修改帖子以正确格式化代码,这样几乎无法阅读......
  • 过去我用过
    db.setDatabaseName("Driver={Microsoft Access Driver (.mdb, *.accdb)};DSN='';DBQ=C: \\temp\\TestEng_TestDatabase.accdb");用于连接访问数据库。好像我应该做类似的事情, db.setDatabaseName("Driver={SQL Server (.sdf)};DSN='';DBQ=C:\\testresults.sdf");但我不确定 sdf 文件的 Driver={???} 是什么。

标签: c++ sql-server database qt sdf


【解决方案1】:

\ 在 C++ 中用于escape sequences,所以你需要这样做:

db.setDatabaseName("C:\\testresults.sdf");

【讨论】:

    猜你喜欢
    • 2010-12-29
    • 2011-05-03
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    相关资源
    最近更新 更多