当前位置:首页 » 存储配置 » delphisql存储过程

delphisql存储过程

发布时间: 2023-01-01 08:07:33

1. 关于DelPhi调用存储过程,用sql server自带的“创建存储过程向导”给表login建立一个更新存储过程。

关于DelPhi调用存储过程,用SQL server自带的“创建存储过程向导”给表login建立一个更新存储过程。
悬赏分:100 | 离问题结束还有 12 天 18 小时 | 提问者:风风我依 | 检举 存储过程代码如下:已知表login有passname和password两个字段。
CREATE PROCEDURE [update_login_1]
(@passname_1 [varchar],
@passname_2 [varchar](50),
@password_3 [varchar](50))

AS UPDATE [wqzx].[dbo].[login]

SET [passname] = @passname_2,
[password] = @password_3

WHERE
( [passname] = @passname_1)
GO
-------------------------------------------------------------------------------------
在delp调用该存储过程,要求只该改字段中的password,即建一个文本框将里面内容替换一个记录中的password,而保持passname不变,简单讲就是修改一个用户名的密码。怎么写代码?问题补充:

"强唐华"我试过这样写存储过程了,没用的,如果可以,那在delphi中怎么写代码调用这个存储过程?
强调下:这是sql自带建立的存储过程,就是由“创建存储过程向导”生成,我觉得不会错的,问题是怎么在Delphi中调用该存储过程,代码呢?

我建立了一个插入的存储过程,代码如下:
WITH StoredProc1 DO
begin
parambyname('@passname_1').AsString:=edit1.Text;
parambyname('@password_2').AsString:=edit2.Text;
execproc;
if params[0].asinteger=0 then
MessageDlg('添加新用户名成功!',mtinformation,[mbOK],0)
else
MessageDlg('添加用户失败!',mterror,[mbOK],0);
end;
这段代码是可以成功插入一个记录的。现在是想修改某个记录。

回答 共1条

CREATE PROCEDURE [dbo].[update_login]
(@name varchar(50),
@password [varchar](50))

AS
UPDATE useres SET password=@password WHERE name= @name
这么简单的存储过程,都不会用?
SqlConnection conn = new SqlConnection("Data Source=TQ-PC;Initial Catalog=tq;User ID=sa;Password=123");
SqlCommand cmd = new SqlCommand("update_login", conn);
cmd.CommandType = CommandType.StoredProcere;
cmd.Parameters.AddWithValue("@name", TextBox3.Text.Trim());
cmd.Parameters.AddWithValue("@password", TextBox4.Text.Trim());
conn.Open();
int i = cmd.ExecuteNonQuery();
if (i > 0)
Response.Write("密码修改成功!");
else
Response.Write("密码修改失败!");

2. delphi中如何调用sql存储过程

最好用
adoStoredProc.close;
adoStoredProc.ProcereName := '过程名';
adoStoredProc.Parameters.refresh;
adoStoredProc.Parameters.ParamByName('过程变量1').value := 变量1;
adoStoredProc.Parameters.ParamByName('过程变量2').value := 变量2;
try
adoStoredProc.execproc;
except
//执行过程失败处理代码;
end;
if adoStoredProc.parameters[0].value <> 0 then
begin
//存储过程返回值错误 处理代码
end;

不要用
Parameters[1].Value 这种形式 有如果存储过程增加参数 改起来不直观。

3. 在delphi 中怎么利用sql中的存储过程的返回值

写query控件sql语句的时候这样写:
declare
@r
int
exec
@r
=
myproc
select
@r
as
result
然后open,用fieldbynmae读取result字段的值

4. delphi 怎么调用SQL2005存储过程

用ADOquery 可以调用

ADOquery1.Add(p_getData :StrName, :StrField, :StrDT1, :StrDT2);

5. Delphi、MS SQL Server开发环境下存储过程的使用

