mysql COM组件中C API下记录集操作的问题 环境:vc6.0 数据库mysql。连接数据库后,查询一个记录集有n行m列记录,现在一行行读取字段给重新定义的n个变量 写入另外的表里面。现在问题是:mysql c api如何操作获取第一行每一列的值给新定义的变量? 如何在写入的时候进行事务控制? 最好能给我一个事例Demo,多谢大虾们了,在线等,解决问题就给分 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int main(){ MYSQL mysql; MYSQL_RES * res ; MYSQL_FIELD * fd ; MYSQL_ROW row ; int id[10000]; double result[10000][8]; vector<string> v; if(mysql_init(&mysql) == NULL) { std::cout<<"init mysql data status fail"<<std::endl; return false;}else{ std::cout<<"init mysql data status success"<<std::endl;}if(NULL == mysql_real_connect(&mysql,"localhost","root","","wsnss",MYSQL_PORT,NULL,0)){ std::cout<<"connect database fail"<<std::endl<<mysql_error(&mysql)<<std::endl;; return false;}else{ std::cout<<"connect database success"<<std::endl;}char szSqlText[500]="";int j = 0;sprintf(szSqlText,"%s","select * from data_receive ");if (mysql_query( &mysql, szSqlText))//进行数据检索{ //执行SQL语句出错 cout<<"query error"<<endl; mysql_close( &mysql ) ; return FALSE ;} else { res = mysql_store_result( &mysql ) ; int i; while((row = mysql_fetch_row(res))) { id[j] = atoi(row[0]); for (i = 1; i < mysql_num_fields(res); i++) { result[j][i-1] = atof(row[i]); } j++; } } for(int i = 0 ; i < 10000; i++){ if(i>=j) break; char str[10000]; stringstream ss; ss<<"insert into data_receive(ID,data1,data2,data3, data4,data5,data6,data7,data8)values('"<<id[i]<<"','"<< result[i][0]<<"','"<<result[i][1]<<"','"<<result[i][2]<<"','"<< result[i][3]<<"','"<<result[i][4]<<"','"<<result[i][5]<<"','"<< result[i][6]<<"','"<<result[i][7]<<"');"; string s = ss.str(); v.push_back(s); }for(vector<string>::iterator iter = v.begin(); iter != v.end(); ++iter){ if(mysql_query(&mysql,(*iter).c_str())!=0) { std::cout<<"execute insert syntax fail"<< std::endl<<mysql_error(&mysql)<<endl; mysql_close(&mysql); return 1; }} mysql_free_result(res); mysql_close(&mysql); return 0;} oyljerry , ss<<"insert into data_receive(ID,data1,data2,data3, data4,data5,data6,data7,data8)values('"<<id[i]<<"','"<< result[i][0]<<"','"<<result[i][1]<<"','"<<result[i][2]<<"','"<< result[i][3]<<"','"<<result[i][4]<<"','"<<result[i][5]<<"','"<< result[i][6]<<"','"<<result[i][7]<<"');"; string s = ss.str(); 这个语句中“<<”是干嘛的? 是用来连接的字符吗? vs2008 cannot open file mfc80ud.lib? 用CFile类进行写文件操作 桌面天天换 关于CEditView的一个问题 求助,请问私有数据在这里如何被访问那? 登陆源码 高分求有causevalidate属性的透明控件。给200分;) 控件随窗口最大化问题! 急需帮助!!!火急 表格控件的应用 MFC计数器 暂停 assertion failed: wincore.cpp line 341
{
MYSQL mysql;
MYSQL_RES * res ;
MYSQL_FIELD * fd ;
MYSQL_ROW row ;
int id[10000];
double result[10000][8];
vector<string> v; if(mysql_init(&mysql) == NULL)
{
std::cout<<"init mysql data status fail"<<std::endl;
return false;
}
else
{
std::cout<<"init mysql data status success"<<std::endl;
}if(NULL == mysql_real_connect(&mysql,"localhost","root","","wsnss",MYSQL_PORT,NULL,0))
{
std::cout<<"connect database fail"<<std::endl<<mysql_error(&mysql)<<std::endl;;
return false;
}
else{
std::cout<<"connect database success"<<std::endl;
}char szSqlText[500]="";
int j = 0;sprintf(szSqlText,"%s","select * from data_receive ");
if (mysql_query( &mysql, szSqlText))
//进行数据检索
{
//执行SQL语句出错
cout<<"query error"<<endl;
mysql_close( &mysql ) ;
return FALSE ;
}
else
{
res = mysql_store_result( &mysql ) ;
int i;
while((row = mysql_fetch_row(res))) {
id[j] = atoi(row[0]);
for (i = 1; i < mysql_num_fields(res); i++)
{
result[j][i-1] = atof(row[i]);
}
j++;
}
}
for(int i = 0 ; i < 10000; i++)
{
if(i>=j)
break;
char str[10000];
stringstream ss; ss<<"insert into data_receive(ID,data1,data2,data3, data4,data5,data6,data7,data8)values('"<<id[i]<<"','"<<
result[i][0]<<"','"<<result[i][1]<<"','"<<result[i][2]<<"','"<<
result[i][3]<<"','"<<result[i][4]<<"','"<<result[i][5]<<"','"<<
result[i][6]<<"','"<<result[i][7]<<"');";
string s = ss.str();
v.push_back(s);
}
for(vector<string>::iterator iter = v.begin(); iter != v.end(); ++iter)
{
if(mysql_query(&mysql,(*iter).c_str())!=0)
{
std::cout<<"execute insert syntax fail"<<
std::endl<<mysql_error(&mysql)<<endl;
mysql_close(&mysql);
return 1;
}
}
mysql_free_result(res);
mysql_close(&mysql);
return 0;
}
result[i][0]<<"','"<<result[i][1]<<"','"<<result[i][2]<<"','"<<
result[i][3]<<"','"<<result[i][4]<<"','"<<result[i][5]<<"','"<<
result[i][6]<<"','"<<result[i][7]<<"');";
string s = ss.str();
这个语句中“<<”是干嘛的? 是用来连接的字符吗?