解决方案 »

  1.   


    程序直接就意外中断了,没有弹出提示信息。意外发生在pRecordset->Open(bstrSQL,pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);位置。
      

  2.   

    另外,_bstr_t bstrSQL="SELECT * FROM TomProperty WHERE ( name LIKE '%%f%%' )";中的 %%f%% 写成 %%f 或 f%% 都没有问题,但是f两边同时出现%就会异常。很是奇怪。我猜测C++向SQL传递过程中,把%f认为了特殊的字符。
      

  3.   

    这个数据库组件好奇怪,似乎是用 sprintf 拼 SQL 的,所以 % 要写成 %%。
    看来语法解析还是有问题。只能用 CHARINDEX() 来代替了。
      

  4.   

    真的好奇怪,要不试下楼上说的CHARINDEX()
    效果上,正则的PATINDEX()也可以达到效果