将数据库中的二进制数据导出为文件
2008-11-04 14:15
369 查看
'
'
' 本程序将数据库中的二进制值导出为数据文件
' 使用:在CMD命令行下输入
' outImg /? 查看帮助
'
'
Option Explicit
If Wscript.Arguments.Count = 0 Then Wscript.quit
Dim serverName , userName , password , database , sql , filePath
Dim i
For i = 0 To Wscript.Arguments.Count - 1
Select Case Wscript.Arguments(i)
Case "/S":
If i + 1 < Wscript.Arguments.Count Then serverName = Wscript.Arguments(i + 1)
If InStr(serverName,"/") > 0 Then
serverName = ""
End If
Case "/U":
If i + 1 < Wscript.Arguments.Count Then userName = Wscript.Arguments(i + 1)
If InStr(userName,"/") > 0 Then
userName = ""
End If
Case "/P":
If i + 1 < Wscript.Arguments.Count Then password = Wscript.Arguments(i + 1)
If InStr(password,"/") > 0 Then
password = ""
End If
Case "/DB":
If i + 1 < Wscript.Arguments.Count Then database = Wscript.Arguments(i + 1)
If InStr(database,"/") > 0 Then
database = ""
End If
Case "/SQL":
If i + 1 < Wscript.Arguments.Count Then sql = Wscript.Arguments(i + 1)
If InStr(sql,"/") > 0 Then
sql = ""
End If
Case "/PATH":
If i + 1 < Wscript.Arguments.Count Then filePath = Wscript.Arguments(i + 1)
If InStr(filePath,"/") > 0 Then
filePath = ""
End If
Case "/?":
MsgBox "帮助说明:" & Chr(10) & Chr(13) & _
"/S SQL服务器名称" & Chr(10) & Chr(13) & _
"/U 登陆用户" & Chr(10) & Chr(13) & _
"/P 登陆密码" & Chr(10) & Chr(13) & _
"/DB 数据库名称" & Chr(10) & Chr(13) & _
"/SQL SQL语句,第一列保存为图片," & Chr(10) & Chr(13) & _
" 如果有第二列的话,就作为图片名称," & Chr(10) & Chr(13) & _
" 其它列忽略掉。" & Chr(10) & Chr(13) & _
"/PATH 要保存的图片路径"
Wscript.quit
End Select
Next
If Right(filePath,1) = "/" Then filePath = Left(filePath , Len(filePath) - 1)
' 数据库处理部分
Dim conn , rs , myStream , fso
Set conn = Wscript.CreateObject("adodb.connection")
conn.open "driver={sql server};server=" & serverName & ";uid=" & userName & ";pwd=" & password & ";database=" & database
Set rs = Wscript.CreateObject("adodb.recordset")
rs.open sql,conn,3,3
Set myStream = Wscript.CreateObject("Adodb.Stream")
myStream.Type = 1
Set fso = Wscript.CreateObject("scripting.filesystemobject")
Dim hasFileName , fileName
If rs.fields.count > 1 Then hasFileName = True
i = 0
Do While Not rs.eof
i = i + 1
If hasFileName = True Then
fileName = rs(1)
Do While fso.fileExists(filePath & "/" & fileName)
fileName = "同名文件 " + fileName
Loop
Else
fileName = Year(Now()) & Month(Now()) & Day(Now()) & Hour(Now()) & Minute(Now()) & Second(Now()) & i & ".dat"
End If
myStream.Open
myStream.Write Rs(0).GetChunk(rs(0).ActualSize-78)
myStream.SaveToFile filePath & "/" & fileName
myStream.Close
wscript.sleep 10
rs.movenext
Loop
rs.close
conn.close
MsgBox "导出完成!"
Wscript.quit
'
' 本程序将数据库中的二进制值导出为数据文件
' 使用:在CMD命令行下输入
' outImg /? 查看帮助
'
'
Option Explicit
If Wscript.Arguments.Count = 0 Then Wscript.quit
Dim serverName , userName , password , database , sql , filePath
Dim i
For i = 0 To Wscript.Arguments.Count - 1
Select Case Wscript.Arguments(i)
Case "/S":
If i + 1 < Wscript.Arguments.Count Then serverName = Wscript.Arguments(i + 1)
If InStr(serverName,"/") > 0 Then
serverName = ""
End If
Case "/U":
If i + 1 < Wscript.Arguments.Count Then userName = Wscript.Arguments(i + 1)
If InStr(userName,"/") > 0 Then
userName = ""
End If
Case "/P":
If i + 1 < Wscript.Arguments.Count Then password = Wscript.Arguments(i + 1)
If InStr(password,"/") > 0 Then
password = ""
End If
Case "/DB":
If i + 1 < Wscript.Arguments.Count Then database = Wscript.Arguments(i + 1)
If InStr(database,"/") > 0 Then
database = ""
End If
Case "/SQL":
If i + 1 < Wscript.Arguments.Count Then sql = Wscript.Arguments(i + 1)
If InStr(sql,"/") > 0 Then
sql = ""
End If
Case "/PATH":
If i + 1 < Wscript.Arguments.Count Then filePath = Wscript.Arguments(i + 1)
If InStr(filePath,"/") > 0 Then
filePath = ""
End If
Case "/?":
MsgBox "帮助说明:" & Chr(10) & Chr(13) & _
"/S SQL服务器名称" & Chr(10) & Chr(13) & _
"/U 登陆用户" & Chr(10) & Chr(13) & _
"/P 登陆密码" & Chr(10) & Chr(13) & _
"/DB 数据库名称" & Chr(10) & Chr(13) & _
"/SQL SQL语句,第一列保存为图片," & Chr(10) & Chr(13) & _
" 如果有第二列的话,就作为图片名称," & Chr(10) & Chr(13) & _
" 其它列忽略掉。" & Chr(10) & Chr(13) & _
"/PATH 要保存的图片路径"
Wscript.quit
End Select
Next
If Right(filePath,1) = "/" Then filePath = Left(filePath , Len(filePath) - 1)
' 数据库处理部分
Dim conn , rs , myStream , fso
Set conn = Wscript.CreateObject("adodb.connection")
conn.open "driver={sql server};server=" & serverName & ";uid=" & userName & ";pwd=" & password & ";database=" & database
Set rs = Wscript.CreateObject("adodb.recordset")
rs.open sql,conn,3,3
Set myStream = Wscript.CreateObject("Adodb.Stream")
myStream.Type = 1
Set fso = Wscript.CreateObject("scripting.filesystemobject")
Dim hasFileName , fileName
If rs.fields.count > 1 Then hasFileName = True
i = 0
Do While Not rs.eof
i = i + 1
If hasFileName = True Then
fileName = rs(1)
Do While fso.fileExists(filePath & "/" & fileName)
fileName = "同名文件 " + fileName
Loop
Else
fileName = Year(Now()) & Month(Now()) & Day(Now()) & Hour(Now()) & Minute(Now()) & Second(Now()) & i & ".dat"
End If
myStream.Open
myStream.Write Rs(0).GetChunk(rs(0).ActualSize-78)
myStream.SaveToFile filePath & "/" & fileName
myStream.Close
wscript.sleep 10
rs.movenext
Loop
rs.close
conn.close
MsgBox "导出完成!"
Wscript.quit
相关文章推荐
- asp.net从数据库导出数据到word、excel、txt文本文件
- 将上传文件以二进制形式存入数据库中,并下载数据库中的二进制数据生成对应的文件
- 导出数据库中表数据为CSV文件(带表头)
- VC2010 ADO 写入二进制数据到数据库 下载二进制数据到文件
- Oracle 使用数据泵 expdp impdp 导入导出数据库“表空间”文件
- oracle导出数据,备份及恢复数据,及数据库日志文件的查看
- sql server 小技巧(7) 导出完整sql server 数据库成一个sql文件,包含表结构及数据
- 8、利用Mysql的二进制日志文件,进行数据库数据的恢复
- Sql Server 导出数据至物理文件,再导回到数据库
- Oracle impdp 远程导出数据到本地数据库,不生成备份文件
- asp.net从数据库导出数据到word、excel、txt文本文件
- 数据库数据导出成XML文件
- MySQL---数据库从入门走向大神系列(九)-用Java向数据库读写大文本/二进制文件数据
- ASP中从数据库读取二进制文件数据代码
- Java Web获取数据库数据,利用jxl实现数据导出成Excel文件
- PD 之 连接数据库并导出数据及生成PDM文件
- NPOI 操作数据库中数据的导入导出(Excel.xls文件) 和null数据的处理。
- powerdesigner连接数据库 导出数据 生成PDM文件 傻瓜试教程
- 数据库中导出CSV文件与EXCEL文件数据对比可能遇到的问题与解决方法
- 收藏点以备后用数据库将数据导入导出xml文件