存储过程的调用必给分(高分)
小虾想诸位请教一下“存储过程的调用的问题,有意者请书写详细一些,必给分(高分)
存储过程如下:
CREATE PROCEDURE chp.P_Description_insert_1
(@info_id_1 [info_id],
@medium_dscrpt_cn_2 [varchar](20),
@medium_dscrpt_en_3 [varchar](20),
@long_dscrpt_cn_4 [varchar](140),
@long_dscrpt_en_5 [varchar](140),
@add_info_cn_6 [varchar](350),
@add_info_en_7 [varchar](350),
@form_8 [varchar](35),
@sub_strength_cn_9 [varchar](35),
@sub_strength_en_10 [varchar](35),
@substance_cn_11 [varchar](35),
@substance_en_12 [varchar](35),
@strength_13 [varchar](20),
@color_cn_14 [varchar](30),
@color_en_15 [varchar](30),
@size_16 [varchar](17),
@organic_id_17 [varchar](3),
@irradiate_id_18 [varchar](3),
@genetic_id_19 [varchar](3),
@batch_id_20 [varchar](3))
AS
IF COALESCE(@medium_dscrpt_cn_2,
@medium_dscrpt_en_3,
@long_dscrpt_cn_4,
@long_dscrpt_en_5,
@add_info_cn_6,
@add_info_en_7,
@form_8,
@sub_strength_cn_9,
@sub_strength_en_10,
@substance_cn_11,
@substance_en_12,
@strength_13,
@color_cn_14,
@color_en_15,
@size_16,
@organic_id_17,
@irradiate_id_18,
@genetic_id_19,
@batch_id_20) IS NOT NULL
INSERT INTO [prd].[chp].[Description]
( [info_id],
[medium_dscrpt_cn],
[medium_dscrpt_en],
[long_dscrpt_cn],
[long_dscrpt_en],
[add_info_cn],
[add_info_en],
[form],
[sub_strength_cn],
[sub_strength_en],
[substance_cn],
[substance_en],
[strength],
[color_cn],
[color_en],
[size],
[organic_id],
[irradiate_id],
[genetic_id],
[batch_id])
VALUES
( @info_id_1,
@medium_dscrpt_cn_2,
@medium_dscrpt_en_3,
@long_dscrpt_cn_4,
@long_dscrpt_en_5,
@add_info_cn_6,
@add_info_en_7,
@form_8,
@sub_strength_cn_9,
@sub_strength_en_10,
@substance_cn_11,
@substance_en_12,
@strength_13,
@color_cn_14,
@color_en_15,
@size_16,
@organic_id_17,
@irradiate_id_18,
@genetic_id_19,
@batch_id_20)
GO
我要用Query 控件呢还是用Storedproc 控件呢,再者该怎么来写Sql语句呢!
谢谢诸位大虾了!
问题点数:42、回复次数:6Top
1 楼47522341(睡到8:30)回复于 2003-12-04 11:58:52 得分 22
我一般习惯用adoquery控件;
with adoquery1 do
begin
close;
sql.clear;
sql.text := 'exec chp.P_Description_insert_1 :1,:2,..';
parameters.parambyname('').value := ?;
..
execsql;
end;Top
2 楼47522341(睡到8:30)回复于 2003-12-04 11:59:21 得分 8
揭帖快;^_^;我差23分升级;^_^;Top
3 楼MartinWang(小磋磋)回复于 2003-12-04 12:14:36 得分 2
AdoStoredProc控件也可以!!:)
Top
4 楼Delphityro(下岗工人)回复于 2003-12-04 12:46:45 得分 2
我觉得用AdoStoredProc连接到存储过程比较合适Top
5 楼47522341(睡到8:30)回复于 2003-12-04 14:02:57 得分 8
呵呵;adostoredproc就adostoredproc吧;^_^;
先在 adostoredproc.parameters中设置参数列表;然后在程序传递参数的时候用;
adostoredproc.parameters.parambyname('参数1').value := edit1.text;
adostoredproc.parameters.parambyname('参数2').value := edit1.text;
adostoredproc.parameters.parambyname('参数3').value := edit1.text;
adostoredproc.parameters.parambyname('参数4').value := edit1.text;
adostoredproc.parameters.parambyname('参数5').value := edit1.text;
..
快揭帖赛;^_^;Top
6 楼yueyi(横勇无敌,天宝大将军)回复于 2003-12-04 14:11:53 得分 0
请问各位,如果我向存储过程里传递了一个字段名称的参数,应该如何使用?急急急急急!
DECLARE @find varchar(30)
SET @find = 'SH_RQ'
SELECT *
FROM ZB_YKJHML
WHERE @find <'2003-12-1'
WHERE @find <'2003-12-1'
@find好象只能放到表达式的右边,能不能放到左边啊?我很菜
我想根据传递来的字段名称选择条件字段,不知道应该怎么做!!
谢谢各位帮忙!
Top




