Qt操作dbf数据库

QtDbfHelper.h文件

#pragma once

#include <QObject>
#include <qsql.h>
#include <qsqldatabase.h>
#include <qsqlquerymodel.h>
#include <qsqlrecord.h>
#include <qsqlquery.h>
#include <qsqlfield.h>
class QtDbfHelper : public QObject
{
   
   
	Q_OBJECT
private:
	QSqlDatabase m_dbconn;
public:
	QtDbfHelper(QObject *parent = nullptr);
	~QtDbfHelper();
public:
	bool ConnectDB(const QString& dbFilePath);//dbFilePath指的是dbf所在路径,而不是.dbf文件
	QSqlQueryModel* QueryModel(const QString& tabelName);//获取整个table数据模型
	QSqlQueryModel* ExecuteScalar(const QString& sql); //sql 查询 数据操作
	bool ExecuteNonQuery(const QString& sql); //sql 增,删,改  数据操作
	bool ExistsTable(const QString& tableName);
};

QtDbfHelper.cpp文件

#include "QtDbfHelper.h"

QtDbfHelper::QtDbfHelper(QObject *parent): QObject(parent)
{
   
   
}

QtDbfHelper::~QtDbfHelper()
{
   
   
	if (m_dbconn.isValid() && m_dbconn.isOpen())
	{
   
   
		m_dbconn.close();
	}
}

bool QtDbfHelper::ConnectDB(const QString& dbFilePath)
{
   
   
	bool bResult = false;
	//获取是否存在有数据库连接 
	m_dbconn = QSqlDatabase::database(dbFilePath);
	if (m_dbconn.isValid())//存在连接直接退出
	{
   
   
		bResult = true;
	}
	else
	{
   
   
		//创建dbFilePath路径数据库连接 
		m_dbconn = QSqlDatabase::addDatabase("QODBC", dbFilePath);
		QString connStr = QString("Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=%1;Exclusive=No;").arg(dbFilePath);
		m_dbconn.setDatabaseName(connStr);
		bResult = m_dbconn.open();
	}

	return bResult;
}

QSqlQueryModel* QtDbfHelper::QueryModel(const QString& tabelName)
{
   
   
	QSqlQueryModel* pQueryModel = nullptr;
	if (m_dbconn.isOpen(
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农的砖块

你的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值