请问这个存储过程该怎么写? ( 积分: 100 )

  • 主题发起人 主题发起人 fcy123
  • 开始时间 开始时间
F

fcy123

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了如下一个sqlserver存储过程:
CREATE PROCEDURE ptest @min float,@max float,@njbh char(10) AS update b_basicinfo set sg=null where (sg<@min or sg>@max) and njbh=@njbh
GO
在Delphi中调用如下
SpupdateSG: TStoredProc;

程序:
SpupdateSG.ParamByName('@min').Value:= 40;
SpupdateSG.ParamByName('@max').Value:= 200;
SpupdateSG.ParamByName('njbh').Value:=nj;
SpupdateSG.ExecProc;


执行最后一句提示'no parameter type for parameter '@min'',过程停止;
请问高手怎么改
谢谢
 
SpupdateSG.Parameters[0].Value:= 40;
SpupdateSG.Parameters[1].Value:= 200;
SpupdateSG.Parameters[2].Value:=nj;
SpupdateSG.ExecProc;

nj是什么?如果不是变量请加引号。
 
呵呵,是变量
 
请大家帮忙看看,上面的存储过程写的有问题吗,我也找了些例子,可是这个问题就是没有解决
 
存储过程你在SQL Query Analyzer里调试一下,如果可以通过,就是Delphi的代码问题。
 
我自己觉得应该是存储过程写的有问题,可是不知道问题出在哪里
 
sql的语法没有问题。现在你遇到的是什么问题?执行时错误还是结果不正确?
 
执行通不过,到最后一句就出错了
 
在界面上控件TStoredProc 的状态是false,如果手工改为true的话也会报这个错误,提示提示no parameter type for parameter '@min'
 
他说的是no parameter type,你看看那个type啦,看看是不是SpupdateSG的设置不对。


下班了。
 
谢谢您我也快下班了,我先自己看看
 
问题没有解决,继续请教;
主要是有输入参数的sql server存储过程在Delphi中如何调用的问题
用个简单的例子
存储过程
CREATE PROCEDURE ptest @n integer as update book set jg=@n where jg=28
GO

Delphi程序
StoredProc1: TStoredProc;
代码截取
StoredProc1.ParamByName('@n').AsFloat:=32;
StoredProc1.ExecProc;

在执行最后一句时出错,说参数没有参数类型;
 
前面提到的问题已经解决
 
后退
顶部