Qt远程连接access数据库

一:连接代码。

  1. /*连接access数据库*/  
  2. QString sDbNm = "accessDb.mdb";  
  3. void MainDialog::connectAccess()  
  4. {  
  5.     db = QSqlDatabase::addDatabase("QODBC");  
  6.     QString dsn = QString("DRIVER={Microsoft Access Driver (*.mdb)}; FIL={MS Access};DBQ=%1;").arg(sDbNm);  
  7.     db.setDatabaseName(dsn);  
  8.     db.setUserName(UserName);  
  9.     db.setPassword(Password);  
  10.     if (db.open())  
  11.     {  
  12.         QMessageBox::information(this, tr("提示"), tr("数据库连接成功!"), tr("确定"));  
  13.     }  
  14.     else  
  15.     {  
  16.         QMessageBox::information(this, tr("提示"), tr("数据库连接失败!"), tr("确定"));  
  17.         qDebug() <<"error_Access:\n" << db.lastError().text();  
  18.     }  
  19.     db.close();  
  20. }  

注意:QString dsn = QString("DRIVER={Microsoft Access Driver(*.mdb)}; FIL={MS Access};DBQ=%1;").arg(sDbNm); 

由于现在access数据库的后缀名有两种格式,老版的.mdb和2007版的.accdb。

为了确保两种都可以连接,则dsn中的DRIVER要改成这样:

DRIVER={Microsoft Access Driver (*.mdb, *.accdb);


(数据库文件路径(sDbNm)一定要写绝对路径,否则就会报错说:

"[Microsoft][ODBC Microsoft Access Driver] 文件名无效。 QODBC3:Unable to connect"。)


二:远程连接。

搞这个远程呢,我也查了很多资料,由于什么都不懂,所以看什么信什么,搞的我天花乱坠,大家都是各说纷云啊!

而最后呢我只试了两种方法(成功的哦!)

1.将数据库文件放在服务器上共享。

  在访问的时候DBQ=//服务器ip/共享文件夹/共享数据库(比如:DBQ=//192.168.1.255/test/test.mdb).

2.自己编写客户端与服务器代码。

  客户端将数据库名及用户名密码发送到服务器端;

  由服务器端程序来连接并操作access,然后将执行结果再发送到客户端。

OK,access搞完了,真是应了那句老话:会了不难,难了不会!

后几篇会介绍一下其它数据库的连接...






你可能感兴趣的:(Qt远程连接access数据库)