说明DeleteQuery(:userid,:corpid)的传参顺序按照sql参数顺序来的么,:userid只是个标签而已和顺序无关

解决方案 »

  1.   

    试所需要的参数值,此时输入框中:corpid在前面,:userid在第二个,输入参数,也能正常执行DeleteQuery(:userid,:corpid) 这两个顺序不一样啊。。
      

  2.   

    感谢你看出来了,就因为vs自己查询测试正常,就因为确实这个顺序对的,和他生成的方法的参数不一致,还好是2个string,可以换着来,如果不是真不知道顺序换了是神马效果了。
      

  3.   

    楼主应该看清楚DeleteQuery这个函数参数的含义,我觉得应该和名字无关:usrid只是个标签而已,物理上的顺序
      

  4.   

    WHERE (JOBID IN
      (SELECT JOBID
      FROM JOB
      WHERE (CORPID = :corpid))) AND (LOGINNAME = :userid)创建过程一切正常,创建出一个DeleteQuery(:userid,:corpid)首先看你两个参数,userid 和 corpid那么必然的 你通过存储过程 传递的参数 顺序也应该保持一直, CREATE OR REPLACE PROCEDURE xxxxxxxxxxx_p (userid nvarchar2(20),corpid nvarchar2(20))
    as
    begin
    end
      

  5.   

    楼主不要纠结了。
    传递参数的顺序要按照Sql语句中定义的顺序来。否则,系统不认可的。
    也许你在MSSql中可以在SqlParamter数组中乱序,但是Oracle,楼主你还是老老实实的顺序排好!