当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 电话号码设成整型好还是字符型好呢? ......
    摘要: pb真愁人。前几天ole还用得好好的,今天一插入ole控件pb就自动退出 ......


:如果用ado实现调用sql脚本

sos~~

NO.1   作者: small_wei

在VC   中使用WinExec(s,SW_HIDE)来执行sqlw.exe  
   
  isqlw   实用工具使您得以输入   Transact-SQL   语句、系统存储过程和脚本文件。通过设置快捷方式或创建批处理文件,可以启动预配置的   SQL   查询分析器。  
   
  语法  
  isqlw  
          [-?]   |  
          [  
                  [-S   server_name[\instance_name]]  
                  [-d   database]  
                  [-E]   [-U   user]   [-P   password]  
                  [{-i   input_file}   {-o   output_file}   [-F   {U|A|O}]]  
                  [-f   file_list]  
                  [-C   configuration_file]  
                  [-D   scripts_directory]  
                  [-T   template_directory]  
          ]  
   
  参数-?  
   
  显示用法信息。  
   
  -S   server_name[\instance_name]:  
   
  指定要连接到的   Microsoft®   SQL   Server™   2000   实例。指定用于连接到该服务器上的   SQL   Server   2000   默认实例的   server_name。指定用于连接到该服务器上的   SQL   Server   2000   命名实例的   server_name\instance_name。如果未指定服务器,isqlw   将连接到本地计算机上的   SQL   Server   默认实例。从网络上的远程计算机执行   isqlw   时,此选项是必需的。  
   
  -d   database  
   
  当启动   isqlw   时,发出一个   USE   database   语句。默认值为用户的默认数据库。  
   
  -E  
   
  使用信任连接而不请求密码。  
   
  -U   user  
   
  用户登录   ID。登录   ID   区分大小写。  
   
  -P   password  
   
  是登录密码。默认设置为   NULL。  
   
  -i   input_file  
   
  标识包含一批   SQL   语句或存储过程的文件。必须同时指定   -i   和   -o   选项。如果指定   -i   和   -o   选项,将执行输入文件中的查询,并将结果保存到输出文件中。在查询执行过程中不显示用户接口。当执行完成后,进程退出。  
   
  -o   output_file  
   
  标识接收来自   isqlw   的输出的文件。必须同时指定   –i   和   –o   选项。如果指定   -i   和   -o   选项,将执行输入文件中的查询,并将结果保存到输出文件中。在查询执行过程中不显示用户接口。当执行完成后,进程退出。如果未使用   -F   指定文件格式,则输出文件使用与输入文件相同的类型。  
   
  -F   {U|A|O}  
   
  是输入文件和输出文件的格式。值包括   Unicode、ANSI   和   OEM。如果未指定   -F,则使用自动模式。  
   
  -f   file_list  
   
  将列出的文件装载到   SQL   查询分析器中。使用   -f   选项,可以装载一个或多个文件。如果指定了多个文件,则以相同的连接上下文将这些文件打开。文件名可以包含该文件所驻留的目录路径。可以使用通配符,如   C:\Test\*.sql   中的星号   (*)。  
   
  -C   configuration_file  
   
  使用配置文件中指定的设置。其它在命令提示下显式指定的参数将重写相应配置文件中的设置。  
   
  -D   scripts_directory  
   
  重写在注册表中或在用   –C   指定的配置文件中指定的默认存储脚本目录。该值不保留在注册表或配置文件中。若要在   SQL   查询分析器中查看该选项的当前值,请单击"工具"菜单,然后单击"选项"命令。  
   
  -T   template_directory  
   
  重写在注册表中或在用   –C   指定的配置文件中指定的默认模板目录。该值不保留在注册表或配置文件中。若要在   SQL   查询分析器中查看该选项的当前值,请单击"工具"菜单,然后单击"选项"命令。  
   
   
  注释  
  有用户界面或没有用户界面时都可使用   isqlw   实用工具。若要在没有用户界面的情况下运行   isqlw,请指定有效登录信息和输入及输出文件。isqlw   将执行输入文件的内容,并将结果保存到输出文件中。  
  例:  
  isqlw   -d   pubs   -E   -f   "c:\Program   Files\Microsoft   SQL   Server\MSSQL\Install\instpubs.sql"   "c:\Program   Files\Microsoft   SQL   Server\MSSQL\Install\instcat.sql"  
 

NO.2   作者: zgdhj95

可以这么解决,你在数据库上建立一个存储过程,  
  CREATE   PROCEDURE   exe_sqlstr   @sqlstr   varchar(200)      
  AS  
  EXEC   (@sqlstr)  
  这个存储过程exe_sqlstr   什么也不错,就是执行传进来的参数。然后你在ADO里面就可以这么写(用VB写的,具体到VC你自己解决   :)   )  
  Dim   prmByRoyalty   As   ADODB.Parameter     定义一个ADO   Parameter     对象  
  Dim   cmdsp   As   New   ADODB.Command               定义一个ADO   COMMAND对象  
  Dim   sqlstr   as   string  
   
  我用一个两句SELECT   组成的字符串来做实验,具体的原理跟打开一个SQL文件是一样的  
  sqlstr   =   "   SELECT   *   FROM   BJSZ   SELECT   *   FROM   BJH"    
   
  Set   cmdsp.ActiveConnection   =   adocnn        
  创建Parameter     对象,这个参数就是用来传入SQL字符串的  
  Set   prmByRoyalty   =   cmdsp.CreateParameter("@sqlstr",   adVarChar,   adParamInput,   200)  
   
  With   cmdsp  
          .CommandType   =   adCmdStoredProc  
          .CommandText   =   "exe_sqlstr"       这个exe_sqlstr刚刚建好的那个存储过程  
          .Parameters.Append   prmByRoyalty     添加这个参数  
  将从SQL文件中读出的字符串赋值到这个参数,具体这个参数的长度可以在创建的时候修改  
  就是上面的CreateParameter语句中最后的那个200  
    prmByRoyalty.Value   =   sqlstr  
  End   With  
  cmdsp.Execute  
  执行这个COMMAND,然后就可以了,你试试看吧


 ·按ctrl+a察看该图片,笑死你    »显示摘要«
    摘要: 按ctrl+a察看该图片,笑死你 http://www.freweb.net/frebbs/leo_topic.php?forum=12&topic=319 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE