正文

Connection,recordset,command 这三个在执行SQL语句2007-12-25 09:48:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/sword2008/31595.html

分享到:

Open   方法   (ADO   Connection)  
               
   
  打开到数据源的连接。  
   
  语法  
   
  connection.Open   ConnectionString,   UserID,   Password,   Options  
   
  参数  
   
  ConnectionString       可选,字符串,包含连接信息。参阅   ConnectionString   属性可获得有效设置的详细信息。  
   
  UserID       可选,字符串,包含建立连接时所使用用户名。  
   
  Password       可选,字符串,包含建立连接时所使用密码。  
   
  Options       可选,ConnectOptionEnum   值。决定该方法是在连接建立之后(异步)还是连接建立之前(同步)返回。可以是如下某个常量:  
   
  常量   说明    
  adConnectUnspecified   (默认)同步打开连接。    
  adAsyncConnect   异步打开连接。ConnectComplete   事件可以用于决定连接何时可用。    
   
   
   
  说明  
   
  使用   Connection   对象的   Open   方法可建立到数据源的物理连接。在该方法成功完成后连接是活跃的,可以对它发出命令并且处理结果。  
   
  使用可选的   ConnectionString   参数指定连接字符串,它包含由分号分隔的一系列   argument   =   value   语句。ConnectionString   属性自动继承用于   ConnectionString   参数的值,因此可在打开之前设置   Connection   对象的   ConnectionString   属性,或在   Open   方法调用时使用   ConnectionString   参数设置或覆盖当前连接参数。  
   
  如果在   ConnectionString   参数和可选的   UserID   及   Password   参数中传送用户和密码信息,那么   UserID   和   Password   参数将覆盖   ConnectionString   中指定的值。  
   
  在对打开的   Connection   的操作结束后,可使用   Close   方法释放所有关联的系统资源。关闭对象并非将它从内存中删除;可以更改它的属性设置并在以后再次使用   Open   方法打开它。要将对象完全从内存中删除,可将对象变量设置为   Nothing。  
   
  远程数据服务用法         当在客户端的   Connection   对象上使用   Open   方法时,在   Connection   对象上打开   Recordset   之前   Open   方法其实并未建立到服务器的连接。  
   
  /////////////////////////////////////////////////////////////////////////////////  
   
  Open   方法   (ADO   Recordset)  
               
   
  打开游标。  
   
  语法  
   
  recordset.Open   Source,   ActiveConnection,   CursorType,   LockType,   Options  
   
  参数  
   
  Source       可选,变体型,计算   Command   对象的变量名、SQL   语句、表名、存储过程调用或持久   Recordset   文件名。  
   
  ActiveConnection       可选。变体型,计算有效   Connection   对象变量名;或字符串,包含   ConnectionString   参数。  
   
  CursorType       可选,CursorTypeEnum   值,确定提供者打开   Recordset   时应该使用的游标类型。可为下列常量之一(参阅   CursorType   属性可获得这些设置的定义)。  
   
  常量   说明    
  AdOpenForwardOnly   (默认值)打开仅向前类型游标。    
  AdOpenKeyset   打开键集类型游标。    
  AdOpenDynamic   打开动态类型游标。    
  AdOpenStatic   打开静态类型游标。    
   
   
   
  LockType       可选。确定提供者打开   Recordset   时应该使用的锁定(并发)类型的   LockTypeEnum   值,可为下列常量之一(参见   LockType   属性可获得详细信息)。  
   
  常量   说明    
  AdLockReadOnly   (默认值)只读   —   不能改变数据。    
  AdLockPessimistic   保守式锁定(逐个)   —   提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即锁定数据源的记录。    
  AdLockOptimistic   开放式锁定(逐个)   —   提供者使用开放式锁定,只在调用Update   方法时才锁定记录。    
  AdLockBatchOptimistic   开放式批更新—用于批更新模式(与立即更新模式相对)。    
   
   
   
  Options       可选,长整型值,用于指示提供者如何计算   Source   参数(如果它代表的不是   Command   对象),或从以前保存   Recordset   的文件中恢复   Recordset。可为下列常量之一(参见   CommandType   属性可获得该列表中前五个常量的详细说明)。  
   
  常量   说明    
  adCmdText   指示提供者应该将   Source   作为命令的文本定义来计算。    
  adCmdTable   指示   ADO   生成   SQL   查询以便从在   Source   中命名的表中返回所有行。    
  adCmdTableDirect   指示提供者更改从在   Source   中命名的表中返回所有行。    
  adCmdStoredProc   指示提供者应该将   Source   视为存储过程。    
  adCmdUnknown   指示   Source   参数中的命令类型为未知。    
  adCmdFile   指示应从在   Source   中命名的文件中恢复保留(保存的)Recordset。    
  adAsyncExecute   指示应异步执行   Source。    
  adAsyncFetch   指示在提取   Initial   Fetch   Size   属性中指定的初始数量后,应该异步提取所有剩余的行。如果所需的行尚未提取,主要的线程将被堵塞直到行重新可用。    
  adAsyncFetchNonBlocking   指示主要线程在提取期间从未堵塞。如果所请求的行尚未提取,当前行自动移到文件末尾。    
   
   
   
  说明  
   
  使用   Recordset   对象的   Open   方法可打开代表基本表、查询结果或者以前保存的   Recordset   中记录的游标。  
   
  使用可选的   Source   参数指定使用下列内容之一的数据源:Command   对象变量、SQL   语句、存储过程、表名或完整的文件路径名。  
   
  如果   Source   是文件路径名,它可以是完整路径(“c:\dir\file.rst”)、相对路径(“..\file.rst”)或   URL(“http://files/file.rst”)。  
   
  ActiveConnection   参数对应于   ActiveConnection   属性,并指定在哪个连接中打开   Recordset   对象。如果传送该参数的连接定义,则   ADO   使用指定的参数打开新连接。可以在打开   Recordset   之后更改该属性的值以便将更新发送到其他提供者。或者可以将该属性设置为   Nothing(在   Microsoft   Visual   Basic   中)以便将   Recordset   与所有提供者断开。  
   
  对于直接对应于   Recordset   对象属性的参数(Source、CursorType   和   LockType),参数和属性的关系如下:    
   
  在   Recordset   对象打开之前属性是读/写。  
   
   
  除非在执行   Open   方法时传送相应的参数,否则将使用属性设置。如果传送参数,则它将覆盖相应的属性设置,并且用参数值更新属性设置。  
   
   
  在打开   Recordset   对象后,这些属性将变为只读。  
  注意       对于其   Source   属性被设置为有效   Command   对象的   Recordset   对象,即使   Recordset   对象没有打开,ActiveConnection   属性也是只读的。    
   
  如果在   Source   参数中传送   Command   对象并且同时传递   ActiveConnection   参数,那么将产生错误。Command   对象的   ActiveConnection   属性必须已经设置为有效的   Connection   对象或者连接字符串。  
   
  如果在   Source   参数中传送的不是   Command   对象,那么可以使用   Options   参数优化对   Source   参数的计算。如果没有定义   Options   则性能将会降低,原因是   ADO   必须调用提供者以确定参数是否为   SQL   语句、存储过程或表名。如果已确定所用的   Source   类型,则可以设置   Options   参数以指示   ADO   直接跳到相关的代码。如果   Options   参数不匹配   Source   类型,将产生错误。  
   
  如果不存在与   Recordset   关联的连接,Options   参数的默认值将为   adCmdFile。这是持久   Recordset   对象的典型情况。  
   
  如果数据源没有返回记录,那么提供者将   BOF   和   EOF   属性同时设置为   True,并且不定义当前记录位置。如果游标类型允许,仍然可以将新数据添加到该空   Recordset   对象。  
   
  在打开的   Recordset   对象上完成操作时,可使用   Close   方法释放任何相关的系统资源。关闭对象并非将它从内存中删除,可以更改它的属性设置并且在以后使用   Open   方法再次将其打开。要将对象从内存中完全删除,可将对象变量设置为   Nothing。  
   
  在设置   ActiveConnection   属性之前调用不带操作数的   Open,可通过将字段追加到   Recordset   Fields   集合创建   Recordset   的实例。  
   
  如果已经将   CursorLocation   属性设置为   adUseClient,就可以采用两种途径之一异步检索行。建议使用的方法是将   Options   设置为   adAsyncFetch。或者,可以使用在   Properties   集合中的“异步行集合处理”动态属性,但如果未将   Options   参数设置为   adAsyncFetch,则可能丢失相关的被检索事件。  
   
  注意       在   MSRemote   提供者中的背景提取仅能通过   Open   方法的   Options   参数得到支持。  
Execute   方法   (ADO   Command)  
               
   
  执行在   CommandText   属性中指定的查询、SQL   语句或存储过程。  
   
  语法  
   
  对于按行返回的   Command:  
   
  Set   recordset   =   command.Execute(   RecordsAffected,   Parameters,   Options   )  
   
  对于非按行返回的   Command:  
   
  command.Execute   RecordsAffected,   Parameters,   Options  
   
  返回值  
   
  返回   Recordset   对象引用。  
   
  参数  
   
  RecordsAffected       可选,长整型变量,提供者向其返回操作所影响的记录数目。RecordsAffected   参数仅应用于操作查询或存储过程。RecordsAffected   不返回由返回结果的查询或存储过程所返回的记录数目。详细信息,请使用   RecordCount   属性。  
   
  Parameters       可选,变体型数组,使用   SQL   语句传送的参数值。(用该参数传送时输出参数将不返回正确值。)  
   
  Options       可选,长整型值,指示提供者如何计算   Command   对象的   CommandText   属性。该值可为下列常量之一:  
   
  常量   说明    
  AdCmdText   指示提供者应按命令的文本定义(如   SQL   语句)来计算   CommandText。    
  AdCmdTable   指示   ADO   应生成   SQL   查询以便从   CommandText   命名的表中返回所有行。    
  AdCmdTableDirect   指示提供者应从   CommandText   命名的表中返回所有行。    
  AdCmdStoredProc   指示提供者应按存储过程计算   CommandText。    
  AdCmdUnknown   指示   CommandText   中的命令类型未知。    
  adAsyncExecute   指示命令应异步执行。    
  adAsyncFetch   指示对由   CacheSize   属性指定的初始数量之后的剩余行应使用异步提取。    
   
   
   
  本列表中前   4   个常量的详细说明请参见   CommandType   属性。  
   
  说明  
   
  使用   Command   对象的   Execute   方法可执行在对象的   CommandText   属性中指定的查询。如果   CommandText   属性指定按行返回查询,执行所产生的任何结果都将存储在新的   Recordset   对象中。如果该命令不是按行返回查询,则提供者返回关闭的   Recordset   对象。某些应用程序语言允许忽略该返回值(如果不需要任何   Recordset)。  
   
  如果查询带有参数,将使用   Command   对象中参数的当前值,除非通过   Execute   调用传送的参数覆盖它们。可以在调用   Execute   方法时通过省略某些参数的新值来覆盖参数子集。指定参数的次序与其在方法中被传送的次序相同。例如,如果有   4   个(或更多)参数并且希望只为第一个和第四个参数传送新值,则可以将   Array(var1,,,var4)   作为   Parameters   参数传送。  
   
  注意         在   Parameters   参数中传送时输出参数将不返回正确的值。  
   
  该操作结束后将发出   ExecuteComplete   事件  
   
  ///////////////////////////////////////////////////////////////////////  
   
  Execute   方法   (ADO   Connection)  
               
   
  执行指定的查询、SQL   语句、存储过程或特定提供者的文本等内容。  
   
  语法  
   
  对于非按行返回的命令字符串:  
   
  connection.Execute   CommandText,   RecordsAffected,   Options    
   
  对于按行返回的命令字符串:  
   
  Set   recordset   =   connection.Execute   (CommandText,   RecordsAffected,   Options)  
   
  返回值  
   
  返回   Recordset   对象引用。  
   
  参数  
   
  CommandText         字符串,包含要执行的   SQL   语句、表名、存储过程或特定提供者的文本。  
   
  RecordsAffected         可选,长整型变量,提供者向其返回操作所影响的记录数目。  
   
  Options         可选,长整型值,指示提供者应如何计算   CommandText   参数,可为下列值:  
   
  常量   说明    
  AdCmdText   指示提供者应按命令的文本定义计算   CommandText。    
  AdCmdTable   指示   ADO   应生成   SQL   查询以便从   CommandText   命名的表中返回所有行。    
  AdCmdTableDirect   指示提供者应从   CommandText   命名的表中返回所有行。    
  AdCmdTable   指示提供者应按表名计算   CommandText。    
  AdCmdStoredProc   指示提供者应按存储过程计算   CommandText。    
  AdCmdUnknown   指示   CommandText   参数中的命令类型未知。    
  adAsyncExecute   指示命令应该异步执行。    
  adAsyncFetch   指示对在   CacheSize   属性指定的初始数量之后的剩余行使用异步提取。    
   
   
   
  本列表中前   4   个常量的详细说明请参见   CommandType   属性。  
   
  说明  
   
  使用   Connection   对象的   Execute   方法,可执行任何在指定连接的   CommandText   参数中传送给方法的查询。如果   CommandText   参数指定按行返回的查询,执行产生的任何结果将存储在新的   Recordset   对象中。如果命令不是按行返回的查询,则提供者返回关闭的   Recordset   对象。  
   
  返回的   Recordset   对象始终为只读、仅向前的游标。如需要具有更多功能的   Recordset   对象,应首先创建具有所需属性设置的   Recordset   对象,然后使用   Recordset   对象的   Open   方法执行查询并返回所需游标类型。  
   
  CommandText   参数的内容对提供者是特定的,并可以是标准的   SQL   语法或提供者支持的任何特殊命令格式。  
   
  该操作完成后将产生   ExecuteComplete   事件。  

自己理解为

command执行存储过程

阅读(4246) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册