荷荷,这是MS SQL 7的BUG,微软已经承认此错误,不知道你是否注意过在编辑环境里的TSTORPROC
他的STORPROCNAME后面跟了一个";" 和1
在程序运行时,这个分号和1是无效的,但SQL 7不是如此处理,他没有忽略掉
此分号,(6。5忽略掉了)
所以在SQL 7中掉用存储过程需要手工去调用
例子如下:
sp2:TStorproc;
..............
..............
sp2.StoredProcName:='';
sp2.Params.Clear;
sp2.StoredProcName:='dbo.system_init';
Sp2.Params.CreateParam(ftCurrency, '@gh_gbf', ptInput);
Sp2.Params.CreateParam(ftInteger, '@mz_mov_od', ptInput);
Sp2.Params.CreateParam(ftString, '@hj_sf_hb', ptInput);
//上面几句完成存储过程名的设置和参数设置,然后正常调用存储过程控件就可以了
try
datafrm.Database1.StartTransaction;
sp2.ParamByName('@gh_gbf').AsCurrency:=StrToCurr(ghgbf_Edit.Text);
sp2.ParamByName('@mz_mov_od').AsInteger:=StrToInt(days_Edit.Text);
sp2.ParamByName('@hj_sf_hb').AsString:='yes'
sp2.ExecProc;
datafrm.Database1.Commit;
showmessage('保存设置完成');
except
datafrm.Database1.Rollback;
showmessage('保存设置失败');
end;
上面的程序是我实际程序代码里摘出来的,SQL 7里如果你不用他新增的数据类型
使用DBLIB连接是可行的,也就是说从 SQL SERVER6。5移植到7。0只需要处理
存储过程上的调用方式就可以了。