1. 利用VC进行数据库编程,执行一条SQL语句,例如插入操作,若发生有键的冲突,或不满足某些约束的话,程序会自动弹出一条警告信息,说有什么什么问题的。就是有没办法截取那些异常,然后改变那些提示信息??因为它本来的警告信息比较不人性化。如果执行一条语句只会发生一种冲突的话,那样就比较好办,但是如果执行一条语句可能会出现几种冲突,那如何区别这些冲突,SQL SERVER的这些警告信息有无什么编码的??2. 给对话框的某个EDIT控件绑定一个变量,在UPDATE的时候若所输入的值与变量类型不匹配的话,如:绑定的是一个浮点类型输入却是字符串类型的,程序会弹出一个警告信息,有无办法截取这种信息然后修改它??重写DDX的话我还不大会

解决方案 »

  1.   

    1.可以用比如
    try
    {
         Open();
         //或者Update();等等你的操作
    }
    catch(CDBException *e)
    {
        //你的警告AfxMessageBox("....");
    }
      

  2.   

    2.我是用sscanf();
    比如绑定的是浮点类型m_fVal;ID: IDC_VAL
    GetDlgItem(IDC_VAL)->GetWindowText(str);
    if(sscanf((LPCSTR)str, _T("%f"), &m_fVal)< 0)

         AfxMessageBox(_T("转换失败"));
    }
      

  3.   


    这样的话应该是可以的,不过用起来似乎不够方便@[email protected]
      

  4.   


    还有很多异常处理的
    try
    {
    }
    catch(CDBException *e)
    {}
    catch(CFileException *e)
    {}
    catch(CMemoryException *e)
    {
    }
    catch(CException *e)
    {}