qt 操作orcal
来源:互联网 发布:萌牙电动牙刷 知乎 编辑:程序博客网 时间:2024/06/01 22:09
首先要有orcal qt驱动,这个库自己编
m_cimODCDB = QSqlDatabase::addDatabase(szDriver, QUuid::createUuid());
m_cimODCDB.setHostName(szHost);
m_cimODCDB.setDatabaseName(szDataSource);
m_cimODCDB.setUserName(szUser);
m_cimODCDB.setPassword(szPassword);
if (!m_cimODCDB.open())
{
QSqlError err = m_cimODCDB.lastError();
QString adc = err.text();
LOGGER_ERROR(m_loggerPtr, "Open CIMDB database failed");
return false;
}
批量插入
bool CimFileReader::MeasurementToDB(const QMap<int ,MEASUREMENT>& MeasurementData)
{
QSqlQuery sqlQuery(m_cimODCDB);
if (sqlQuery.isActive())
{
LOGGER_ERROR(m_loggerPtr, "insert ODC_TMP_MEASUREMENT failed, sqlquery not active.");
return false;
}
QString sql ;
sql = "INSERT INTO ODC_TMP_MEASUREMENT(RDFID,RESOURCE_ID, MESURE_NAME,TYPE_ID,DATA_SOURCE_ID, MESURE_CODE,DATA_SOURCE,SOURCE_CODE) "
"VALUES(?,?,?,?,?,?,?,?)";
if (!sqlQuery.prepare(sql))
{
LOGGER_ERROR(m_loggerPtr, "insert ODC_TMP_MEASUREMENT failed, prepare failed.");
return false;
}
QVariantList RDFIDS;
QVariantList RESOURCEIDS;
QVariantList MESURENAMES;
QVariantList TYPEIDS;
QVariantList DATASOURCEIDS;
QVariantList CODES;
QVariantList DATASOURCES;
QVariantList SOURCECODES;
for (int i =1;i<=MeasurementData.size();i++)
{
RDFIDS<<MeasurementData[i].RDFID;
RESOURCEIDS<<MeasurementData[i].RESOURCE_ID;
MESURENAMES<<MeasurementData[i].MESURE_NAME;
TYPEIDS<<MeasurementData[i].TYPE_ID;
DATASOURCEIDS<<MeasurementData[i].DATA_SOURCE_ID;
CODES<<MeasurementData[i].CODE;
DATASOURCES<<MeasurementData[i].DATA_SOURCE;
SOURCECODES<<MeasurementData[i].SOURCE_CODE;
}
sqlQuery.addBindValue(RDFIDS);
sqlQuery.addBindValue(RESOURCEIDS);
sqlQuery.addBindValue(MESURENAMES);
sqlQuery.addBindValue(TYPEIDS);
sqlQuery.addBindValue(DATASOURCEIDS);
sqlQuery.addBindValue(CODES);
sqlQuery.addBindValue(DATASOURCES);
sqlQuery.addBindValue(SOURCECODES);
if (!sqlQuery.execBatch())
{
LOGGER_ERROR(m_loggerPtr, "insert ODC_TMP_MEASUREMENT failed, execBatch failed.");
qDebug() << sqlQuery.lastError();
return false;
}
return true;
}
bool CimFileReader::ConnectivityToDB(const QMap<int ,CONNECTIVITY>& ConnectivityData)
{
QSqlQuery sqlQuery(m_cimODCDB);
if (sqlQuery.isActive())
{
LOGGER_ERROR(m_loggerPtr, "insert ODC_TMP_CONNECTIVITY failed, sqlquery not active.");
return false;
}
QString sql ;
sql = "INSERT INTO ODC_TMP_CONNECTIVITY(RDFID,CONNECTIVITY_NMAE, RESOURCE_ID,SOURCE_CODE,DATA_SOURCE_ID) "
"VALUES(?,?,?,?,?)";
if (!sqlQuery.prepare(sql))
{
LOGGER_ERROR(m_loggerPtr, "insert ODC_TMP_CONNECTIVITY failed, prepare failed.");
return false;
}
QVariantList RDFIDS;
QVariantList CONNECTIVITYNMAES;
QVariantList RESOURCEIDS;
QVariantList SOURCECODES;
QVariantList DATASOURCEIDS;
for (int i =1;i<=ConnectivityData.size();i++)
{
RDFIDS<<ConnectivityData[i].RDFID;
CONNECTIVITYNMAES<<ConnectivityData[i].CONNECTIVITY_NMAE;
RESOURCEIDS<<ConnectivityData[i].RESOURCE_ID;
SOURCECODES<<ConnectivityData[i].SOURCE_CODE;
DATASOURCEIDS<<ConnectivityData[i].DATA_SOURCE_ID;
}
sqlQuery.addBindValue(RDFIDS);
sqlQuery.addBindValue(CONNECTIVITYNMAES);
sqlQuery.addBindValue(RESOURCEIDS);
sqlQuery.addBindValue(SOURCECODES);
sqlQuery.addBindValue(DATASOURCEIDS);
if (!sqlQuery.execBatch())
{
LOGGER_ERROR(m_loggerPtr, "insert ODC_TMP_CONNECTIVITY failed, execBatch failed.");
qDebug() << sqlQuery.lastError();
return false;
}
return true;
}
执行存储过程
bool CimFileReader::TmpDBToOdc()
{
QSqlQuery sqlQuery(m_cimODCDB);
if (sqlQuery.isActive())
{
LOGGER_ERROR(m_loggerPtr, "TmpDBToOdc failed, sqlquery not active.");
return false;
}
//不存在就插入
QString sql = " call Insert_To_BASE() ";
if (!sqlQuery.prepare(sql))
{
LOGGER_ERROR(m_loggerPtr, "prepare Insert_To_BASE failed ");
return false;
}
if (!sqlQuery.exec())
{
LOGGER_ERROR(m_loggerPtr, "Insert_To_BASE exec sqlquery failed!");
qDebug() << sqlQuery.lastError();
return false;
}
}
- qt 操作orcal
- orcal数据库基本操作
- Orcal表操作语句
- Orcal数据库用户操作语句
- orcal数据库赋权操作
- orcal
- orcal
- ORCAL
- Orcal 10g安装与操作图解
- Orcal数据库的基本指令操作
- 面向对象、Orcal数据库实现对数据的操作
- orcal 优化
- orcal数据库
- Orcal 知识点
- Orcal 用户权限
- 卸载ORCAL
- Orcal 用户权限
- Orcal优化
- hdu 2035 人见人爱A^B (快速幂)
- 陈怡暖:FED决议措辞偏鹰,黄金先扬后抑险守千二关
- JavaScript学习笔记之作用域链
- Android NFC 开发实例
- 不甘心做硬盘,云存储正在服务化
- qt 操作orcal
- Rails路由
- 执行函数的顺序
- 反编译的问题
- Perl 特殊字符
- ipad/iphone兼容小技巧
- mysql 语句
- 某电网首套调度软交换设备成功投运
- tableView代理方法执行顺序