一 概述 Delphi + MS SQL Server是目前最为流行的管理信息系统开发环境和工具 Delphi的强大数据库操作控件极大地减轻了开发人员的工作量 在这些控件中 最常用的有TQuery TTable TADOQuery TADOTable TADODataSete等 这些控件执行查询操作时有一个共同的特点 即将所有数据库记录从服务器取回客户端 再根据查询的条件进行筛选 很明显 如果有大量的数据在服务器与客户端之间传递 就会降低程序执行的速度 影响应用程序的性能 针对这种情况 MS SQL Server数据库和Delphi开发工具都提供了存储过程来解决这类问题 存储过程是一段在服务器上执行的程序 它在服务器端对数据库记录进行处理 再把结果返回到客户端 通过使用存储过程 一方面可以利用服务器强大的计算能力和速度 另一方面避免把大量的数据从服务器下载到客户端 减少网络上传输量 服务器只需将计算结果传给客户端 其效率之高是非常明显的

二 创建存储过程 在MS SQL Server上的存储过程可分为二类 一类是类似于select 查询 用于检索数据 检索到的数据能够以数据集的形式返回给客户端 如CREATE procere proc @dw char( )asselect dwdm from cchdwdm where dw=@dw该存储过程有一个输入参数 @dwdm 以数据集的形式返回结果 另一类存储过程是通过输出参数返回信息或不返回信息 或只执行一个动作 如 CREATE procere proc @m *** allint @m *** allint@result int OUTPUTasselect @result=@m *@m 该存储过程有二个输入参数@m @m 还有一个输出参数@result 按照创建存储过程的时机来划分 创建存储过程也有二种方式 一是利用MS SQL Server的Enterprise Manager中的SQL Server Query Analyzer工具 此方法较简单 只要输入存储过程语句并保存即可 创建存储过程的另一种方式是利用Delphi的控件 如TQuery TADOQuery 通过使用SQL语句在运行时动态地创建存储过程 如下例所示 with query dobeginparamcheck := false;with SQL dobeginclear;add( create procere proc );add( @dw char( ) );add( as );add( select dwdm from cchdwdm where dw=@dw );endexecsql;end;

三 存储过程的参数 存储过程一般有四种参数类型 *输入参数 由客户程序向存储过程传递*输出参数 由存储过程向客户传递*输入/输出参数 可双向传递*状态参数 由存储过程向客户返回错误信息通过使用Delphi控件TADOStoredProc或TStoredProc来设置或获取存储过程的参数 如 ADOStoredProc parameters parambyname( @name ) value:= 张三 ;

四 在Delphi中使用存储过程的方法 在Delphi中使用存储过程有以下几个步骤 把TADOStoredProc或TStoredProc放到窗体上 设置参数连接到MS SQL Server数据库 设置ProcereName参数 指定存储过程名 也可以在程序运行期设置 单击TParameters边上的省略号按钮 如果设置正确 则可看到所有的输入输出参数 在代码中设置存储过程的输入参数 执行存储过程并获取返回的数据 通过调用TADOStoredProc控件的parambyname方法 设置好所有的输入参数 再调用open方法执行存储过程 如果存储过程返回参数 同样用parambyname方法获取参数值 如果返回数据集 则用访问数据集的TFields的方法获取各记录 如以下代码所示

lishixin/Article/program/Delphi/201311/24981

6. delphi 中如何调用sql 存储过程

使用TADOStoredProc组件,可以,给你举个例子好了

with ADOStoredProc1 do
begin
Close;
Parameters.Clear;
ProcereName:='SaveDate_dbzsm'; //存储过程名称
Parameters.CreateParameter('v_wlid', ftString, pdInput, 20, fgUnassigned);//传入参数(数字代表长度)
Parameters.CreateParameter('v_ddid', ftString, pdInput, 20,fgUnassigned); //传入参数
Parameters.CreateParameter('v_tm', ftString, pdInput, 500,fgUnassigned); //传入参数
Parameters.CreateParameter('v_returnstr', ftString, pdoutput, 30,fgUnassigned); //返回值
//为参数赋值
Parameters[0].Value :=trim(edit1.text);
Parameters[1].Value := trim(edit2.text);
Parameters[2].Value := trim(edit2.text);
Parameters[3].Value := ' ';

ExecProc;
reuturn:= Trim(Parameters.ParamByName('v_returnstr').Value);
end;
reuturn就是返回值,你可以放到stringgrid 里面。

