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;以上是我修改的某个存储过程,左看右看也看不出毛病,就是编译不通过。
SQL命令标准有点不同,需要你一个个找出来更换的。
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;以上是我修改的某个存储过程,左看右看也看不出毛病,就是编译不通过。
存储过程不同是肯定的...请好好看看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
乱码的问题你说的方法我试过不行,不过是DELPHI6,和版本有关系吗?
关键是mysql的版本以及mysql odbc driver的版本 - 我用的是3.51.