正在加载图片...
china-pup.com 第9章连接、命令和过程277 实需要,不要创建记录集。 虽然这样做也可以,但并不是很灵活,因为仅仅处理一种类型的书。更好的做法是创 个允许我们选择书类型的过程,这样就不必为每类书创建一个过程。同样也可去掉固定的 10%的更新,这样使得灵活性更好。那么,如何才能做到这一点呢,很简单,使用参数。 参数 存储过程的参数(或变量)与一般的过程和函数的参数一样,可以传到函数内部,然后函数 可以使用它的值。 SQL Server(其他数据库也一样,包括 Access)中的存储过程都具有这样的功 为了使存储过程能处理多种类型的书,甚至允许用户指定价格的增加(或减少),需要增加 一些参数 CREATE PROCEDURE usp_UpdatePrices percent Money 大(1+ PErcent/100) 现在,存储过程 usp UpdatePrices'带有两个参数 一个是书的类型(@Type)。 一个是书价变化的百分比( pErcent) 与Ⅴ SCript的函数一样,这些参数都是变量。然而,与 VBScript和其他脚本语言不同是: 在这些脚本语言中的变量都是 variant类型,而SQL变量具有确定的类型(char、 Money等等) 必须遵守SQL变量的命名规范,即变量必须以符号@开始 注意,我们让百分数作为一个整数(如10代表10%),而不是作为一个分数值传入此过程 这只是让存储过程变得更直观一些。 2. Parameters集合 那么,现在有了带参数的存储过程,但如何通过ADO来调用它呢?我们已经见到了如何 用 Command对象调用不带参数的存储过程,实际上,它们之间并没有什么不同。不同之处在 于 Parameters集合的使用。 Parameters集合包含存储过程中每个参数的 Parameter对象。然而,ADO并不会自动地知 道这些参数是什么,因此,必须用 Create Parameter方法创建它们,采用下面的形式: Set Parameter Command CreateParameter (Name, [Type], [Direction) 参数及说明如表9-3所示。 表9-3 Create Parameter方法的参数及说明 Name 参数名。这是 Parameters集合中的参数名,不是存储过程中的参数名。然而,使用相同 的名字是一个好的做法 参数的数据类型。可以是一个 adData Type常数,详见附录 Direction 参数的方向,指明是参数向存储过程提供信息,还是存储过程向ADO返回信息。可以 是下面的值之实需要,不要创建记录集。 虽然这样做也可以,但并不是很灵活,因为仅仅处理一种类型的书。更好的做法是创建 一个允许我们选择书类型的过程,这样就不必为每类书创建一个过程。同样也可去掉固定的 1 0 %的更新,这样使得灵活性更好。那么,如何才能做到这一点呢,很简单,使用参数。 1. 参数 存储过程的参数(或变量)与一般的过程和函数的参数一样,可以传到函数内部,然后函数 可以使用它的值。SQL Server(其他数据库也一样,包括 A c c e s s )中的存储过程都具有这样的功 能。 为了使存储过程能处理多种类型的书,甚至允许用户指定价格的增加 (或减少),需要增加 一些参数: 现在,存储过程u s p _ U p d a t e P r i c e s带有两个参数: • 一个是书的类型( @ Ty p e )。 • 一个是书价变化的百分比( @ P e r c e n t )。 与V B S c r i p t的函数一样,这些参数都是变量。然而,与 V B S c r i p t和其他脚本语言不同是: 在这些脚本语言中的变量都是 v a r i a n t类型,而S Q L变量具有确定的类型 ( c h a r、M o n e y等等)。 必须遵守S Q L变量的命名规范,即变量必须以符号 @开始。 注意,我们让百分数作为一个整数 (如1 0代表1 0 % ),而不是作为一个分数值传入此过程。 这只是让存储过程变得更直观一些。 2. Pa r a m e t e r s集合 那么,现在有了带参数的存储过程,但如何通过 A D O来调用它呢?我们已经见到了如何 用C o m m a n d对象调用不带参数的存储过程,实际上,它们之间并没有什么不同。不同之处在 于Pa r a m e t e r s集合的使用。 Pa r a m e t e r s集合包含存储过程中每个参数的 Pa r a m e t e r对象。然而, A D O并不会自动地知 道这些参数是什么,因此,必须用 C r e a t e P a r a m e t e r方法创建它们,采用下面的形式: 参数及说明如表9 - 3所示。 表9-3 CreateParameter方法的参数及说明 参 数 说 明 N a m e 参数名。这是P a r a m e t e r s集合中的参数名,不是存储过程中的参数名。然而,使用相同 的名字是一个好的做法 Ty p e 参数的数据类型。可以是一个 a d D a t a Ty p e常数,详见附录 D i r e c t i o n 参数的方向,指明是参数向存储过程提供信息,还是存储过程向 A D O返回信息。可以 是下面的值之一: 第 9章 连接、命令和过程计计277 下载
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有