使用DOS重定位技术执行isqlw(SQL查询分析器)

作者:chenjieb520

          笔者之前在一个项目里面需要调用SQL查询分析器,并且通过命令行的形式将执行结果返回。于是笔者就采用了 DOS重定位技术进行解决。现在简单说明一下如何用VC++来进行实现。

命令行调用SQL询分析器

isqlw 实用工具(SQL 查询分析器)使您得以输入 Transact-SQL 语句、系统存储过程和脚本文件。通过设置快捷方式或创建批处理文件,可以启动预配置的 SQL 查询分析器[12]。isqlw.exe的依赖文件如下表: 

6-1

pfclnt80.dll   pfuttl80.dll   semsfc.dll    sqlgui.dll   sqlqry.dll

sqlresld.dll   sqlsvc.dll     sqlunirl.dll  OBJMGR.DLL

目录Resources

目录1033

isqlw.rll pfclnt80.rll pfuttl80.rll semsfc.rll

sqlgui.rll sqlqry.rll sqlsvc.rll OBJMGR.RLL

目录2052

isqlw.rll pfclnt80.rll pfuttl80.rll semsfc.rll

sqlgui.rll sqlqry.rll sqlsvc.rll OBJMGR.RLL

                               表6-1

Isqlw运行的语法参数如下:

语法

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 实例。

-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

-F {U|A|O}是输入文件和输出文件的格式。值包括 UnicodeANSI 和 OEM。如果未指定 -F,则使用自动模式(如果文件标为 Unicode 格式,则以 Unicode 格式打开;否则,以 ANSI 格式打开文件)。

-f file_list将列出的文件装载到 SQL 查询分析器中。使用 -f 选项,可以装载一个或多个文件(文件名以单个空格分开)。如果指定了多个文件,则以相同的连接上下文将这些文件打开。文件名可以包含该文件所驻留的目录路径。可以使用通配符,如 C: \*.sql 中的星号 (*)

-C configuration_file使用配置文件中指定的设置。其它在命令提示下显式指定的参数将重写相应配置文件中的设置。

-D scripts_directory重写在注册表中或在用 

–C 指定的配置文件中指定的默认存储脚本目录。该值不保留在注册表或配置文件中。若要在 SQL 查询分析器中查看该选项的当前值,请单击"工具"菜单,然后单击"选项"命令。

-T template_directory重写在注册表中或在用 –C 指定的配置文件中指定的默认模板目录。该值不保留在注册表或配置文件中。若要在 SQL 查询分析器中查看该选项的当前值,请单击"工具"菜单,然后单击"选项"命令。ISQLW调用方法使用信任连接调用Isqlw格式如下:

isqlw.exe -S "" -d "master" -E

使用SQL认证连接调用Isqlw格式如下:

isqlw.exe -S "" -d "ii" -U "sa" -P ""

用命令行从后台执行Sql脚本

isqlw.exe -S "" -d "ii" -U "sa" -P "" -i "c:\1.sql" -o "c:\output.txt"

参数i是要执行的sql脚本,参数o是输出执行结果,有了参数i则o不能省略。

特别注意:参数S是大写,S后的""表示数据库服务器为本机,参数E是大写.


6.3.2 使用DOS重定位技术执行isqlw

将上述在命令行使用isqlw的方法在dos下重定位,具体的代码如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值