起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 502|回复: 20

【结贴】急!!!存储过在复制过程名是提示错误[请求]

[复制链接]
发表于 2009-8-26 15:25:50 | 显示全部楼层 |阅读模式
存储过在复制过程名是提示错误

111.png

14.31 KB, 下载次数: 182

回复

使用道具 举报

发表于 2009-8-26 15:27:56 | 显示全部楼层
楼主是怎么操作的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-26 15:36:09 | 显示全部楼层
我初始化调试就定位在为过程赋值过程名提示错误
var
  SP :TStoredProc;
  i:Integer;
  vQuery,vQuery_ZB:TQuery;
  vOutStr:String;
  vKSSJ,vJSSJ:String;//考核开始时间,结束时间
  lTransHandle: TTransactionHandle;
  vZBH:String;
  vZDJSFS:Float;//自动计算分数
begin
  vZBH:=DataSetKHQXB.FieldByName('ZBH').AsString;
  vOutStr:=EmptyStr;
  SP:=TStoredProc.Create(Self);
  SP.ConnectionString:='DATABASEURL=Biz:\YWKJ\StoredConn.Database';
  DataSetCJMX_JS.Connection.Transaction := DataSetCJZB.Connection.Transaction;
  DataSetCJMX_JS.Connection.Transaction := DataSetKHQXB.Connection.Transaction;
  DataSetKHQXB.Close;
  DataSetKHQXB.SQL.Text:='Select * From KHQXB Where SFHZ=''1'' and KHWHYBH In ('+vKWHID+')';
  DataSetKHQXB.Open;
  DataSetKHQXB.Locate('ZBH',vZBH,[]);
  DataSetCJZB.Open;
  DataSetCJMX_JS.Open;
  With DataSetCJMX_JS.Connection.Transaction do
  begin
    lTransHandle := Start(False);    //启动事务
    try         //保存成绩主表数据
  //计算自动计算考核项目成绩
      vQuery:=TQuery.Create(Self);
      vQuery.ConnectionString:='DATABASEURL=Biz:\YWKJ\YWK.Database';
      vQuery.CommandText:='Select A.*,C.*,D.ZBSL From KHQX_CJMXB A,KHQX_CJB B,KHQX_KHXMB C, KHQX_DWXMZBB D'+
                          '  Where A.GLBH=B.ZBH(+) And A.KHXMBH=C.XMBH And C.KHXMTBFS=''02'' And '+
                          '        B.KHQBH='+Char(39)+DataSetKHQXB.FieldByName('ZBH').AsString+Char(39)+' And '+
                          '        C.GLBH='+Char(39)+DataSetKHQXB.FieldByName('ZBH').AsString+Char(39)+' And '+
                          '        D.GLBH='+Char(39)+DataSetKHQXB.FieldByName('ZBH').AsString+Char(39)+' And '+
                          '        A.KHXMBH=D.XMBH And A.BKHDWBH=D.BKHDWBH';
      vQuery.Open;
      if not vQuery.IsEmpty then
      begin
        vQuery_ZB:=TQuery.Create(Self);
        vQuery_ZB.ConnectionString:='DATABASEURL=Biz:\YWKJ\ZDK.Database';
        vQuery_ZB.CommandText:='Select * From JXKHZB';
        vQuery_ZB.Open;
        For i:=0 to vQuery.RecordCount-1 do
        begin
          vQuery_ZB.Filter:='A1='+Char(39)+vQuery.FieldByName('KHXMZBLY').AsString+Char(39);
          vQuery_ZB.Filtered:=True;
          if vQuery_ZB.IsEmpty then
          begin
            jsDialogs.ShowMsg('没有找到对应的指标量计算程序!','提示');
            exit;
          end;
          TFunComUnit.GetSelDepts(vQuery.FieldByName('BKHDWBH').AsString);
          SP.StoredProcName:=Trim(vQuery_ZB.FieldByName('A5').AsString);
          SP.Params.Clear;
          SP.Params.CreateParam(TFieldType.ftString,'C_BTBSJ',TParamType.ptInput);    //开始时间
          SP.Params.CreateParam(TFieldType.ftString,'C_ETBSJ',TParamType.ptInput);    //结束时间
          SP.Params.CreateParam(TFieldType.ftString,'C_TOTAL',TParamType.ptOutput);   //传出数量
          SP.Params[0].AsString := Trim(DataSetKHQXB.FieldByName('KHKSSJ').AsString);
          SP.Params[1].AsString := Trim(DataSetKHQXB.FieldByName('KHJSSJ').AsString);
          SP.Execute;
          SP.Params[2].AsString := vOutStr;
          //修改自动取数据项目的值
          DataSetCJMX_JS.Filter:='BKHDWBH='+Char(39)+Trim(vQuery.FieldByName('BKHDWBH').AsString)+Char(39)+' And '+
                                 'KHXMBH='+Char(39)+Trim(vQuery.FieldByName('KHXMBH').AsString)+Char(39);
          DataSetCJMX_JS.Filtered:=True;
          if DataSetCJMX_JS.IsEmpty then
          begin
            jsDialogs.ShowMsg('没有找到相应的自动计算项目!','提示');
            exit;
          end;
          if vOutStr=EmptyStr then
          begin
            vOutStr:='0';
          end;
          //根据最高分最低分计算成绩
          if (StrToInt(vOutStr)/vQuery.FieldByName('ZBSL').AsInteger)*vQuery.FieldByName('JCF').AsInteger<
              vQuery.FieldByName('ZDF').AsInteger then   //小于最低分
          begin
            vZDJSFS:=vQuery.FieldByName('ZDF').AsInteger;
          end
          else if (StrToInt(vOutStr)/vQuery.FieldByName('ZBSL').AsInteger)*vQuery.FieldByName('JCF').AsInteger>
              vQuery.FieldByName('ZGF').AsInteger then    //大于最高分
          begin
            vZDJSFS:=vQuery.FieldByName('ZGF').AsInteger;
          end
          else
          begin
            vZDJSFS:=(StrToInt(vOutStr)/vQuery.FieldByName('ZBSL').AsInteger)*vQuery.FieldByName('JCF').AsInteger;
          end;
          DataSetCJMX_JS.Edit;
          DataSetCJMX_JS.FieldByName('DF').Value:=vZDJSFS;
          DataSetCJMX_JS.Post;
          vQuery.Next;
        end;
      end;
      //计算小类总分
      vQuery.Close;
      vQuery.CommandText:='Select Substr(A.KHXMBH,1,6) KHXMBH,A.BKHDWBH,0 DF From KHQX_CJMXB A,KHQX_CJB B '+
                          '  Where A.GLBH=B.ZBH(+) And B.KHQBH='+Char(39)+Trim(DataSetKHQXB.FieldByName('ZBH').AsString)+Char(39)+
                          '  Group By Substr(A.KHXMBH,1,6),A.BKHDWBH ';
      vQuery.Open;
      //插入小类成绩
      if not vQuery.IsEmpty then
      begin
        DataSetCJMX_JS.Filtered:=False;
        DataSetCJMX_JS.First;
        For i:=0 to DataSetCJMX_JS.RecordCount-1 do
        begin
          vQuery.Filter:='BKHDWBH='+Char(39)+Trim(DataSetCJMX_JS.FieldByName('BKHDWBH').AsString)+Char(39)+' And '+
                         'KHXMBH='+Char(39)+Copy(Trim(DataSetCJMX_JS.FieldByName('KHXMBH').AsString),1,6)+Char(39);
          vQuery.Filtered:=True;
          if vQuery.IsEmpty then
          begin
            jsDialogs.ShowMsg('统计小类成绩时没有找到相应的小类!','提示');
            exit;
          end;
          vQuery.Edit;
          vQuery.FieldByName('DF').AsInteger:=vQuery.FieldByName('DF').AsInteger+DataSetCJMX_JS.FieldByName('DF').AsInteger;
          vQuery.Post;
          DataSetCJMX_JS.Next;
        end;
        vQuery.Filtered:=False;
        For i:=0 to vQuery.RecordCount-1 do
        begin
          DataSetCJMX_JS.Append;
          DataSetCJMX_JS.FieldByName('GLBH').AsString:=DataSetCJZB.FieldByName('ZBH').AsString;
          DataSetCJMX_JS.FieldByName('BKHDWBH').AsString:=vQuery.FieldByName('BKHDWBH').AsString;
          DataSetKHQX_BKHDW.Filter:='BKHDWBH='+Char(39)+vQuery.FieldByName('BKHDWBH').AsString+Char(39);
          DataSetKHQX_BKHDW.Filtered:=True;
          DataSetCJMX_JS.FieldByName('BKHDWMC').AsString:=DataSetKHQX_BKHDW.FieldByName('BKHDWMC').AsString;
          DataSetCJMX_JS.FieldByName('KHXMBH').AsString:=vQuery.FieldByName('KHXMBH').AsString;
          DataSetCJMX_JS.FieldByName('DF').AsInteger:=vQuery.FieldByName('DF').AsInteger;
          DataSetCJMX_JS.Post;
          vQuery.Next;
        end;
      end;
      //统计大类成绩
      vQuery.Close;
      vQuery.CommandText:='Select Substr(A.KHXMBH,1,3) KHXMBH,A.BKHDWBH,0 DF From KHQX_CJMXB A,KHQX_CJB B '+
                          '  Where A.GLBH=B.ZBH(+) And B.KHQBH='+Char(39)+Trim(DataSetKHQXB.FieldByName('ZBH').AsString)+Char(39)+
                          '  Group By Substr(A.KHXMBH,1,3),A.BKHDWBH ';
      vQuery.Open;
      //插入大类成绩
      if not vQuery.IsEmpty then
      begin
        DataSetCJMX_JS.Filtered:=False;
        DataSetCJMX_JS.First;
        For i:=0 to DataSetCJMX_JS.RecordCount-1 do
        begin
          if Length(Trim(DataSetCJMX_JS.FieldByName('KHXMBH').AsString))=6 then //只加小类的
          begin
            vQuery.Filter:='BKHDWBH='+Char(39)+Trim(DataSetCJMX_JS.FieldByName('BKHDWBH').AsString)+Char(39)+' And '+
                           'KHXMBH='+Char(39)+Copy(Trim(DataSetCJMX_JS.FieldByName('KHXMBH').AsString),1,3)+Char(39);
            vQuery.Filtered:=True;
            if vQuery.IsEmpty then
            begin
              jsDialogs.ShowMsg('统计大类成绩时没有找到相应的大类!','提示');
              exit;
            end;
            vQuery.Edit;
            vQuery.FieldByName('DF').AsInteger:=vQuery.FieldByName('DF').AsInteger+DataSetCJMX_JS.FieldByName('DF').AsInteger;
            vQuery.Post;
          end;
          DataSetCJMX_JS.Next;
        end;
        vQuery.Filtered:=False;
        For i:=0 to vQuery.RecordCount-1 do
        begin
          DataSetCJMX_JS.Append;
          DataSetCJMX_JS.FieldByName('GLBH').AsString:=DataSetCJZB.FieldByName('ZBH').AsString;
          DataSetCJMX_JS.FieldByName('BKHDWBH').AsString:=vQuery.FieldByName('BKHDWBH').AsString;
          DataSetCJMX_JS.FieldByName('KHXMBH').AsString:=vQuery.FieldByName('KHXMBH').AsString;
          DataSetKHQX_BKHDW.Filter:='BKHDWBH='+Char(39)+vQuery.FieldByName('BKHDWBH').AsString+Char(39);
          DataSetKHQX_BKHDW.Filtered:=True;
          DataSetCJMX_JS.FieldByName('BKHDWMC').AsString:=DataSetKHQX_BKHDW.FieldByName('BKHDWMC').AsString;
          DataSetCJMX_JS.FieldByName('DF').AsInteger:=vQuery.FieldByName('DF').AsInteger;
          DataSetCJMX_JS.Post;
          vQuery.Next;
        end;
      end;
      //统计额外加分
      vKSSJ:=FormatDateTime('yyyy-mm-dd',DataSetKHQXB.FieldByName('KHKSSJ').AsDateTime);
      vJSSJ:=FormatDateTime('yyyy-mm-dd',DataSetKHQXB.FieldByName('KHJSSJ').AsDateTime);
      vQuery.Close;
      vQuery.CommandText:='Select EWJFBMID,Sum(FS) FS From EWJFB '+
                          '  Where EWJFBMID In (Select ZBM From TJBBLSB) And '+
                          '        To_Char(FJSJ)>='+Char(39)+vKSSJ+Char(39)+' And '+
                          '        To_Char(FJSJ)<='+Char(39)+vJSSJ+Char(39)+' And '+
                          '        JKFBZ=''1'' Group By EWJFBMID ';
      vQuery.Open;
      if not vQuery.IsEmpty then
      begin
        For i:=0 to vQuery.RecordCount-1 do
        begin
          DataSetCJMX_JS.Append;
          DataSetCJMX_JS.FieldByName('GLBH').AsString:=DataSetCJZB.FieldByName('ZBH').AsString;
          DataSetCJMX_JS.FieldByName('BKHDWBH').AsString:=vQuery.FieldByName('EWJFBMID').AsString;
          DataSetKHQX_BKHDW.Filter:='BKHDWBH='+Char(39)+vQuery.FieldByName('EWJFBMID').AsString+Char(39);
          DataSetKHQX_BKHDW.Filtered:=True;
          DataSetCJMX_JS.FieldByName('BKHDWMC').AsString:=DataSetKHQX_BKHDW.FieldByName('BKHDWMC').AsString;
          DataSetCJMX_JS.FieldByName('KHXMBH').AsString:='JF';
          DataSetCJMX_JS.FieldByName('KHXMMC').AsString:='额外加分';
          DataSetCJMX_JS.FieldByName('DF').AsInteger:=vQuery.FieldByName('FS').AsInteger;
          DataSetCJMX_JS.Post;
          vQuery.Next;
        end;
      end;
      //统计额外扣分
      vQuery.Close;
      vQuery.CommandText:='Select EWJFBMID,Sum(-FS) FS From EWJFB '+
                          '  Where EWJFBMID In (Select ZBM From TJBBLSB) And '+
                          '        To_Char(FJSJ)>='+Char(39)+vKSSJ+Char(39)+' And '+
                          '        To_Char(FJSJ)<='+Char(39)+vJSSJ+Char(39)+' And '+
                          '        JKFBZ=''2'' Group By EWJFBMID ';
      vQuery.Open;
      if not vQuery.IsEmpty then
      begin
        For i:=0 to vQuery.RecordCount-1 do
        begin
          DataSetCJMX_JS.Append;
          DataSetCJMX_JS.FieldByName('GLBH').AsString:=DataSetCJZB.FieldByName('ZBH').AsString;
          DataSetCJMX_JS.FieldByName('BKHDWBH').AsString:=vQuery.FieldByName('EWJFBMID').AsString;
          DataSetKHQX_BKHDW.Filter:='BKHDWBH='+Char(39)+vQuery.FieldByName('EWJFBMID').AsString+Char(39);
          DataSetKHQX_BKHDW.Filtered:=True;
          DataSetCJMX_JS.FieldByName('BKHDWMC').AsString:=DataSetKHQX_BKHDW.FieldByName('BKHDWMC').AsString;
          DataSetCJMX_JS.FieldByName('KHXMBH').AsString:='KF';
          DataSetCJMX_JS.FieldByName('KHXMMC').AsString:='额外扣分';
          DataSetCJMX_JS.FieldByName('DF').AsInteger:=vQuery.FieldByName('FS').AsInteger;
          DataSetCJMX_JS.Post;
          vQuery.Next;
        end;
      end;
      //统计总分
      vQuery.Close;
      vQuery.CommandText:='Select Distinct BKHDWBH,0 ZF From KHQX_CJMXB Where GLBH='+Char(39)+DataSetCJZB.FieldByName('ZBH').AsString+Char(39);
      vQuery.Open;
      DataSetCJMX_JS.Filtered:=False;
      DataSetCJMX_JS.First;
      For i:=0 to DataSetCJMX_JS.RecordCount-1 do
      begin
        if Length(Trim(DataSetCJMX_JS.FieldByName('KHXMBH').AsString))<4 then
        begin
          vQuery.Filter:='BKHDWBH='+Char(39)+Trim(DataSetCJMX_JS.FieldByName('BKHDWBH').AsString)+Char(39);
          vQuery.Filtered:=True;
          if vQuery.IsEmpty then
          begin
            jsDialogs.ShowMsg('统计总成绩时没有找到相应的部门!','提示');
            exit;
          end;
          vQuery.Edit;
          vQuery.FieldByName('ZF').AsInteger:=vQuery.FieldByName('ZF').AsInteger+DataSetCJMX_JS.FieldByName('DF').AsInteger;
          vQuery.Post;
        end;
        DataSetCJMX_JS.Next;
      end;
      vQuery.Filtered:=False;
      For i:=0 to vQuery.RecordCount-1 do
      begin
        DataSetCJMX_JS.Append;
        DataSetCJMX_JS.FieldByName('GLBH').AsString:=DataSetCJZB.FieldByName('ZBH').AsString;
        DataSetCJMX_JS.FieldByName('BKHDWBH').AsString:=vQuery.FieldByName('BKHDWBH').AsString;
        DataSetKHQX_BKHDW.Filter:='BKHDWBH='+Char(39)+vQuery.FieldByName('BKHDWBH').AsString+Char(39);
        DataSetKHQX_BKHDW.Filtered:=True;
        DataSetCJMX_JS.FieldByName('BKHDWMC').AsString:=DataSetKHQX_BKHDW.FieldByName('BKHDWMC').AsString;
        DataSetCJMX_JS.FieldByName('KHXMBH').AsString:='ZF';
        DataSetCJMX_JS.FieldByName('KHXMMC').AsString:='总分';
        DataSetCJMX_JS.FieldByName('DF').AsInteger:=vQuery.FieldByName('ZF').AsInteger;
        DataSetCJMX_JS.Post;
        vQuery.Next;
      end;
      //修改考核期限表
      DataSetKHQXB.Edit;
      DataSetKHQXB.FieldByName('SFHZ').AsString:='2';
      DataSetKHQXB.Post;
      //修改成绩主表
      DataSetCJZB.Edit;
      DataSetCJZB.FieldByName('HZR').AsString:=TCommonUnit.GetOperatorID;
      DataSetCJZB.FieldByName('HZRXM').AsString:=TCommonUnit.GetOperatorDispName;
      DataSetCJZB.FieldByName('HZSJ').AsDateTime:=Business.Data.SysSrv.SysService.Time;
      DataSetCJZB.FieldByName('SFSH').AsString:='1'; //已汇总
      DataSetCJZB.Post;
      //提交
      DataSetKHQXB.ApplyUpdates(False);
      DataSetCJZB.ApplyUpdates(False);
      DataSetCJMX_JS.ApplyUpdates(False);
      vQuery.Cancel;
      DataSetKHQX_BKHDW.Filtered:=False;
      Commit(lTransHandle);
      vQuery.Free;
      jsDialogs.ShowMsg('核算成功!','提示');
      DataSetKHQXB.Refresh;
      PageControl1.ActivePageIndex:=1;
      DataSetKHQX_CJB.Cancel;
      DataSetKHQX_CJB.Close;
      DataSetKHQX_CJB_CX.Close;
      DataSetKHQX_CJB_CX.SQL.Text:='Select * From KHQX_CJB Where SFSH<>''0'' And KWHBH In ('+vKWHID+')';
      DataSetKHQX_CJB_CX.Open;
    except
      RollBack(lTransHandle);
      DataSetKHQXB.CancelUpdates;
      DataSetCJZB.CancelUpdates;
      DataSetKHQX_CJB.CancelUpdates;
      jsDialogs.ShowMsg('汇总失败!','失败');
    end;
    SP.Free;
  end;