也可以用adoquery 连接存储过程。

with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('exec SaveDate_dbzsm :wlid,:ddid,:tm,:returnstr output');
Parameters.ParamByName('wlid').Value :=trim(edit1.text);
Parameters.ParamByName('ddid').Value :=trim(edit2.text);
Parameters.ParamByName('tm').Value := trim(edit3.text);
Parameters.ParamByName('returnstr').Value := ' ';
Open;
reuturn:= Parameters.ParamByName('returnstr').Value;
end;

http://..com/question/316727588.html

7. Delphi怎样使用存储过程参数

调用存储过程推荐使用Query,Adoquery组件
query.close;
query.sql.clear;
query.sql.add('exec db.prtemp(@id=:id)');
query.parambyname('id').asinteger:=1;
query.open;
----------------------------------------------------------------------------------------------------
也可用Tstoredproc
storedproc1.active=false;
storedproc1.databasename="dbname";
storedproc1.storedprocname="strdprcname";
storedproc1.params.clear;
storedproc1.params.createparam(ftstring,"p1",ptinput);
storedproc1.params.createparam(ftstring,"p2",ptinput);
storedproc1.params.parambyname("p1").asstring:=varstring1;
storedproc1.params.parambyname("p2").asstring:=varstring2;
storedproc1.active=true;
----------------------------------------------------------------------------------------------------
调用存储过程最好使用Query组件,本人就是用Tstoredproc组件而屡屡出错!这一段痛心疾首的错误老是涉及到ISAPI32.dll,让我这个丈二和尚模不到屁股。使用Query控件调用存储过程如下:
加入你的存储过程有两个参数:
CREATE PROCEDURE Procere_Name @proc1 int,@proc2 char(8)
AS
……
则你的Query1控件的代码如下:
With Query1 do
Begin
Close;
SQL.Clear;
SQL.Add(' Exec Procere_Name :proc1,:proc2 ');
ParamByName('proc1').Value:=4;
ParamByName('proc2').Value:='Hello';
Try
ExecSQL;
Except
raise;
End
End

8. delphi 如何接住sql 存储过程output传下来的参数

譬如这样一个存储过程
create procere proc_inserttea(@i int output,@id char(10),@name char(10),@title char(20),@grade char(5))
as
insert into teacher(Tid,Tname,title,Tgrade) values(@id,@name,@title,@grade)
select @i=id from teacher where Tid=@id
传出id这个参数,用ADOStoredProc去接收
storeproc.ProcereName:='proc_inserttea';
storeproc.Parameters.CreateParameter('i',ftInteger,pdOutput,0,null);
storeproc.Parameters.CreateParameter('id',ftString,pdInput,10,Edit6.Text);
storeproc.Parameters.CreateParameter('name',ftString,pdInput,10,Edit7.Text);
storeproc.Parameters.CreateParameter('title',ftString,pdInput,20,Edit8.Text);
storeproc.Parameters.CreateParameter('grade',ftString,pdInput,10,Edit9.Text);
storeproc.ExecProc;
TeaId:=storeproc.Parameters.ParamByName('i').Value;
这是一种方法

9. 在delphi 中怎么利用sql中的存储过程的返回值

存储过程:
Create procere proc_login
username varchar(20),
password varchar(20)
as
declare @result int
select @result=count(*) from table1 where user=@username and pass=@password
if @result=0
return 0
return 1
go

delphi代码:
var ret:integer;
......
with ADOStoredProc1 do
begin
Close;
ProcereName:='proc_login';
Parameters.Clear;
Parameters.Refresh;
Parameters.ParamByName('@username').Value:= Edit1.text;
Parameters.ParamByName('@password').Value:= Edit2.text;
ExecProc;
ret:= Parameters.ParamByName('@return_value').Value;
end;
if ret=1 //用户名密码匹配
begin
//你想要的操作
end

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:597
制作脚本网站 发布:2025-10-20 08:17:34 浏览:890
python中的init方法 发布:2025-10-20 08:17:33 浏览:584
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:768
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:688
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1015
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:259
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:118
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:808
python股票数据获取 发布:2025-10-20 07:39:44 浏览:716