一个关于sybase数据库向sql server数据库转入数据的问题,100分请教(有代码)
connect using sqlca_1;
connect using sqlca_2;
integer li_count2,li_count1,li_count3
string ls_dwbh1,ls_yhdm2,ls_qymc1,ls_ssxs1,ls_qydz1,ls_jjxz1,ls_jyxkzh1,ls_jyfw1,ls_fzr1,ls_yyzzh1,ls_yzbm1,ls_dhhm1,ls_zzdj1,ls_zzdj_11
integer li_kcsl1,li_hcsl1
datetime ld_fzsj1,ld_yxq_q1,ld_yxq_z1
string ls_clpzh,ls_fdjh,ls_dph,ls_yhdm,ls_cpys,ls_cpys1
boolean lb_continue
DECLARE car CURSOR FOR
SELECT clpzh,cpys,fdjh,dph,yhdm FROM Car using sqlca_2;
//commit using sqlca_2;
open car;
lb_continue = true
DO WHILE lb_continue
FETCH car INTO :ls_clpzh,:ls_cpys,:ls_fdjh,:ls_dph,:ls_yhdm;
ls_cpys1 = left(ls_cpys,2)
if sqlca_2.sqlcode = 0 then
select count(*) into :li_count2 from car where clpzh = :ls_clpzh and cpys = :ls_cpys using sqlca_2;
select count(*) into :li_count1 from clk where clpzh = :ls_clpzh and cpys = :ls_cpys1 using sqlca_1;
if li_count2 = 1 and li_count1 = 1 then
select dwbh into :ls_dwbh1 from clk where clpzh = :ls_clpzh and cpys = :ls_cpys using sqlca_1;
select yhdm into :ls_yhdm2 from car where clpzh = :ls_clpzh and cpys = :ls_cpys using sqlca_2;
select count(*) into :li_count3 from kyqyk where qybh = :ls_dwbh1 using sqlca_1;
if li_count3 = 1 then
select qymc,ssxs,qydz,jjxz,jyxkzh,jyfw,fzr,fzsj,yyzzh,dhhm,yzbm,zzdj,zzdj_1,kcsl,hcsl,yxq_q,yxq_z into
:ls_qymc1,:ls_ssxs1,:ls_qydz1,:ls_jjxz1,:ls_jyxkzh1,:ls_jyfw1,:ls_fzr1,:ld_fzsj1,:ls_yyzzh1,:ls_dhhm1,:ls_yzbm1,:ls_zzdj1,:ls_zzdj_11,:li_kcsl1,:li_hcsl1,:ld_yxq_q1,:ld_yxq_z1 from kyqyk where qybh = :ls_dwbh1 using sqlca_1;
ls_qymc1 = trim(ls_qymc1)
ls_qydz1 = trim(ls_qydz1)
if ls_yhdm2 = '' or isnull(ls_yhdm2) then
INSERT INTO interprise
(yhmc,yhdz,yzbm,ssxs,jjlx,frdb,dhhm,gszzh,jy_jyxkzh,jy_jyfw,jy_hfrq,ky_kczs,hy_hczs,zzdj,yxqqs,cw_yhzh)
VALUES (:ls_qymc1,:ls_qydz1,:ls_yzbm1,:ls_ssxs1,:ls_jjxz1,:ls_fzr1,:ls_dhhm1,:ls_yyzzh1,:ls_jyxkzh1,:ls_jyfw1,:ld_fzsj1,:li_kcsl1,:li_hcsl1,:ls_zzdj1 + :ls_zzdj_11,:ld_yxq_q1,'改变') using sqlca_2;
else
update Interprise set yhmc=:ls_qymc1,yhdz=:ls_qydz1,yzbm=:ls_yzbm1,ssxs=:ls_ssxs1,jjlx=:ls_jjxz1,frdb=:ls_fzr1,dhhm=:ls_dhhm1,gszzh=:ls_yyzzh1,
jy_jyxkzh=:ls_jyxkzh1,jy_jyfw=:ls_jyfw1,jy_hfrq=:ld_fzsj1,ky_kczs=:li_kcsl1,hy_hczs=:li_hcsl1,zzdj=:ls_zzdj1 + :ls_zzdj_11,yxqqs=:ld_yxq_q1,cw_yhzh='改变'
where yhdm = :ls_yhdm2 using sqlca_2;
end if
end if
end if
else
lb_continue = false
end if
LOOP
commit using sqlca_1;
commit using sqlca_2;
运行后发现一条纪录也没有修改成功!