T-SQL语句 EXEC('DECLARE Cur_Rule CURSOR FOR '+  SqlString); 不知道这句是什么作用,改成mysql的存储过程如何修改!谢谢!!!!谢谢!!!

解决方案 »

  1.   

    这个语句是说将它括号里的一段字符作为一个SQL命令来执行.
    MYSQL里是啥样就不清楚了.
      

  2.   

    mysql里的操作似乎是这样的:
    $exec="select * from contents where id=".$_GET['id'];
      $exec="update contents set content='".$_POST['post_contents']."' where id=".$_POST['id'];
      $result=mysql_query($exec);
      

  3.   

    你写的这个是PHP中的吧,我想将sql server的存储过程修改成mysql的存储过程。
      

  4.   

    动态游标,根据动态语句声明游标。这个 mysql 不支持。只能用其它方法实现,如先用动态语句创建视图,再根据视图声明游标。如,
    set @tabname = 'test.t1';
    set @sql = concat('create view v as select * from ', @tabname);
    prepare stmt from @sql;
    execute stmt;
    deallocate prepare stmt;declare c cursor for select * from v;
    ... ...
      

  5.   

    大哥能相信说明哈么?我对SQL server 和mysql都是略懂。是不是先要将视图写在存储过程中,然后在来写游标,
      

  6.   

    mysql的方法:
    mysql>prepare stmt1 from concat('DECLARE Cur_Rule CURSOR FOR ',sqlstring);
    mysql>execute stmt1;
      

  7.   


    不知道 #13 楼的语句在哪一个 mysql 版本上可以执行?
      

  8.   

    刚刚测试了哈,确实不行。
    我是这样按照帮助文档中这样进行修改的,没有语法错误了,也不知道对不对,可能字符串连接还是有问题。
    set @stm='DECLARE Cur_Rule CURSOR FOR + SqlString';
               PREPARE stmt FROM @stm;
               execute stmt;
    不过都很谢谢你们。感谢了!!