我设计了一个简单的GUI来检查数据库连接。数据库连接参数,如数据库名称,主机名,用户名,密码,端口等,将从GUI输入,输出将是红色或绿色图像,具体取决于连接。
我已经设置了oracle OCI插件(DB是oracle 10g)
并完成以下操作 -
void MainWindow::on_GoButton_clicked()
{
QString HostN = ui->HostNameEdit->text();
QString DatabaseN = ui->DatabaseNameEdit->text();
QString UserN = ui->UserNameEdit->text();
QString PassWD = ui->PasswordEdit->text();
QString PortNO = ui->PortEdit->text();
QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
db.setHostName(HostN);
db.setDatabaseName(DatabaseN);
db.setUserName(UserN);
db.setPassword(PassWD);
db.setPort(PortNO);
while(true)
{
if (db.open())
{
// do this
}
else
{
//do that
}
}
}
现在显示错误 - /home/aj/MY_QT_WORK/DB_connection_test/mainwindow.cpp:19:错误:没有用于调用'QSqlDatabase :: setPort(QString&)'的匹配函数
任何想法???
答案 0 :(得分:4)
你可以把它写成:
db.setPort(PortNO.toInt());
但是为了更加正确,你必须确保PortNO字符串真的可以转换为整数值。因此,您可以使用一个标志来指示成功转换:
bool ok;
int portNumber = PortNO.toInt(&ok);
if (!ok) {
qDebug() << "The port number is incorrect";
// return?
}