#include "csqlfile.h"
#include <QVector>
cSqlFile::cSqlFile( )
{
}
cSqlFile::~cSqlFile( )
{
m_file.close();
}
bool cSqlFile::openFile( QString &name, QString& dataBase )
{
m_file.setFileName( name );
if( !m_file.open(QIODevice::WriteOnly|QIODevice::Text ) )
return false;
m_outStream.setDevice( &m_file );
m_outStream << "USE `";
m_outStream << dataBase;
m_outStream << "`;\n";
return true;
}
int cSqlFile::insertData( QString &table, QVector< QVector < QString> >& data, QVector<int>& dataType, QVector < QString>* pField )
{
int typeLen = dataType.size();
int size = data.size();
if( typeLen < 1 || size < 1 )
return -1;
if( NULL != pField && typeLen != pField->size() )
return -2;
int i = 0, j =0 ;
QString str("LOCK TABLES `");
str += table;
str += "` WRITE;\n";
//QString strTemp;
str += "INSERT INTO `";
str += table;
if ( NULL == pField)
{
str += "` VALUES ";
}
else
{
str += "` ";
for(i =0;i<typeLen;i++)
{
if ( 0 == i )
str += "(";
str += pField->at(i);
if( typeLen-1 == j)
str += ")";
else
str += ",";
}
str += " VALUES ";
}
for(i =0;i<size;i++)
{
int lenTemp = data[i].size();
if( typeLen != lenTemp )
return -3;
if ( 0 != i )
str += ",";
for( j =0;j<typeLen;j++ )
{
if ( 0 == j )
str += "(";
switch (dataType[j])
{
case 0://整型 double 浮点型
str += data[i][j];
break;
case 1: //字符串 日期时间类型
str += "'";
str += data[i][j];
str += "'";
break;
}
if( typeLen-1 == j)
str += ")";
else
str += ",";
}
}
str += ";\n";
str += "UNLOCK TABLES;\n";
m_outStream << str;
//m_outStream.flush();
return 0;
}
qt 封装的类 表根据字段名和值 生成sql语句
需积分: 14 107 浏览量
2022-10-27
17:17:32
上传
评论 2
收藏 2KB ZIP 举报
woquNOKIA
- 粉丝: 61
- 资源: 36
最新资源
- QuestionTwo.java
- QuestionOne.java
- OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR).rar
- 简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- 南京邮电大学数学实验:熟练掌握 Matlab 软件的基本命令和操作
- 简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- 2017校招真题校园招聘真题算法题(37道)Python源码.zip
- 基于单片机protues仿真的多功能自动饮水机系统设计(仿真图、源代码、演示视频)
- 论文《一种修复流程挖掘事件日志中缺失活动标签的深度学习方法》翻译
- 智慧电厂相关资料发电控制的方式
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