一小段数据库配置文件
里面描述, 顺次描述 数据库名字,数据库IP地址,用户密码,用户密码.端口..后面一句(目前不清楚),UTF-8格式
<?xml version='1.0' encoding='utf-8'?>
<db>
<item value="cadb" name="dbName"/>
<item value="10.12.10.169" name="host"/>
<item value="cipas" name="user"/>
<item value="cipas" name="passwd"/>
<item value="1521" name="port"/>
<item value="DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=D:/radprod.mdb;" name="dsn"/>
</db>
在类中读取这个配置文件cpp文件
void OracleManager::InitDBXMLConfig()
{
QString filepath = QCoreApplication::applicationDirPath()+tr("/Config/DB.xml");
QFile file(filepath);
QXmlStreamReader xmlReader;
if(file.open(QFile::ReadOnly | QFile::Text))
{
xmlReader.setDevice(&file);
QDomDocument pDomDoc;
if (!pDomDoc.setContent(&file))
{
file.close();
return;
}
QDomElement docElem = pDomDoc.documentElement();
QDomNode n = docElem.firstChild();
while (!n.isNull())
{
QDomElement e = n.toElement(); //将节点转换为元素
if (!e.isNull())
{
if (e.attribute("name") == "dbName") m_dbName = e.attribute("value");
else if (e.attribute("name") == "host") m_host = e.attribute("value");
else if (e.attribute("name") == "user") m_user = e.attribute("value");
else if (e.attribute("name") == "passwd") m_passwd = e.attribute("value");
else if (e.attribute("name") == "port") m_port = e.attribute("value").toInt();
}
n = n.nextSibling();
}
}
file.close();
}
这样打开xml文件,并读取文件内容,给一些全局变量设置初始值,m_dbName........文件内容设置到数据库QSqlDatabase,,并连接.ORACL数据库
InitDBXMLConfig();
m_db_oraclel = QSqlDatabase::addDatabase("QOCI","QOCI");
m_db_oraclel.setDatabaseName(m_dbName);
m_db_oraclel.setHostName(m_host);
m_db_oraclel.setPort(m_port);
m_db_oraclel.setUserName(m_user);
m_db_oraclel.setPassword(m_passwd);
if (!m_db_oraclel.open())
{
QSqlError err = m_db_oraclel.lastError();
m_db_oraclel.close();
QMessageBox::critical(NULL,tr("提示"),err.text());
}