VB pictures в BLOB ?

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Spa_2002
Сообщения: 28
Зарегистрирован: 13 май 2005, 15:47

VB pictures в BLOB ?

Сообщение Spa_2002 » 21 июн 2005, 14:11

Работаю на VB6 через ADO c IB6
задача - хранить в базе картинки из Picture и соответственно их показывать.
проблема - Не удается сохранить ни одну картинку . Текст привожу

CREATE TABLE "IMG1"
(
"IMAGE1" BLOB SUB_TYPE 0 SEGMENT SIZE 80
);


далее код VB:
В Picture1 загружена картинка из файла.
cnn1 - поднятое соединение с базой

Dim cmd1 As ADODB.Command

Set cmd1 = New ADODB.Command

With cmd1
.ActiveConnection = cnn1
.CommandText = "insert into img1(image1) values(?)"
End With

' автоматически генерируем список параметров
cmd1.Parameters.Refresh

' для единственного параметра задаем значения соотв. свойств
cmd1(0).Size = 10000000
cmd1(0).Attributes = adParamLong
cmd1(0).Type = adLongVarBinary
cmd1(0).Direction = adParamInput

' на этой строке выходит ошибка
' Application uses a value of the wrong typefor the current operation
cmd1(0).Value = Picture1.Picture
cmd1.Execute

пробовал в качестве TYPE параметра указывать adVariant, в этом случае присвоение проходит , но в момент выполнения Excecute вылазит ошибка конвертирования данных

Подскажите что делать . На VBAшных форумах на этот вопрос никто не знает ответа. Только предложения хранить файл на диске , а в базе только путь на него . Но в системе клиент- сервер это , конечно же неприемлемо.

Spa_2002
Сообщения: 28
Зарегистрирован: 13 май 2005, 15:47

Сообщение Spa_2002 » 23 июн 2005, 10:25

Всем привет . Нашел решение (с применением ADODB.STREAM). Если кому интересно как это выглядит на Vb через ADO и IBP Free, обращайтесь . ))

Ответить