首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载 | ||
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试 MPA考试 | 中科院 |
||
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT 新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语 |
||
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证 华为认证 | Java认证 |
||
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格 报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师 人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平 驾驶员 | 网络编辑 |
||
卫生资格 | 执业医师 | 执业药师 | 执业护士 | ||
会计从业资格考试(会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师 注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师 |
||
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师 质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师 设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师 城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师 |
||
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏 |
1、判断输入的路径在服务器上是否存在:
例如,要在客户端执行一个创建数据库的程序,数据库要在服务器上创建,但路径可以手工输入,这时就面临一个判断自已现在输入的路径在服务器上是否存在的问题,免得在执行Create Database SQL时才报错:找不到路径。
具体方法如下:
exec master..xp_cmdshell 'dir E:\DATA' ,在查询分析器中执行此段SQL,如果存在此路径,会输出此路径下的所有文件与文件夹信息,还有此盘的可用字节数与已此文件夹的字节数(图1所示);如果此路径不存在,则输出信息如图2所示,提示“找不到文件”。
但是,当路径中含有空格时,如C:\Program Files,直接用exec master..xp_cmdshell 'dir C:\Program Files',系统返回结果会如跟图2显示一样,我们需要做额外处理,才能得到正确的返回结果:
(1)exec master..xp_cmdshell 'dir "C:\Program Files\Microsoft SQL Server\MSSQL"'
这种写法,在查询分析器中直接执行是没有问题的,也能返回正确结果,但如果放到程序中执行:
SQL.Add('exec master..xp_cmdshell ''dir "C:\Program Files\Microsoft SQL Server\MSSQL"''),Open时就会报错,不能执行。
为什么呢???
(2)我们接下来查看SQL联机帮助,对XP_CMDSHELL的描述如下:
xp_cmdshell {'command_string'} [, no_output]
参数
'command_string'
是在操作系统命令行解释器上执行的命令字符串。command_string 的数据类型为 varchar(255) 或 nvarchar(4000),没有默认值。command_string 不能包含一对以 上的双引号。如果由 command_string 引用的文件路径或程序名称中有空格,则需要使用一对引号。如果使用嵌入空格不方便,可考虑使用 FAT 8.3 文件名作为解决办 法。
no_output
是可选参数,表示执行给定的 command_string,但不向客户端返回任何输出。
帮助文件提示我们要用一对引号将文件路径或者程序名称包起来,将整个路径包不起来不会报错,那我就将带有空格的单步路径包起来试试,看看行不行,执行 如下SQL:SQL.Add('exec master..xp_cmdshell ''dir C:\"Program Files"\"Microsoft SQL Server"\MSSQL''),这样Open时果然不报错了,看来查询分析器的语法检查与我们的Query自己的语法检查还是有一定区别的,不能等同的。因此,碰到路径中带空格的情况,正确的写法还是:
exec master..xp_cmdshell 'dir C:\"Program Files"\"Microsoft SQL Server"\MSSQL'
这同时说明SQL帮助文件中的绿色字体部分 command_string 不能包含一对以上的双引号 的描述是不正确的,看来SQL Server帮助文件与产品也出现了“规格与程序不相符”的问题了,呵呵......
相关推荐:Delphi开发中几种代码复用方式及其比较北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |