起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 163|回复: 3

【搞定】调用存储过程数据集报错??**

[复制链接]
发表于 2007-6-8 16:27:42 | 显示全部楼层 |阅读模式
如题

sql 中 存储过程

Proc ZXL_DZT_KMYEB(@ZTNUM VARCHAR(100)='503,504,505,',@DBYEAR VARCHAR(4)='2003',@iPer1 varchar(10)='1',@iPer2 varchar(10)='6',
@c_code1 varchar(60)='1101',@c_code2 varchar(60)='2501zz' ) AS


x3 中代码
//存储过程传递参数,并打开
    DataSetCCGCSJJ1.StoredProcName := 'dbo.ZXL_DZT_KMYEB';    //定义存储过程名称
    DataSetCCGCSJJ1.Params.Clear;
    lDataParam1 := DataSetCCGCSJJ1.Params.CreateParam(TFieldType.ftInteger, 'Result', TParamType.ptResult);
    lDataParam1 := DataSetCCGCSJJ1.Params.CreateParam(TFieldType.ftdate, '@ztnum', TParamType.ptInput);  //定义 参数1
    lDataParam1.AsString := txt_zt.text ;  //传入参数1 帐套号
    lDataParam2 := DataSetCCGCSJJ1.Params.CreateParam(TFieldType.ftdate, '@DBYEAR', TParamType.ptInput);    //定义 参数2
    lDataParam2.AsString :=txt_year.Text ;     //传入参数2 数据年度
    lDataParam3 := DataSetCCGCSJJ1.Params.CreateParam(TFieldType.ftdate, '@iPer1', TParamType.ptInput);    //定义 参数2
    lDataParam3.AsString :=txt_iperiod1.Text ;     //传入参数3 开始月份
    lDataParam4 := DataSetCCGCSJJ1.Params.CreateParam(TFieldType.ftdate, '@iPer2', TParamType.ptInput);    //定义 参数2
    lDataParam4.AsString :=txt_iperiod2.Text ;     //传入参数4 终止月份
    lDataParam5 := DataSetCCGCSJJ1.Params.CreateParam(TFieldType.ftdate, '@c_code1', TParamType.ptInput);    //定义 参数2
    lDataParam5.AsString :=txt_code1.Text ;     //传入参数5 科目1
    lDataParam6 := DataSetCCGCSJJ1.Params.CreateParam(TFieldType.ftdate, '@c_code1', TParamType.ptInput);    //定义 参数2
    lDataParam6.AsString :=txt_code2.Text ;     //传入参数6 科目2

    DataSetCCGCSJJ1.Close();
    DataGrid.DataSource :=DataSource1;
    DataSetCCGCSJJ1.Open();   //这句出错



提示:执行取数据时出现错误parameter #7 has not been set 类型:EOleException


存储过程只有6个参数,在sql 中测试过,可以不带参数运行
回复

使用道具 举报

 楼主| 发表于 2007-6-8 16:45:21 | 显示全部楼层
我的版本是2401
回复 支持 反对

使用道具 举报

发表于 2007-6-8 17:35:26 | 显示全部楼层
lDataParam5 := DataSetCCGCSJJ1.Params.CreateParam(TFieldType.ftdate, '@c_code1', TParamType.ptInput);    //定义 参数2
    lDataParam5.AsString :=txt_code1.Text ;     //传入参数5 科目1
    lDataParam6 := DataSetCCGCSJJ1.Params.CreateParam(TFieldType.ftdate, '@c_code1', TParamType.ptInput);    //定义 参数2
    lDataParam6.AsString :=txt_code2.Text ;     //传入参数6 科目2

怎么都是@c_code1'
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-8 17:38:45 | 显示全部楼层
谢谢,搞定,结帖,低级错误;)
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-11 14:43 , Processed in 0.035131 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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