目前应客户的需要,从MSSQL转到MYSQL(5.0),下载MYODBC安装后连接正常,但读取数据遇到中文时为乱码,有没有人遇到过这样的问题?还有MSSQL的存储过程转到MYSQL的存储过程语法有很多不兼容,现在有18个左右的存储过程需要转换,头疼  

解决方案 »

  1.   


      
      SQL命令标准有点不同,需要你一个个找出来更换的。
      

  2.   

    可是我按MYSQL5.0帮助文档上的存储过程粘贴过去,居然都编译不通过,真郁闷。。
      

  3.   

    truncate table mzhen_yfang_kctji;  DECLARE done INT DEFAULT 0;
      DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;  declare tb_kcun cursor for select sfxmu from mzhen_yfang_kcun group by sfxmu;
      declare @i_sfxmu int;
      open tb_kcun;
      REPEAT
        fetch tb_kcun into @i_sfxmu;
        insert into mzhen_yfang_kctji(sflbie,sfxmu,ypmcheng,pyjma,gge,jxing,jhdwei,jjia,jhsliang,lssliang,sjia,dwliang,lsdwei,lsjia,lsjjia)
          select top 1 sflbie,sfxmu,ypmcheng,pyjma,gge,jxing,jhdwei,jjia,jhsliang,lssliang,sjia,dwliang,lsdwei,lsjia,lsjjia from mzhen_yfang_kcun where sfxmu=@i_sfxmu;
          
        update mzhen_yfang_kctji set jhsliang=(select sum(jhsliang) from mzhen_yfang_kcun where sfxmu=@i_sfxmu), lssliang=(select sum(lssliang) from mzhen_yfang_kcun where sfxmu=@i_sfxmu) where sfxmu=@i_sfxmu;
        fetch tb_kcun into @i_sfxmu;
      UNTIL done END REPEAT;  close tb_kcun;以上是我修改的某个存储过程,左看右看也看不出毛病,就是编译不通过。
      

  4.   

    从mssql转到mysql是有些改变的. 
    存储过程不同是肯定的...请好好看看mysql的语言参考.乱码的问题:使用Delphi7, MyODBC 3.5连接MySQL 5.0, 数据库字符集设置为GBK, 居然出现乱码!!!真是晕....找了一个晚上,终于找到方法了:1)设置ODBC中, Advanced-->Flag 3-->Read Options From my.cnf2)将以下内容保存为%windir%\my.cnf[client]
    default-character-set=gbk
      

  5.   

    请问hydonlee(青山情) :
    乱码的问题你说的方法我试过不行,不过是DELPHI6,和版本有关系吗?
      

  6.   

    MYSQL好象没有类似于mssql的exec()函数,觉得这是MYSQL的致命弱点
      

  7.   

    to 楼主,应该和delphi的版本没有关系.
    关键是mysql的版本以及mysql odbc driver的版本 - 我用的是3.51.
      

  8.   

    建议你用sybase sqlanywhere代替MySql,该数据库发布和管理比MySql容易。
      

  9.   

    还有,该数据库对中文和sql server兼容性很好