All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
Asp.net日期字符串格式化显示方法_[Asp.Net教程]
ASP.NET服务器控件PleaseWaitButton_[Asp.Net教程]
细说HTML元素的ID和Name属性的区别_[Html教程]
php函数substr实现asp中left和right功能_php资料_编程技术
ASP.NET教程:AccessDataSource的使用_[Asp.Net教程]
20个实用PHP实例代码_[PHP教程]
用javascript-css实现GridView行背景色交替、点击行变色_[Asp.Net教程]
查询同一表内多字段同时重复记录的SQL语句_[SQL Server教程]
ASP.Net2.0,GridView,多列排序,显示排序图标,分页_[Asp.Net教程]
PHP中的sprintf()函数的学习研究笔记_php资料_编程技术
Reading number is top 10 pictures
30 beautiful school beauty1
影评-疯子,我爱你
来几张有特色的图片
The money of more than 100 countries and regions6
Average female college students1
美女
Sora aoi mirror memorial classics1
Ashlynn Brooke a group sexy photo4
Female model behind the bitterness, often being overcharged5
赵惟依写真2
Download software ranking
Unix video tutorial1
Macromedia Dreamweaver 8
Tram sex maniac 2 (H) rar bag9
Boxer Classic video1
WebService在.NET中的实战应用教学视频 → 第2集
Love the forty days
Unix video tutorial9
linux初级教程
在线棋牌游戏3.05版
网络管理员第三版
aaa published in(发表于) 2014/7/19 0:10:59 Edit(编辑)
delphi存储过程的使用实例

delphi存储过程的使用实例

delphi存储过程的使用实例

存储过程

1.创建存储过程

创建存储过程主要用SQL语句CREATE PROCEDURE来实现,并用“Exec语句+存储过程名”来执行已创建的存储过程。

本示例是用存储过程来执行多表合并的操作。

操作步骤如下:

(1)运行Delphi,在窗体中添加TADOConnection、TADOQuery、TDataSource、TButton、TEdit和TDBGrid等组件。

(2)主要程序代码如下:

with ADOQuery1 do

begin

Close;

SQL.Clear;

SQL.add('create procedure '+Edit1.Text); //创建存储过程

SQl.Add('as ');

SQL.Add('select k.学生编号,k.学生姓名,j.外语 FROM tb_stu AS k INNER JOIN tb_mark AS j ON k.学生编号 = j.学生编号 WHERE (((k.学生编号)=[j].[学生编号]))');

ExecSQL;

SQL.Clear;

SQL.Add('Exec '+Edit1.Text); //执行存储过程

Open;

end;

2.对存储过程进行加密

在创建存储过程时,可以为存储过程加密,这样用户可以隐藏存储过程的文本,避免其他用户在存储过程属性中查看其语句,主要用WITH ENCRYPTION选项实现。在对存储过程加密前必须对已有的存储过程进行删除。

下面用存储过程的WITH ENCRYPTION选项来创建一个加密存储过程。

操作步骤如下:

(1)运行Delphi,在窗体中添加TADOConnection、TADOQuery、TDataSource、TButton、TEdit、TMemo和TDBGrid等组件。

(2)主要程序代码如下:

with ADOQuery1 do

begin

close;

SQL.Clear;

SQL.Add('if EXISTS(SELECT name FROM sysobjects WHERE name='+QuotedStr(Trim(Edit1.Text))+' AND type = ''p'')'); //判断存储过程是否存在

SQL.Add('DROP PROCEDURE '+Trim(Edit1.Text)); //删除已有的存储过程

EXECSQL;

close;

SQL.Clear;

//为存储过程加密

SQL.Add('CREATE PROCEDURE '+Edit1.Text+' WITH ENCRYPTION AS '+Trim(Memo1.Text));

EXECSQL;

end;

3.用存储过程附加数据库

使用存储过程附加数据库可以方便地将没有连接的数据库附加到当前服务器上,只是在附加数据库前先将存储过程所在的数据库以手动方式附加到服务器上。附加数据库主要用系统存储过程sp_attach_db来实现。在存储过程中不可以用占位符N。

下面用存储过程将服务器以外的数据库附加到服务器上,只适用于英文数据库名。

操作步骤如下:

(1)运行Delphi,在窗体中添加TADOConnection、TADOQuery、TDataSource、TButton和TEdit等组件。

(2)主要程序代码如下:

创建一个含有参数的存储过程。

with ADOQuery1 do

begin

close;

SQL.Clear;

SQL.Add('CREATE PROCEDURE '+Trim(Edit4.Text));

SQL.Add('@Table varchar(20),');

SQL.Add('@date varchar(200),');

SQL.Add('@LOG varchar(200)');

SQL.Add('AS');

SQL.Add('EXEC sp_attach_db @dbname=@Table,@filename1=@date,@filename2 =@LOG');

EXECSQL;

end

执行带参数的存储过程。

with ADOQuery1 do

begin

close;

SQL.Clear;

SQL.Add('if EXISTS(SELECT name FROM sysobjects WHERE name='+QuotedStr(Trim(Edit4.Text))+' AND type = ''p'')'); //判断存储过程是否存在

//以传参的形式调用存储过程

SQL.Add('EXEC '+Trim(Edit4.Text)+' @Table='+QuotedStr(Trim(Edit1.Text))+',@date='+QuotedStr(Trim(Edit2.Text))+ ',@LOG='+QuotedStr(Trim(Edit3.Text)));

EXECSQL;

end;

4.用存储过程备份数据库

备份数据库与附加数据库所用的方法基本相同,只是备份数据库用SQL语句BACKUP DATABASE来实现,而附加数据库则用系统存储过程sp_attach_db来实现。

下面利用存储过程对服务器上的任意数据库进行备份。

操作步骤如下:

(1)运行Delphi,在窗体中添加TADOConnection、TADOQuery、TDataSource、TButton和TEdit等组件。

(2)主要程序代码如下:

创建一个含有参数的存储过程。

with ADOQuery1 do

begin

close;

SQL.Clear;

SQL.Add('CREATE PROCEDURE '+Trim(Edit3.Text));

SQL.Add('@name varchar(20),');

SQL.Add('@way varchar(200)');

SQL.Add('AS');

SQL.Add('backup database @name to disk=@way');

EXECSQL;

Showmessage('存储过程'+Edit3.Text+'创建成功。');

end

执行存储过程备份数据库。

with ADOQuery1 do

begin

close;

SQL.Clear;

SQL.Add('if EXISTS(SELECT name FROM sysobjects WHERE name='+QuotedStr(Trim(Edit3.Text))+' AND type = ''p'')'); //判断存储过程是否存在

//以传参的形式调用存储过程

SQL.Add('EXEC '+Trim(Edit3.Text)+' @name='+Trim(ComboBox1.Text)+',@way='+QuotedStr(Trim(Edit2.Text)));

EXECSQL;

end;




添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.