sp_configure 'show advanced options',1
go
reconfigure with override
go
sp_configure 'Ole Automation Procedures',1
go
reconfigure with override
go
ALTER PROC dbo.usp_OACreate @folderName VARCHAR(256)='C:\Test\testfa'
AS
BEGIN
DECLARE @hr INT,@fso_token INT,@dirHandle INT,@IsDir_flag BIT,@IsParDirExists_Flag BIT
DECLARE @tempTab TABLE(fileexists_flag BIT,IsDir_flag BIT,IsParDirExists_Flag BIT)
INSERT INTO @tempTab
EXEC xp_fileexist @folderName --,@hr output
SELECT @IsDir_flag=IsDir_flag,@IsParDirExists_Flag=IsParDirExists_Flag FROM @tempTab
IF @IsDir_flag<>1 AND @IsParDirExists_Flag=1
BEGIN
EXEC @hr=SP_OACREATE 'Scripting.FileSystemObject',@fso_token OUTPUT
IF @hr<>0
BEGIN
GOTO errorProcess
END
ELSE
BEGIN
EXEC @hr=SP_OAMethod @fso_token,'CreateFolder',@dirHandle OUTPUT,@folderName IF @hr<>0 GOTO errorProcess
ELSE
EXEC SP_OADestroy @fso_token
END
END
ELSE
GOTO fileexists
errorProcess:
EXEC SP_OAGetErrorInfo @fso_token
RETURN 1; --- FAILED
fileexists:
RAISERROR('Folder %s exists OR its parent directory path is not exist!!! please check!!!',-1,-1,@folderName) WITH NOWAIT
END
GO

  

使用 SP_OAXXX 创建文件夹,注意区别于 xp_cmdshell --mkdir xxx的更多相关文章

  1. 如何使用python 新建文件夹以及递归创建文件夹

    转载:如何使用python 新建文件夹以及递归创建文件夹 | 酷python (coolpython.net) 1. os.mkdir 使用python创建文件夹,通常使用os.mkdir方法,在使用 ...

  2. PHP判断文件夹是否存在和创建文件夹的方法(递归创建多级目录)

    在开始之前,我先说明一下,可能许多朋友与我一样认为只要给一个路径,mkdir就可以创建文件夹,其实不是那样,单个的MKDIR只能创建一级目录,对于多级的就不行了,那如何用mkdir来创建呢?先我抄一段 ...

  3. [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表

    写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...

  4. PHP如何创建文件夹(mkdir的用法,mkdirs的语法)【转】

    (PHPmkdir如何创建多级目录)    在开始之前,我先说明一下,可能许多朋友与我一样认为只要给一个路径,mkdir就可以创建文件夹,其它不是那样,单个的MKDIR只能创建一级目录,对于多级的就不 ...

  5. github创建文件夹

      网页上只能通过在创建新文件的时候顺便创建文件夹(文件夹与文件用 / 隔开),例如home/test.md就在该仓库下创建了一个文件夹home,该文件夹下有一个新的文件test.md

  6. windows环境下创建 .文件夹

    一.windows环境下创建 .文件夹 1.新建一个文件夹 2.重命名为.properties.(名字前后都加点) 二.windows环境下创建 .文件 1.上面的方法对文件同样适用 2.运行CMD, ...

  7. Java 判断文件夹、文件是否存在、否则创建文件夹

    1.判断文件是否存在,不存在创建文件 File file=new File("C:\\Users\\QPING\\Desktop\\JavaScript\\2.htm"); if( ...

  8. C#创建文件夹

    string path = Server.MapPath("~/DefaultImg/newDir/63/");//获取文件路径 if (!Directory.Exists(pat ...

  9. 用SQL语句建库建表建约束(用SQl语句在指定盘符创建文件夹)

    一 :创建数据库 创建一个数据文件和一个日志文件(MySchool) create database MySchoolon primary      --默认属于primary主文件组,可省略(--数 ...

随机推荐

  1. 结对编程--C语言子程序词法分析

    一.问题描述 C语言小子集表的定义 2.设计单词属性值,各类表格(表示标识符表.常量表),单词符号及机内表示,采用标准输入和输出的方式.程序从键盘接收代码,遇到代码结束符"#"时结 ...

  2. HTML 样式 (style) 实例

    77.HTML 样式 (style) 实例HTML 的 style 属性style 属性的作用: 提供了一种改变所有 HTML 元素的样式的通用方法. 样式是 HTML 4 引入的,它是一种新的首选的 ...

  3. git 跟踪提交记录

    一.克隆git仓库 git clone ssh://hwl@xxx/home/data/repositories/git.git 二.申明使用人信息,以便跟踪提交记录 $ git config --g ...

  4. ansible自动化工具安装和简单使用

    ansible自动化工具安装和简单使用 1.安装 ansible依赖于Python 2.6或更高的版本.paramiko.PyYAML及Jinja2. 2.1 编译安装 解决依赖关系 # yum -y ...

  5. 3dmax2020下载安装3dmax2020破解中文版下载安装

    3dmax在室内设计.建筑设计领域是最专业的效果图制作软件,也是在游戏动画等领域中在场景方面最专业的软件,目前最新3dmax2020版本已出,我分享亲测好用的软件包,拿走不谢! 3dmax2020安装 ...

  6. DRF02

    1. 视图 Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验.保存.转换数据) 控制数据库查询的执行 1.1. 请求与响应 1.1.1 Request RES ...

  7. B1048 数字加密

    15/20 #include<bits/stdc++.h> using namespace std; stack<int> s; char a[3]={'J','Q','K'} ...

  8. python类属性在继承中的修改的影响

    class A(object): x = 1 class B(A): pass class C(A): pass # 通过父类修改类属性,子类继承的类属性也改变 A.x = 3 print(A.x, ...

  9. 读书笔记(chapter5)

    系统调用 5.1与内核通信 1.系统调用在用户空间进程和硬件设备之间添加一个中间层.作用有三个:它为用户空间提供了一种硬件的抽象接口:系统调用保证了系统的稳定和安全:系统调用是用户空间访问内核的唯一手 ...

  10. express框架结合jade模板引擎使用

    在views文件夹里新建一个jade.jade文件作为模板: html head title 哈哈 body #box ul li 标题1 li 标题2 li 标题3 li 标题4 #aside 在j ...