我在用vc写程序,写随机数插入数据如下:
for (int i=0;i<20;i++)
{
srand((unsigned)time(NULL)); /*设置种子,并生成伪随机序列*/ for( int zhang1_times=0;zhang1_times<10000;zhang1_times++)
{
unsigned int x ,MAX = 30000; x = rand() % MAX; // 产生[0,MAX)
unsigned long id =dizi + x ;//随机产生
sprintf(szsql,"SELECT * FROM map_compar where id='%d' ", id);
if (mysql_real_query(&mysql, szsql, strlen(szsql)) != 0) {
}
m_res = mysql_store_result(&mysql);
int num_aa= mysql_num_rows(m_res);
if (num_aa==1)
{
m_row = mysql_fetch_row(m_res) ;
int type1 = atoi(m_row[6]);
if (type1==0)
{
sprintf(szsql,"update map_compar set type='7' where id='%d' ", id);
mysql_query(&mysql,szsql);
}else{
zhang1_times = zhang1_times-1;
}
}else{
zhang1_times= zhang1_times-1;
}
}
dizi+=30000;
}会出现错误: 0x10007e54 指令引用的0x00000000内存。该内存不能为读,请教这是为什么?我想插入20w,只插入了6w左右就这样了!
for (int i=0;i<20;i++)
{
srand((unsigned)time(NULL)); /*设置种子,并生成伪随机序列*/ for( int zhang1_times=0;zhang1_times<10000;zhang1_times++)
{
unsigned int x ,MAX = 30000; x = rand() % MAX; // 产生[0,MAX)
unsigned long id =dizi + x ;//随机产生
sprintf(szsql,"SELECT * FROM map_compar where id='%d' ", id);
if (mysql_real_query(&mysql, szsql, strlen(szsql)) != 0) {
}
m_res = mysql_store_result(&mysql);
int num_aa= mysql_num_rows(m_res);
if (num_aa==1)
{
m_row = mysql_fetch_row(m_res) ;
int type1 = atoi(m_row[6]);
if (type1==0)
{
sprintf(szsql,"update map_compar set type='7' where id='%d' ", id);
mysql_query(&mysql,szsql);
}else{
zhang1_times = zhang1_times-1;
}
}else{
zhang1_times= zhang1_times-1;
}
}
dizi+=30000;
}会出现错误: 0x10007e54 指令引用的0x00000000内存。该内存不能为读,请教这是为什么?我想插入20w,只插入了6w左右就这样了!
你需要调试程序。for (int i=0;i<20;i++)
{
srand((unsigned)time(NULL)); /*设置种子,并生成伪随机序列*/
for( int zhang1_times=0;zhang1_times<10000;zhang1_times++)
{
unsigned int x ,MAX = 30000;
x = rand() % MAX; // 产生[0,MAX) unsigned long id =dizi + x ;//随机产生
sprintf(szsql,"SELECT * FROM map_compar where id='%d' ", id);
if (mysql_real_query(&mysql, szsql, strlen(szsql)) != 0)
{
// 既然要判断是否出错,难道不能打印出错误消息, break出来
printf("fatal error: %s\n", mysql_error(&mysql));
break;
}
m_res = mysql_store_result(&mysql);
int num_aa= mysql_num_rows(m_res);
if (num_aa==1)
{
m_row = mysql_fetch_row(m_res) ;
// 没办法,只能fetch完之后再free
mysql_free_result(m_res);
int type1 = atoi(m_row[6]);
if (type1==0)
{
sprintf(szsql,"update map_compar set type='7' where id='%d' ", id);
mysql_query(&mysql,szsql);
}
else
{
zhang1_times = zhang1_times-1;
}
}
else
{
mysql_free_result(m_res);
zhang1_times= zhang1_times-1;
}
}
dizi+=30000;
}