PB中执行下面的SQL不成功,请高手来指点一下解决思路
PB中执行下面的SQL不成功,请高手来指点一下
UPDATE SK_XFJLB
SET JZstatus = :li_flag
WHERE (XF_PH in ( :as_phlist )AND XF_JZBZ='否' ) ;
IF SQLCA.SQLCODE = 0 THEN
COMMIT USING SQLCA;
ELSE
ROLLBACK USING SQLCA;
Messagebox('','失败.')
END IF
as_phlist 参数为(0001,0002,0003)
如果as_phlist为 0001是可以成功的,
如果是多个以上,则不能成功了
------解决方案--------------------
试试这样
UPDATE SK_XFJLB
SET JZstatus = :li_flag
WHERE (XF_PH in ( :as_phlist )AND XF_JZBZ='否' ) ;
IF SQLCA.SQLCODE = 0 THEN
COMMIT USING SQLCA;
ELSE
ROLLBACK USING SQLCA;
Messagebox('','失败.')
END IF
as_phlist 参数为(0001,0002,0003)
如果as_phlist为 0001是可以成功的,
如果是多个以上,则不能成功了
------解决方案--------------------
试试这样
- C# code
String ls_sql, as_phlist Int li_flag as_phlist = "'0001','0002','0003'" ls_sql = "UPDATE SK_XFJLB SET JZstatus = " + String(li_flag) +& " WHERE XF_PH in (" + as_phlist + ") AND XF_JZBZ='否' " EXECUTE IMMEDIATE :ls_sql;
------解决方案--------------------
但是建议改成这样
UPDATE SK_XFJLB
SET JZstatus = :li_flag
WHERE (CHARINDEX(','+XF_PH+',',','+:as_phlist+',') >0
AND XF_JZBZ='否'
) ;