2015-05-21 4 views
0

У меня есть следующее VBScript работает на машине Windows:Преобразования VBScript в Python

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 

Он делает именно то, что мне нужно это делать, но после получения картины, мне нужно, чтобы отправить их в Linux машина, которую я использую winscp для отправки.

Я хотел был бы запустить сценарий с сервера Linux, требуя от winscp и машины Windows (я не люблю запускать вещи из нескольких местоположений) из уравнения.

Недавно я обнаружил, что Python может подключаться к базе данных Access с помощью pyodbc.

Я считаю, что я понимаю, как подключиться к базе данных доступа, но не уверен, как извлечь двоичные данные из одного столбца и пометить их другим столбцом в Python. (Извлечение двоичных данных было самым большим препятствием, которое я имел при создании VBScript)

UPDATE: Похоже, я могу закрыть эту идею, я не знал, что все драйверы ODBC для Linux стоят денег. теперь поиск других методов, таких как jackness, прямое соединение java с доступом

+0

SO это не бесплатный сервис перевода. То, что вы просите, в основном для людей, которых она переписывает с вашего скрипта с нуля, поскольку VBScript и Python не так похожи. Это вряд ли произойдет. –

+0

На этой странице вы должны начать с большей части того, что вам нужно знать, чтобы преобразовать его: https://code.google.com/p/pyodbc/wiki/GettingStarted. Однако, по словам Ансгара, это правильно; кроме того, вы обязательно должны знать, какой код вы используете, прежде чем запускать его. – FlipperPA

+0

Я не ищу, чтобы вы писали сценарий, просто искали то, что могло бы найти части, которые мне нужны для кода python. как добавлена ​​ссылка FlipperPA. и добавлен код micebrain. Когда я получаю приблизительный контур кода, я планирую опубликовать его с большим количеством вопросов, если я смогу обойти некоторые проблемы. – moore1emu

ответ

0

Вы можете записать данные столбца в файл в двоичном режиме.

E.g. Если предположить, что изображение находится в первой колонке ...


data = cursor.execute(selectstmt).fetchone() 
with open('img.jpg', 'wb') as f: 
    f.write(data[0]) 

+0

hey micebrain, что определяет его как двоичный режим – moore1emu

+1

Во втором аргументе файла open - wb = write binary – micebrain

Смежные вопросы