数据库配置文件读取代码整理

一小段数据库配置文件

里面描述, 顺次描述  数据库名字,数据库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());
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值