回复 支持 反对

使用道具 举报

发表于 2009-8-26 15:43:07 | 显示全部楼层
你用存储过程控件直接选择你的存储过程试试,看看是不是也是1楼的错误。
回复 支持 反对

使用道具 举报

发表于 2009-8-26 16:04:47 | 显示全部楼层
使用存储过程控件,直接绑定一个存储过程名进去也是报一样的错
回复 支持 反对

使用道具 举报

发表于 2009-8-26 16:07:07 | 显示全部楼层
是控件上选择的吗?先别用代码
回复 支持 反对

使用道具 举报

发表于 2009-8-26 17:14:06 | 显示全部楼层
在控件上直接选也是报这个错
而且是在存储过程名下拉菜单时就报了
回复 支持 反对

使用道具 举报

发表于 2009-8-26 17:17:04 | 显示全部楼层
应该是系统在向数据库请求存储过程元数据时报错了。
看看服务端的错误调用栈吧。
回复 支持 反对

使用道具 举报

发表于 2009-8-27 09:05:10 | 显示全部楼层
weblogic报的错
如图

weblogic.jpg

62.28 KB, 下载次数: 156

回复 支持 反对

使用道具 举报

发表于 2009-8-27 09:08:56 | 显示全部楼层
楼主,你这个平台版本是多少?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-17 03:07 , Processed in 0.050036 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表