前置知识:
- sql操作类的具体情况
sql server 文件的c++IDE打开及关闭方式
参见:https://blog.csdn.net/qq_45720855/article/details/119755386 - class类中的句柄初始化函数以及列信息查询函数
参见:https://blog.csdn.net/qq_45720855/article/details/119777610 - class类中的do_search函数以及查询函数
参见:https://blog.csdn.net/qq_45720855/article/details/119783195
插入函数1:
参数表:
const string&tablename:插入数据存放表名
vector<string>data:插入数据各列(有序)的值。
执行功能:
将数据插入到数据库中的某表中。(数据不存在缺列情况)
返回值:
返回 1:插入操作执行成功。
返回 0:插入操作执行失败。
使用要点:
data 类型的传参应该注意单引号是否需要。
bool man_sql::single_insert(const string&tablename, vector<string>data)
{
//插入的 SQL 语句生成
string control="insert "+tablename+" values (";
vector<string>::iterator iter;
for(iter=data.begin(); iter<data.end()-1; iter++)
{
control+=*iter+",";
}
control+=*iter+")";
//执行插入操作
if(init_SED(control)==0)
{
cout<<"数据库查询时出错!"<<endl;
return 0;
}
ret=SQLExecDirect(stmt, (SQLCHAR *)control.c_str(), SQL_NTS);
return 1;
}
插入函数2:
参数表:
const string& tablename:
vector<string>& colname:
vector<string>data:
执行功能:
将数据插入到数据库某表中。(只插入部分列)
返回值:
返回 1:插入操作执行成功。
返回 0:插入操作执行失败。
bool man_sql::single_insert(const string&tablename, vector<string>&colname, vector<string>data)
{
//插入的SQL语句生成
string control="insert "+tablename+" (";
vector<string>::iterator iter;
for(iter=colname.begin(); iter<colname.end()-1; iter++)
control+=*iter+",";
control+=*iter+") values (";
for(iter=data.begin(); iter<data.end()-1; iter++)
control+=*iter+",";
control+=*iter+")";
cout<<control<<endl;
//执行插入操作
if(init_SED(control)==0)
{
cout<<"数据插入时出错!"<<endl;
return 0;
}
ret=SQLExecDirect(stmt, (SQLCHAR *)control.c_str(), SQL_NTS);
return 1;
}