Загрузка изображения из ADO источника
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) (Новая страница: « Изображение (или другой BLOB объект) из внешней базы выгружается во временный файл и затем…») |
SYSDBA (обсуждение | вклад) |
||
| (не показана 1 промежуточная версия 1 участника) | |||
| Строка 38: | Строка 38: | ||
" (USR$TABLENUMBER, USR$PHOTO) " & _ | " (USR$TABLENUMBER, USR$PHOTO) " & _ | ||
"VALUES " & _ | "VALUES " & _ | ||
| − | " (:TABLENUMBER | + | " (:TABLENUMBER, :PHOTO) " & _ |
"MATCHING (USR$TABLENUMBER) " | "MATCHING (USR$TABLENUMBER) " | ||
| − | |||
| − | |||
Set qTable = AdoComm.Execute | Set qTable = AdoComm.Execute | ||
While not qTable.EOF | While not qTable.EOF | ||
| Строка 60: | Строка 58: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | [[Category: | + | ====См. также==== |
| + | |||
| + | * [https://msdn.microsoft.com/en-us/library/ms681025%28v=vs.85%29.aspx ADO Programmer's Guide] | ||
| + | |||
| + | [[Category:Импорт/экспорт данных]] | ||
| + | [[Category:Руководство разработчика]] | ||
Текущая версия на 13:21, 29 декабря 2015
Изображение (или другой BLOB объект) из внешней базы выгружается во временный файл и затем загружается в БД Гедымина.
Set objConnection = CreateObject("ADODB.Connection") objConnection.ConnectionString = "DSN=MySQL;UID=" & AUser & ";PWD=" & APassword & ";" objConnection.Open Set AdoComm = CreateObject("ADODB.Command") AdoComm.ActiveConnection = objConnection AdoComm.CommandText = _ "select " & _ " TableNumber," & _ " Photo " & _ "from dbo.employee_view " Dim AdoStream Set AdoStream = CreateObject("ADODB.Stream") AdoStream.Type = 1 Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") Dim Creator, LoadTransaction, IBSQL Set Creator = New TCreator Dim MStream Set MStream = Creator.GetObject(Null, "TMemoryStream", "") Set LoadTransaction = Creator.GetObject(Null, "TIBTransaction", "LoadTransaction") LoadTransaction.DefaultDataBase = gdcBaseManager.Database LoadTransaction.StartTransaction Set IBSQL = Creator.GetObject(Null, "TIBSQL", "IBSQL") IBSQL.Transaction = LoadTransaction IBSQL.SQL.Text = _ "UPDATE OR INSERT INTO USR$EMPLOYEE_LOAD " & _ " (USR$TABLENUMBER, USR$PHOTO) " & _ "VALUES " & _ " (:TABLENUMBER, :PHOTO) " & _ "MATCHING (USR$TABLENUMBER) " Set qTable = AdoComm.Execute While not qTable.EOF IBSQL.Close IBSQL.ParamByName("TABLENUMBER").AsInteger = qTable.Fields(0).Value AdoStream.Open AdoStream.Write(qTable.Fields(1).Value) If FSO.FileExists("c:/golden/temp.bmp") Then Call FSO.DeleteFile("c:/golden/temp.bmp", False) End If AdoStream.SaveToFile("c:/golden/temp.bmp") Call MStream.LoadFromFile("c:/golden/temp.bmp") IBSQL.ParamByName("PHOTO").LoadFromStream(MStream) IBSQL.ExecQuery AdoStream.Close Wend