数据库为SQL.
下面代码在一个while语句中,运行出现无效的描述符索引,问题出现在if语句中的m_recordset->GetFieldValue(temp,varvalue);
为什么if语句外面可以给ok1,ok2,ok3赋值,而if语句内则出现“无效的描述符索引”的错误?
要怎样修改?小弟先谢过了,^_^
int ok1,ok2,ok3;
m_recordset->GetFieldValue(14,varvalue);
ok1=varvalue.m_iVal;
m_recordset->GetFieldValue(15,varvalue);
ok2=varvalue.m_iVal;
m_recordset->GetFieldValue(16,varvalue);
ok3=varvalue.m_iVal; //需要回访的条件
if((year1<=sysyear && time1days <= sysnum && ok1==0)||(year2<=sysyear&&time2days<=sysnum&&ok2==0)||(year3<=sysyear&&time3days<=sysnum&&ok3==0))
{
int temp=0;
// MessageBox("有");
m_recordset->GetFieldValue(temp,varvalue);
m_h_list.InsertItem(i,varvalue.m_pstring->GetBuffer(1)); m_recordset->GetFieldValue(1,varvalue);
m_h_list.SetItemText(i,1,varvalue.m_pstring->GetBuffer(1));
}
m_recordset->MoveNext();
i++;
UpdateData(FALSE);
下面代码在一个while语句中,运行出现无效的描述符索引,问题出现在if语句中的m_recordset->GetFieldValue(temp,varvalue);
为什么if语句外面可以给ok1,ok2,ok3赋值,而if语句内则出现“无效的描述符索引”的错误?
要怎样修改?小弟先谢过了,^_^
int ok1,ok2,ok3;
m_recordset->GetFieldValue(14,varvalue);
ok1=varvalue.m_iVal;
m_recordset->GetFieldValue(15,varvalue);
ok2=varvalue.m_iVal;
m_recordset->GetFieldValue(16,varvalue);
ok3=varvalue.m_iVal; //需要回访的条件
if((year1<=sysyear && time1days <= sysnum && ok1==0)||(year2<=sysyear&&time2days<=sysnum&&ok2==0)||(year3<=sysyear&&time3days<=sysnum&&ok3==0))
{
int temp=0;
// MessageBox("有");
m_recordset->GetFieldValue(temp,varvalue);
m_h_list.InsertItem(i,varvalue.m_pstring->GetBuffer(1)); m_recordset->GetFieldValue(1,varvalue);
m_h_list.SetItemText(i,1,varvalue.m_pstring->GetBuffer(1));
}
m_recordset->MoveNext();
i++;
UpdateData(FALSE);
如果不行,换GetCollect取值试试..
试试 m_recordset->GetFieldValue(short(0),varvalue);可不可以
在有的驱动中,必须先读a,然后再读b,否则就出现这样的问题.
我把 if 中的语句提到ok1,ok2,ok3赋值语句的前面就不会出现这个问题了。但是提到前面去就达不到程序的要求了。
用GetCollect怎么取值?
http://tele.126disk.com/down.aspx?down=ok&filepath=zxh0528%2f%b2%a1%c8%cb%bb%d8%b7%c3%cf%b5%cd%b3%2b%ca%fd%be%dd%bf%e2.rar