2014-12-04 3 views
1

데이터베이스 연결을 확인하기위한 간단한 GUI를 설계했습니다. DB 이름, 호스트 이름, 사용자 이름, 암호, 포트 등과 같은 DB 연결 매개 변수는 GUI에서 입력되며 출력은 연결에 따라 RED 또는 GREEN 이미지가됩니다.정수 변수로 사용하기 위해 linedit()의 문자열 입력을 int로 변환합니다.

내가 오라클 OCI 플러그인을 설정 한

(DB는 오라클 10g)

및 수행 한 following--

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 
    } 
} 

}

이제이 표시되어 error-- /홈/aj/MY_QT_WORK/DB_connection_test/mainwindow.cpp : 19 : 오류 : 'QSqlDatabase :: setPort (QString &)에 대한 호출과 일치하는 함수 없음'

어떤 아이디어 ???

답변

4

당신은 그것으로 작성할 수

db.setPort(PortNO.toInt()); 

그러나 당신이 PORTNO 문자열을 정수 값으로 정말 전환 할 수 있는지가 더 정확성. 따라서 성공적인 전환을 나타내는 플래그를 사용할 수 있습니다.

bool ok; 
int portNumber = PortNO.toInt(&ok); 

if (!ok) { 
    qDebug() << "The port number is incorrect"; 
    // return? 
} 
관련 문제