日期:2014-05-17  浏览次数:20927 次

调用SQLSERVER数据库时,SQL的LIKE语句动态绑定参数是,检索不到数据。。。
调用SQLSERVER数据库时,SQL的LIKE语句动态绑定参数,检索不到数据。。。 DB中明明有数据啊。。。
换成ORACLE的数据库,就能检索到数据了,难道写法不一样??ODBC的方式。。。


// 取得连接此处省略

sql=" SELECT * FROM tmp3 where hostname LIKE ? ";
strcpy(param,"DZH%");
returnState = SQLBindParameter(hStmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_C_CHAR, 0, 0, param, 4, NULL);
// 出错 就return
resultValue = SQLFreeStmt(*hStmt, SQL_CLOSE);
// 出错 就return
resultValue = SQLPrepare(*hStmt, (SQLCHAR*)sql, SQL_NTS);
// 出错 就return
resultValue = SQLExecute(*hStmt); 
// 出错 就return
returnState = SQLFetch(hStmt);
// Fetch完后,returnState的值是100 ,说明没取到数据。。。。 


// Fetch完后,returnState的值是100 ,说明没取到数据。。。。然而连接oracle的时候,就能检索到数据,这是什么问题啊,请大家帮帮忙, 我绑定参数是有问题???????

------解决方案--------------------
你吧最终的sql语句打印出来,然后放sql里面去执行不就好了
------解决方案--------------------
会不会是" SELECT * FROM tmp3 where hostname LIKE ? " like后面那里没有''单引号?

没有做过c++~~c#的论坛开到c++技术贴,稀奇ing。。。


------解决方案--------------------
你用sql server还是什么的,把sql server的跟踪打开,你就能看见执行了什么代码了