文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 国产软件 | 国外软件 | 汉化补丁 | 设为首页 | 加入收藏
图形处理 操作系统 电脑入门 办公软件 游戏地带 网站建设 认证考试 精彩网文 网络技术 网络编程 技术开发 工具软件 媒体动画 QQ相关
当前位置:abcdown网络学院程序开发其他语言经验技巧:分享两条Delphi开发经验
精品广告
推荐TOP10
·控制面板知多少
·给你十条学习Ruby语言的理由
·分页管理机制
·Perl 语言的重要价值体现
·经验技巧:分享两条Delphi开发经验
·Java编程思想:面向对象的逻辑思维方法
·Samba系统简介
阅读TOP10
·分页管理机制
·Perl 语言的重要价值体现
·IBM Rational对SOA开发的方法论SOMA
·Java编程思想:面向对象的逻辑思维方法
·图象处理中的边缘检测------canny算子
·Servlet和Filter的url匹配url-pattern
·Samba系统简介
·经验技巧:分享两条Delphi开发经验
·Readme for the MontaVista* Linux* 3.1 OpenSSL*/OCF and Intel? IXP400 Software v1.4 Integration
·uC/OS-II在S3C44B0X微处理器上的移植

经验技巧:分享两条Delphi开发经验

日期:2007年6月28日 作者: 查看:[大字体 中字体 小字体]


  近期在做“数据库切割工具”时,碰到了一些棘手的问题,经过多方打探、查找,最终得以解决,现总结下来,给大家共享,免的大家以后在碰到类似问题时再耗费大量时间去查找、去打探!

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

  2、清空数据库的日志文件

  问题的引出:我们的切割过程就是将单据数据中某个日期以前的数据先复制到新的数据库中(select ... into ...),然后再将原来数据库中的这些数据删除,这样操作在数量量很大的数据库上时,其日志文件的增长也是惊人的:我复制一个48万条记录的表时,最后发现仅这一个表的操作就使新数据库的日志文件增加了170MB,如果不加清理,那就会被日志文件占用大量宝贵的磁盘空间。况且,我们转移到的新建数据库的作用也只是用来查询,以后不会有任何Insert、Update、Delete操作的,要这些日志文件没有什么用处,因此必须在向它转移数据的过程中做一些缩小日志文件的处理,怎么办??问题由此而生...


[1] [2] 下一页 

上一篇:开合式立体纸雕贺卡设计作品欣赏

下一篇:VC实现系统热键激活后台服务程序


相关软件: 相关文章:
·嵌入式系统应用开发技术 wmv 视频教程
·软件开发ROSE2003 破解版
·李开复博士天津大学报告会 现场实录(上)
·孙鑫VC++从入门到精通开发详解视频教程FLASH版
·Linux开发全集 视频 Linux+C语言
·ORACLE 8/8I 开发使用手册(PDF)
·Linux应用程序开发指南:使用Gtk_&Gnome库
·ie二级网页打不开 复制粘贴不能用
·windows 2003服务器配置VPN实现各种网络环境VSS协同开发
·破解windowsXP,window2000的开机密码
·打开网页自动设为首页代码
·减少Win XP\2003系统开机滚动条次数
·word无法打开文档怎么办 有三种办法
·在网页中使用javascript打开没有最大化、最小化和关闭按钮的窗口

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.abcdown.net
首页 | 本站声明 | 下载帮助 | 发布软件 |
中文版权所有:ABC学院 浙ICP备05000717号