数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Delphi与SQL Server存储过程编程详解


发布日期:2020年06月19日
 
Delphi与SQL Server存储过程编程详解

前言

经常有很多初学者问到在delphi中如何调用SQL Server的存储过程?问题其实很好解决但问得多了也就不愿答了下面我将用实例进行说明从在SQL Server中创建存储过程到调用的完整实例

首先打开sql server管理器在pubs数据库中建一个测试表表名为test字段有idname和desc全部为字符型如果你不知道建表那么打开sql查询分析器贴上以下的代码然后按执行就会自动生成test表

use pubs

if exists (select * from dbosysobjects where id = object_id(N[dbo][test]) and OBJECTPROPERTY(id NIsUserTable) = )

drop table [dbo][test]

GO

CREATE TABLE [dbo][test] (

[id] [char] () COLLATE Chinese_PRC_CI_AS NOT NULL

[name] [char] () COLLATE Chinese_PRC_CI_AS NULL

[descrip] [char] () COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY]

GO

然后我们来创建一个存储过程其功能为在test中插入一条新记录创建存储过程的代码如下同样的你也可以复制到查询分析器里直接执行就可以:

CREATE PROCEDURE myInsert

@id char()

@name varchar()

@descrip varchar()

AS

begin

insert into test (idnamedescrip) values (@id@name@descrip)

if @@rowcount=

begin

raiserror(error)

rollback transaction

end

end

GO

接下来新建一个工程文件在form上放置如下控件并设置属性(括号内):

一个ADOConnection: TADOConnection;

(LoginPrompt:=false;

connectionstring:=Provider=SQLOLEDB;Persist Security Info=True;User ID=sa;Initial Catalog=pubs;Data Source=(local);)

一个ADOStoredProc: TADOStoredProc;属性为:

(connection:=adoconnection;

procedurename:=myinsert;//上面我们创建的那个)

一个ADOTable: TADOTable;属性为:

(connection:=adoconnection;

tablename:=test;//上面我们创建的那个)

一个Datasource属性为:

(dataset:=Tadotable;)

一个 DBGrid: TDBGrid;属性为

(datasource:=datasource;)

一个Button在其Onclick中写到:

with adoStoredproc do

begin

ParametersParamByName(@id)Value := ;

parametersParamByName(@name)Value := myname;

parametersParamByName(@descrip)Value :=nosubject;

ExecProc;

end;

AdotableClose;

adotableOpen;               

上一篇:应用SQL链接服务器访问远程Access数据库

下一篇:SQL技巧:取消用户自定义数据库对象的公共读取权限