Qt连接access、Oracle、MySql、SqlServer数据库
2012-12-15 22:02
615 查看
1.连接access数据库
[cpp] view plaincopyprint?
/*连接access数据库*/
QString sDbNm = "accessDb.mdb";
void MainDialog::connectAccess()
{
db = QSqlDatabase::addDatabase("QODBC");
QString dsn = QString("DRIVER={Microsoft Access Driver (*.mdb)}; FIL={MS Access};DBQ=%1;").arg(sDbNm);
db.setDatabaseName(dsn);
//db.setUserName(UserName);
//db.setPassword(Password);
if (db.open())
{
QMessageBox::information(this, tr("提示"), tr("数据库连接成功!"), tr("确定"));
}
else
{
QMessageBox::information(this, tr("提示"), tr("数据库连接失败!"), tr("确定"));
qDebug() <<"error_Access:\n" << db.lastError().text();
}
db.close();
}
注意: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"。)
2.连接SQLServer2000数据库
[cpp] view plaincopyprint?
3.连接oracle数据库
[cpp] view plaincopyprint?
/**连接Oracle数据库
*数据库名:abc
*表名:my_oracle
*用户名:system
*密码:123
*端口号:(默认)1521
*/
void MainDialog::connectOracle(QString sIp, int iPort, QString sDbNm, QString sUserNm, QString sPwd)
{
db = QSqlDatabase::addDatabase("QOCI");
db.setHostName(sIp);
db.setPort(iPort);
db.setDatabaseName(sDbNm);
db.setUserName(sUserNm);
db.setPassword(sPwd);
if (db.open())
{
QMessageBox::information(this, tr("提示"), tr("Oracle数据库连接成功!"), tr("确定"));
}
else
{
QMessageBox::information(this, tr("提示"), tr("Oracle数据库连接失败!"), tr("确定"));
qDebug() <<"error_Oracle:\n" << db.lastError().text();
}
}
4.连接MySql数据库
[cpp] view plaincopyprint?
/**连接MySql数据库
*数据库名:abcn
*表名:my_sql
*用户名:root
*密码:123
*端口号:3306
*/
void MainDialog::connectMySQL(QString sIp, int iPort, QString sDbNm, QString sUserNm, QString sPwd)
{
db = QSqlDatabase::addDatabase("QMYSQL"); // 使用mysql数据库驱动
db.setHostName(sIp); // IP地址
db.setPort(iPort); // 端口号
db.setDatabaseName(sDbNm); // 数据库名称
db.setUserName(sUserNm); // 用户名
db.setPassword(sPwd); // 密码
bool ok = db.open(); // 尝试连接数据库
if(ok)
{
qDebug() << "connect MySql success!";
}
else // 打开数据库失败
{
QMessageBox::information(this, tr("提示"), tr("MySql数据库连接失败!"), tr("确定"));
qDebug() <<"error_MySql:\n" << db.lastError().text();
}
}
对写入ip的控件设置:
//设置ip号
本文来源:http://blog.csdn.net/mingxia_sui/article/details/7724153
[cpp] view plaincopyprint?
/*连接access数据库*/
QString sDbNm = "accessDb.mdb";
void MainDialog::connectAccess()
{
db = QSqlDatabase::addDatabase("QODBC");
QString dsn = QString("DRIVER={Microsoft Access Driver (*.mdb)}; FIL={MS Access};DBQ=%1;").arg(sDbNm);
db.setDatabaseName(dsn);
//db.setUserName(UserName);
//db.setPassword(Password);
if (db.open())
{
QMessageBox::information(this, tr("提示"), tr("数据库连接成功!"), tr("确定"));
}
else
{
QMessageBox::information(this, tr("提示"), tr("数据库连接失败!"), tr("确定"));
qDebug() <<"error_Access:\n" << db.lastError().text();
}
db.close();
}
注意: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"。)
2.连接SQLServer2000数据库
[cpp] view plaincopyprint?
3.连接oracle数据库
[cpp] view plaincopyprint?
/**连接Oracle数据库
*数据库名:abc
*表名:my_oracle
*用户名:system
*密码:123
*端口号:(默认)1521
*/
void MainDialog::connectOracle(QString sIp, int iPort, QString sDbNm, QString sUserNm, QString sPwd)
{
db = QSqlDatabase::addDatabase("QOCI");
db.setHostName(sIp);
db.setPort(iPort);
db.setDatabaseName(sDbNm);
db.setUserName(sUserNm);
db.setPassword(sPwd);
if (db.open())
{
QMessageBox::information(this, tr("提示"), tr("Oracle数据库连接成功!"), tr("确定"));
}
else
{
QMessageBox::information(this, tr("提示"), tr("Oracle数据库连接失败!"), tr("确定"));
qDebug() <<"error_Oracle:\n" << db.lastError().text();
}
}
4.连接MySql数据库
[cpp] view plaincopyprint?
/**连接MySql数据库
*数据库名:abcn
*表名:my_sql
*用户名:root
*密码:123
*端口号:3306
*/
void MainDialog::connectMySQL(QString sIp, int iPort, QString sDbNm, QString sUserNm, QString sPwd)
{
db = QSqlDatabase::addDatabase("QMYSQL"); // 使用mysql数据库驱动
db.setHostName(sIp); // IP地址
db.setPort(iPort); // 端口号
db.setDatabaseName(sDbNm); // 数据库名称
db.setUserName(sUserNm); // 用户名
db.setPassword(sPwd); // 密码
bool ok = db.open(); // 尝试连接数据库
if(ok)
{
qDebug() << "connect MySql success!";
}
else // 打开数据库失败
{
QMessageBox::information(this, tr("提示"), tr("MySql数据库连接失败!"), tr("确定"));
qDebug() <<"error_MySql:\n" << db.lastError().text();
}
}
对写入ip的控件设置:
//设置ip号
QRegExp rx1("^((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)$");
QValidator* inputValueValidator = new QRegExpValidator(rx1, this);
ui->ipLine->setValidator(inputValueValidator);
本文来源:http://blog.csdn.net/mingxia_sui/article/details/7724153
相关文章推荐
- Qt连接access、Oracle、MySql、SqlServer数据库
- C#连接各种数据库代码Access,Sql Server,Oracle,Mysql,IBM DB2,Sybase
- Java:JDBC篇,Connection连接至几种常用数据库(Oracle,MySQL,Access,SQL Server)
- C#连接Access,Sql Server,Oracle,Mysql,IBM DB2,Sybase
- Access/MSSQL/Oracle/MySql获取当前用户连接数
- C#连接4种类型数据库(Access、SQL Server、Oracle、MySQL)
- 正好整理了一下,自己做了个连接数据库的组件,支持SQLSERVER,ACCESS,ORACLE,FoxPro,MySql,IBM DB2,DBF等数据库,并且支持事务处理
- 四种常见数据库的连接方式:Mysql,Oracle,SQLserver,ACCESS
- scala如何连接和操作mysql/oracle/sqlserver数据库
- C#连接4种类型数据库(Access、SQL Server、Oracle、MySQL)
- 连接mysql,oracle,sqlServer数据库的方式
- C#连接4种类型数据库(Access、SQL Server、Oracle、MySQL)
- QT连接Oracle和Mysql的详细步骤,已成功~!
- 数据库连接字符串(MySQL,Oracle,SQL Server2000/2005/2008,SQLite,Access)
- Java连接数据库(mysql,sqlsever,Oracle,access)的调用函数!
- C#连接Access、SQL Server、Oracle、MySQL、DB2和SyBase六种不同数据库的程序源码和需要注意的点
- C#连接4种类型数据库(Access、SQL Server、Oracle、MySQL)
- 使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
- Java连接Mysql,SQL Server, Access,Oracle
- C#连接4种类型数据库(Access、SQL Server、Oracle、MySQL)