dengkaso 发表于 2009-3-23 14:46:59

【求助】哪位大侠帮小弟看看我错在哪?

我有以下代码,不能执行,打印出错误是“非法的游标状态”?哪位帮我看看。谢谢先

int CVICALLBACK CallbackSaveSetting (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int i,j;
int ValBinaryswitch;
char ValString,ValUnitage;
int ValMax;
char connectionStr;
int CtrlSTRING;
short BufferLength;

switch (event)
{
case EVENT_COMMIT:
      
   for(i=0;i<32;i++)
   {
    GetCtrlVal (panel2, CtrlID, &ValBinaryswitch);
    GetCtrlVal (panel2, CtrlID, ValString); // 取通道名
    GetCtrlVal (panel2, CtrlID, &ValMax);   // 设置通道最大值
    GetCtrlVal (panel2, CtrlID, ValUnitage);    //取通道单位
   }
   
   for(i=0;i<32;i++)
   {
    if(ValBinaryswitch==1)
    {
   SQLDBResetStatement(StateHandle);   //复位一个语句句柄,开始其它操作
   sprintf (connectionStr, "%s%s%s%s%s%i%s","insert into 参数设置 ([参数名],[单位],[最大值]) values ('",ValString,"','",ValUnitage,"','",ValMax,"')");
   j=SQLDBExecImmediate (StateHandle, connectionStr);
    }
   }
   SQLDBLastErrorString (Statementhandle, StateHandle, message, 500, &BufferLength) ;
   if(j!=0)
    MessagePopup("错误",message);
   
   
   
   break;
}
return 0;
}

dingchen 发表于 2009-3-23 19:16:56

你的代码完整吗?,初始化和分配语句做过了吗?

dingchen 发表于 2009-3-23 21:33:22

//得到数据库集操作好后必须关闭数据指针和句柄,否则无法进行其它操作
SQLDBCloseCursor (AccessDb);
SQLDBResetStatement (AccessDb);

dengkaso 发表于 2009-3-23 23:34:55

哦,谢谢版主了!
我知道原因了!
页: [1]
查看完整版本: 【求助】哪位大侠帮小弟看看我错在哪?