Delphi中如何判断服务器路径
创始人
2024-07-25 07:01:39
0

  那么,Delphi中如何判断服务器路径呢?

  例如,要在客户端执行一个创建数据库的程序,数据库要在服务器上创建,但路径可以手工输入,这时就面临一个判断自已现在输入的路径在服务器上是否存在的问题,免得在执行Create Database SQL时才报错:找不到路径。

  具体方法如下:

  exec master..xp_cmdshell 'dir E:\DATA' ,在查询分析器中执行此段SQL,如果存在此路径,会输出此路径下的所有文件与文件夹信息,还有此盘的可用字节数与已此文件夹的字节数;如果此路径不存在,则输出信息提示“找不到文件”。

  但是,当路径中含有空格时,如C:\Program Files,直接用exec master..xp_cmdshell 'dir C:\Program Files',系统返回结果依然提示“找不到文件”,我们需要做额外处理,才能得到正确的返回结果:

  1. exec master..xp_cmdshell 'dir "C:\Program Files\Microsoft SQL Server\MSSQL"'  
  2.  

  这种写法,在查询分析器中直接执行是没有问题的,也能返回正确结果,但如果放到程序中执行:

  1.   SQL.Add('exec master..xp_cmdshell ''dir "C:\Program Files\Microsoft SQL Server\MSSQL"''), 

  Open时就会报错,不能执行。

  2. 我们接下来查看SQL联机帮助,对XP_CMDSHELL的描述如下:

  1.   xp_cmdshell {'command_string'} [, no_output]  
  2.  

  参数

  '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帮助文件与产品也会出现“规格与程序不相符”的问题。

【编辑推荐】

  1. Delphi基础开发技巧
  2. Delphi编程读取txt文件数据
  3. 如何在Delphi中自动录入数据
  4. 基于Delphi的屏幕抓图技术的实现
  5. Delphi初学者应小心的六大问题

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...