㈠ asp如何批量获取一个文件夹下所有文件的文件名然后存入数据库
用ADIR函数
将文件信息存放到数组中,然后返回文件个数。
语法
ADIR(ArrayName [, cFileSkeleton [, cAttribute ]])
参数
ArrayName
指定数组名。如果数组不存在,Visual FoxPro 将自动创建此数组。如果数组存在,但其大小不足以包含所有信息,则 Visual FoxPro 自动增加数组大小,使得数组能容纳所有信息。如果数组超过了所需大小,Visual FoxPro 将截掉多余部分。如果数组存在,并且 ADIR( )
函数由于没找到匹配文件而返回 0,则数组保持不变。如果数组不存在,并且 ADIR( ) 函数返回零,则不创建数组。
下表说明了数组中每列的内容及其数据类型:
列 数组内容 数值类型
1 文件名 字符型
2 文件大小 数值型
3 文件日期 日期型
4 文件时间 字符型
5 文件属性 字符型
数组的最后一列包含匹配文件的文件属性。每个文件属性值由一个字母表示,一个文件可有多个属性。下表说明每个字母表示的文件属性含义:
字母 属性
A 档案文件 一 可读写(在 FoxPro for Macintosh 中,此属性无效)
H 隐藏文件
R 只读文件
S 系统文件
D 目录或文件夹
cFileSkeleton
指定文件梗概,以便存储满足搜索条件的文件名或扩展名的文件信息。例如,条件可以是所有表、所有文本文件、所有文件名第一个字母为“A”的文件,等等。这些通配查询在 cFileSkeleton 中可以包含通配符 * 和 ?。其中问号代表单个字符,星号代表任意字符串。在文件梗概中,可在任意位置使用任意个数的通配符。
在 Visual FoxPro、FoxPro for Windows 和 FoxPro for MS-DOS 中,可以指定驱动器和目录名,程序将在此驱动器和目录下搜索匹配文件。如果不指定驱动器和目录名,将把当前目录下的文件信息存入数组中。
在 FoxPro for Macintosh 中,可以搜索匹配文件名的卷和文件夹。如果不指定卷和文件夹,FoxPro for Macintosh 将当前文件夹中的文件信息存入数组中。
cAttribute
指定在返回内容中包含子目录或嵌套文件夹、隐藏或系统文件、或者卷名。
cAttribute 可以是 D、H 和 S 的任意组合。如果包含 D,除了返回匹配 cFileSkeleton 的文件名外,还将返回当前目录的子目录或当前文件夹的嵌套文件夹。如果包含 H,将返回与 cFileSkeleton 指定相匹配的隐藏文件信息。如果包含 S,将返回与 cFileSkeleton 指定通配文件名相匹配的系统文件信息。
如果 cFileSkeleton 为空字符串,仅返回子目录或嵌套文件夹名、隐藏或系统文件。
cAttribute 参数中包含字符 V,将返回当前驱动器的卷名。如果 V 和 D、H 或 S 一起包含在数组中,则只返回卷名。卷名存入数组的第一个元素中,并截去数组的其余部分。
返回值类型
数值型
说明
对于每一个文件,ADIR( ) 将文件名、大小、日期、时间和属性信息存入数组。
例子:
=adir(abc,"d:\123\*.jpg")
把d:\123文件夹下jpg照片文件的名字、大小、日期、时间和属性信息存入数组abc
㈡ 怎么把excel文件里的数据导入SQL数据库
导入数据不一定要用OPENSET函数,可以用更简单的方法,步骤如下:
1、首先双击打开sqlserver,右击需要导入数据的数据库,如图所示。
(2)将所有文件名导入数据库扩展阅读:
导入数据也可使用OPENROWSET函数,但使用该函数之前必须先启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServer默认是关闭的,系统管理员可以通过使用sp_configure 启用 'Ad Hoc Distributed Queries'。
但有一个问题一定要特别注意,由于'Ad Hoc Distributed Queries'这个服务存在着较大的安全隐患,所以切记使用完毕之后一定要关闭。
所以,如果是导入数据建议不要使用OPENROWSET函数,弊大于利。
㈢ 如何将 一个文件夹 里面的文件名和内容 导入数据库呢
VBA遍历文件夹,供参考:
打开一个文件夹及其子文件夹中所有的Excel文件
Sub aRef()
Dim i As Long
Dim fs As Object
Set fs = Application.FileSearch
With fs
.LookIn = "C:\Tmep" '设置要查找的起始目录
.FileType = msoFileTypeExcelWorkbooks '要查找的文件类型
.SearchSubFolders = True '是否查找子目录
.Execute '根据上面的设置执行查找
For i = 1 To .FoundFiles.Count
Workbooks.Open .FoundFiles(i) '遍历打开找到的EXCEL文件
'..... '其它处理
Next i
End With
End Sub
㈣ 如何用sql语句将一个文件夹下的所有txt文件导入到数据库中急!在线等
使用场景: 比如将 C:\Test\ 目录下的所有 txt文件内容 导入到 Table_1 中
--定义临时表,用于存放获取的文件名称
CREATE TABLE #files (name varchar(200) NULL, sql varchar(7000) NULL)
--获取文件名称,存放在#files
INSERT #files(name)
exec master..xp_cmdshell 'dir c:\test /b'
--删除不要的文件名称
DELETE #files WHERE coalesce(name, '') NOT LIKE 'Code%'
--插入需要 导入文件内容的 命令SQL,需要修改 Table_1(改为导入的Table)和文件路径
UPDATE #files
SET sql = 'BULK INSERT Table_1 FROM ''' + 'C:\Test\'+name + ''' WITH (' +
'DATAFILETYPE = ''char'', FIELDTERMINATOR = ''\t'', ' +
'ROWTERMINATOR = ''\n'')'
--开始执行导入
DECLARE @sql varchar(8000)
DECLARE cur CURSOR STATIC LOCAL FOR
SELECT sql FROM #files
OPEN cur
WHILE 1 = 1
BEGIN
FETCH cur INTO @sql
IF @@fetch_status <> 0
BREAK
EXEC(@sql)
END
DEALLOCATE cur
主要分为读取文件夹下所有文件和导入文件内容两部分
--读取文件夹下所有文件
declare @files table (ID int IDENTITY, FileName varchar(100))
insert into @files execute xp_cmdshell 'dir c:\test /b'
select 'c:\'+ [FileName] AS FILEPATH INTO #temp from @files
SELECT * FROM #temp
--导入文件内容
BULK INSERT dbo.Table_1
FROM #temp
WITH
(
ROWTERMINATOR ='\n'
)
还需要开启
/***** Step 1 开启 xp_cmdshell
Use Master
GO
EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO
EXEC master.dbo.sp_configure 'xp_cmdshell', 1
RECONFIGURE WITH OVERRIDE
GO
*******/
参考:
http://social.msdn.microsoft.com/Forums/sqlserver/en-US/47c8edc1-8cad-4a24-a09a-3fc0c943325c/bulk-insert-multiple-files-tsql