Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- AWS
- 본인인증
- AOP
- 본인확인
- deepseek vs chatgpt
- PostgreSQL
- postgis
- ktlin
- 보안
- exception
- Kotlin
- 코틀린
- Spring Boot
- API
- 공동인증서
- Flux
- 인증
- Spring
- Mono
- 딥시크
- docker
- netty
- webflux
- 컨퍼런스
- 로그인
- db
- 허깅 페이스
- IntelliJ
- NGINX
- spring security
Archives
- Today
- Total
[수미수의 개발 브로구]
[QT] QT 데이터 베이스 접속하기 본문
반응형
오라클 접속 하기 샘플 코드
QSqlDatabase::removeDatabase("test");
{
QSqlDatabase db = QSqlDatabase::addDatabase("QOCI", "test");
db.setHostName("localhost");
db.setDatabaseName("test");
db.setUserName("test");
db.setPassword("test");
// 알림 창 띄우기
QMessageBox::warning(this, tr("DataBase Open Error"), tr("%1 %2 %3 %4 Driver %5").arg(parser->getDatabase()).arg(parser->getDbUser()).arg(parser->getDbPass()).arg(parser->getHost()).arg(parser->getDriver()));
if (!db.open()) {
//QMessageBox::critical(this, QObject::tr("DataBase Open Error"), QObject::tr("DataBase Open Error!"));
//QDialog::reject();
qDebug()<<"Database Open Error!";
}
}
Select 샘플 코드
...................
QString sql;
sql = " SELECT ";
sql += " ID, NM ";
sql += " FROM TB_TABLE ";
if (searchField->count() > 0) {
sql += " WHERE ID = '"+searchField->at(0).toUpper()+"' ";
}
sql += " ORDER BY ID ASC, NM ";
model->setQuery(sql, QSqlDatabase::database(UserInfo::getInstance().getDbname()));
if (model->lastError().type() != QSqlError::NoError) {
QMessageBox::critical(this, tr("SQL Error"), model->lastError().text());
}
model->setHeaderData(0, Qt::Horizontal, tr("ID"));
model->setHeaderData(1, Qt::Horizontal, tr("Name"));
proxyModel->setSourceModel(model);
tableWidget->setModel(proxyModel);
while(model->canFetchMore()) {
model->fetchMore();
}
QString sql;
QSqlQuery *query = new QSqlQuery(QSqlDatabase::database(UserInfo::getInstance().getDbname()));
QString tmpNodeName = "";
if(chkNodes->isChecked() == true) tmpNodeName = "allnode";
else tmpNodeName = cboName->currentText();
sql = "SELECT COUNT(*) FROM TB_MON WHERE NODE_NM = '" + tmpNodeName +"'" +" AND MON_NM = '" + txtPTUName->text() +"'";
query->prepare(sql);
query->exec();
if (query->next()) {
int cnt = query->value(0).toInt();
if (cnt > 0) {
QMessageBox::warning(this, tr("Input the data error"), tr("Monitoring data already exists."));
cboName->setFocus();
return;
}
}
...................
Insert 샘플 코드
.....................
QSqlQuery * query = new QSqlQuery(QSqlDatabase::databse(UserInfo::getInstance().getDb());
sql = "INSERT INTO TB_MON VALUES(?,?,?,?,?)";
query->prepare(sql);
query->addBindValue(tmpNodeName);
if(rdoProcess->isChecked() == true){
query->addBindValue("1");
}
if(rdoTcp->isChecked() == true){
query->addBindValue("2");
}
if(rdoUdp->isChecked() == true){
query->addBindValue("3");
}
query->addBindValue(txtPTUName->text());
query->addBindValue(txtPath->text());
query->addBindValue(txtPort->text());
query->exec();
if (query->lastError().type() != QSqlError::NoError) {
QMessageBox::critical(this, "SQL Error", query->lastError().text());
}else {
QMessageBox::information(this, tr("Success message"), MSG0002);
emit changedTable(tr("success"));
}
delete query;
.....................
Update 샘플 코드
.....................
QSqlQuery * query = new QSqlQuery(QSqlDatabase::databse(UserInfo::getInstance().getDb());
sql = "UPDATE TB_MON SET 1 = ?, 2 = ?, 3 = ? WHERE 1 = ? AND 1 = ?";
query->prepare(sql);
if(rdoProcess->isChecked() == true){
query->addBindValue("1");
}
if(rdoTcp->isChecked() == true){
query->addBindValue("2");
}
if(rdoUdp->isChecked() == true){
query->addBindValue("3");
}
query->addBindValue(txtPath->text());
query->addBindValue(txtPort->text());
query->addBindValue(tmpNodeName);
query->addBindValue(txtPTUName->text());
query->exec();
if (query->lastError().type() != QSqlError::NoError) {
QMessageBox::critical(this, "SQL Error", query->lastError().text());
}else {
QMessageBox::information(this, tr("Success message"), MSG0003);
emit changedTable(tr("success"));
}
delete query;
.....................
반응형
'Language & Framework > Qt' 카테고리의 다른 글
[QT] QT F/W 기록 하기 (0) | 2023.09.25 |
---|