您的位置:程序门 -> delphi -> 数据库相关



带参数存储过程使用问题,请高手执教!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


带参数存储过程使用问题,请高手执教![已结贴,结贴人:haha20]
发表于:2007-04-02 15:24:33 楼主
存储过程创建如下:
create   procedure   writebankbill

@accountno   varchar(50),
@accountname   varchar(50),
@dealdate datetime,
@debit varchar(50),
@lend varchar(50)
)
as
insert   into   bankbill(accountno,   accountname,   dealdate,   debit,   lend)  
values(@accountno,   @accountname,   @dealdate,   @debit,   @lend)
go
存储过程调用如下:

var
      accountno,   accountname:   string;
      dealdate   :   tdatetime;
      debit,   lend:     string;


                        dealdate:=   strtodate( '2007-03-03 ');
                        debit:=   trim( '123 ');                          
                        lend:=   trim( '123 ');  
                        accountname:=   trim( '123 ');  
                        accountno:=   trim( '123 ');  
with   dmodule.strpre   do
begin
                        close;
                        parameters.parambyname( '@dealdate ').value   :=   dealdate;


                        parameters.parambyname( '@accountno ').value   :=   accountno;
                        parameters.parambyname( '@accountname ').value   :=   accountname;
                        parameters.parambyname( '@lend ').value   :=   lend;
                        parameters.parambyname( '@debit ').value   :=   debit;
                        EXECproc;

end;
发表于:2007-04-02 15:28:501楼 得分:0
系统老提示出错误:   不允许从数据类型   money   到   varchar的阴性转换,请使用   convert   函数来运行此查询.
表设计如下:
if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(n '[dbo].[bankbill] ')   and   objectproperty(id,   n 'isusertable ')   =   1)
drop   table   [dbo].[bankbill]
go

create   table   [dbo].[bankbill]   (
[squnum]   [int]   identity   (1,   1)   not   null   ,
[dealdate]   [datetime]   not   null   ,
[debit]   [varchar]   (50)   collate   chinese_prc_ci_as   null   ,
[lend]   [varchar]   (50)   collate   chinese_prc_ci_as   null   ,
[accountname]   [varchar]   (50)   collate   chinese_prc_ci_as   null   ,
[accountno]   [varchar]   (50)   collate   chinese_prc_ci_as   null  
)   on   [primary]
go
发表于:2007-04-02 15:45:362楼 得分:0
怎么没有高手顶   啊
发表于:2007-04-02 15:51:523楼 得分:0
请高手帮忙   本人在查询分析器中已经测试过
EXEC     writebankbill  

@accountno   = '123 ',
@accountname   = '123 ',
@dealdate = '2007-03-02 ',
@debit = '123 ',
@lend = '123 '
可以执行   没有错误的  
发表于:2007-04-02 16:03:234楼 得分:10
parameters.parambyname( '@dealdate ').asdate:=   dealdate;
parameters.parambyname( '@accountno ').asstring:=   accountno;
parameters.parambyname( '@accountname ').asstring   :=   accountname;
parameters.parambyname( '@lend ').asstring   :=   lend;
parameters.parambyname( '@debit ').asstring   :=   debit;
发表于:2007-04-02 16:06:455楼 得分:0
to:chenzhuo(jack   chen)  
你说的好像编译通不过啊   兄弟!   谢谢   你了!
发表于:2007-04-02 16:20:576楼 得分:0
怎么   没有兄弟们关注一下啊     自己顶了
发表于:2007-04-02 16:31:067楼 得分:40
没看到你哪里出现money类型数据;
你单步调试,跟踪一下看具体出错的语句
发表于:2007-04-02 16:39:488楼 得分:0
好的
发表于:2007-04-02 16:40:559楼 得分:0
就是在   EXECproc的时候   出的错误   我都写了最简单的测试了
                  with   dmodule.strpre   do
                  begin
                        close;

                        parameters.parambyname( '@dealdate ').value   :=   '2007-03-02 ';
                        parameters.parambyname( '@accountno ').value   :=   '13213 ';
                        parameters.parambyname( '@accountname ').value   :=   '13213 ';
                        parameters.parambyname( '@lend ').value   :=   '13213 ';
                        parameters.parambyname( '@debit ').value   :=   '13213 ';

                        EXECproc;

                  end;
发表于:2007-04-02 17:30:0310楼 得分:0
帮顶吧
发表于:2007-04-03 09:06:0411楼 得分:10
parameters.parambyname( '@dealdate ').value   :=   '2007-03-02 ';
这一句有问题吧,strtodate( '2007-03-02 ');
发表于:2007-04-03 09:17:4512楼 得分:0
to:   chenzhuo(jack   chen)  
还是不行啊   兄弟   谢谢你了啊   !
发表于:2007-04-03 10:11:3113楼 得分:0
为什么   我单独   测试只有一个字符类型的字段   或者只有一个日期类型的字段时   是可以的呢?
高手执教!
发表于:2007-04-03 15:18:1914楼 得分:0
解决   答案见
http://community.csdn.net/expert/topic/5438/5438885.xml?temp=.2847101


快速检索

最新资讯
热门点击