【发布时间】:2015-05-21 19:11:42
【问题描述】:
我在 Windows 机器上运行了以下 vbscript:
db = "\\networklocation\Database\employeeID.mdb"
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set mstream = CreateObject("ADODB.Stream")
'ADODB.Stream is need to transfer the BLOB Data as Binary
mstream.Type = 1 '' 1 is to: adTypeBinary
'for info on Stream: http://www.w3schools.com/asp/ado_ref_stream.asp
cn.Open "Provider = Microsoft.Jet.OLEDB.4.0; " & "Data Source =" & db
strSQL = "SELECT IDNumber,photo FROM employeeID WHERE IDNumber like 'A00______' and photo is not null"
'% for 0 or more characters, _ to replace a single character
rs.Open strSQL, cn
DO WHILE not rs.eof
mstream.Open
mstream.Write rs("photo")
mstream.SaveToFile "C:\images\all\" & rs("IDNumber") & ".jpg", 2 'adSaveCreateOveWrite
mstream.close
rs.movenext
Loop
它正是我需要它做的事情,但是在获取图片之后,我需要将它们发送到我使用 winscp 发送的 Linux 机器上。
我想从 Linux 服务器运行脚本,而不需要 wincp 和 windows 机器(我不喜欢从多个位置运行东西)。
我最近发现 Python 可以使用 pyodbc 连接到 Access 数据库。
我相信我了解如何连接到 access 数据库,但不确定如何从一列中提取二进制数据并用 Python 中的另一列标记它们。 (提取二进制数据是我在创建 VBScript 时遇到的最大障碍)
更新: 看起来我现在可以结束这个想法了,我没有意识到 Linux 上的所有 ODBC 驱动程序都需要花钱。现在正在寻找其他方法,比如jackness,它是一个直接的java连接到访问
【问题讨论】:
-
SO 不是免费翻译服务。您所要求的基本上是让她从头开始重写您的脚本,因为 VBScript 和 Python 不太相似。这不太可能发生。
-
此页面应该让您开始了解转换它所需的大部分知识:code.google.com/p/pyodbc/wiki/GettingStarted 然而,Ansgar 说的是正确的;另外,你应该确保在运行之前知道你在运行什么代码。
-
我不是在找你写脚本,只是在寻找可能有助于找到我需要的 python 代码片段。就像 FlipperPA 添加的链接一样。并添加了代码micebrain。当我得到代码的粗略大纲时,如果我能解决某些问题,我打算发布更多问题。
标签: python vbscript binary odbc pyodbc