Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с передачей image в процедуру / 4 сообщений из 4, страница 1 из 1
08.12.2001, 08:28
    #32018649
Serman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с передачей image в процедуру
Пиплы!

Помогите решить проблему:

Пытаюсь передать image как параметр в stored procedure через ADODB.Command:

objComm.Parameters("@ImageParameter").AppendChunk Вариант-переменная

В Вариант переменную сложена считанная из файла картинка, размер - 6952 байта.

Когда пытаюсь выполнить objComm.Execute, получаю ответ - String data, right truncation.

Если присваюваю этому параметру Null, то все проходит без ошибки.

В процедуре до поля параметра с image идут еще несколько параметров, nvarchar, int и т.п,
а после - output параметр.

Всю голову сломал, помогите...

Best regards,
Serman
...
Рейтинг: 0 / 0
08.12.2001, 11:57
    #32018651
const
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с передачей image в процедуру
А что за процедура?
...
Рейтинг: 0 / 0
09.12.2001, 05:11
    #32018655
serman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с передачей image в процедуру
Обычная процедура, делает несколько select и потом insert 1 строки вот с этим самым image.
Пробовал убрать из списка параметров image, и тащить его из другой таблицы - все работает.
Но как только ставлю image в список input-параметров и передаю ему не null, то возникает
описанная проблема.

Best regards,
Serman.
...
Рейтинг: 0 / 0
10.12.2001, 07:45
    #32018671
Чумак А.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с передачей image в процедуру
'ЭТО работает в ADO 2.6 + Access 2000 SP2
'легко переноситься на VB5,6
'параметр Data функции (см. функцию) - это содержимое файла, который нужно засунуть в поле.
'В эту переменную я его закачивал так:

Dim intFile As Integer
Dim SelectedFileName As String
Dim FileBuff() As Byte
Dim FileLen As Long

Open SelectedFileName For Binary As #intFile
FileLen = LOF(intFile)
ReDim FileBuff(FileLen) As Byte
Get #intFile, , FileBuff()
Close #intFile

'потом массив FileBuff() передавал как Data в функцию
'******************************************************************
'а это сама функция - выдрана из живого приложения
'некоторые детали можно опустить
'думаю - разберешся
Function UpdateDocumentAttachment(CopyID As Long, Description As String, _
DescriptionOnly As Boolean, Optional Data As Variant, _
Optional DataLen As Long, Optional OriginalFileName As String) As Boolean
On Error GoTo Handle_Error
Dim UpdateDocumentAttachmentSP As ADODB.Command, ResumeCount As Integer
Dim UpdateedCopyID As Variant
Set UpdateDocumentAttachmentSP = New ADODB.Command

DoCmd.Hourglass True
With UpdateDocumentAttachmentSP
.CommandTimeout = 180
.CommandType = adCmdStoredProc
.CommandText = "dbo.UpdateDocumentAttachment"
'@CopyID int, @Data image, @OriginalFileName varchar (255), @Description varchar (255), @DescriptionOnly bit

.Parameters.Append UpdateDocumentAttachmentSP.CreateParameter _
("@CopyID", adBigInt, adParamInput, , CopyID)
.Parameters.Append UpdateDocumentAttachmentSP.CreateParameter _
("@Description", adVarChar, adParamInput, 255, Description)
.Parameters.Append UpdateDocumentAttachmentSP.CreateParameter _
("@DescriptionOnly", adInteger, adParamInput, , DescriptionOnly)

If DescriptionOnly Then GoTo ExecuteSP

.Parameters.Append UpdateDocumentAttachmentSP.CreateParameter _
("@Data", adLongVarBinary, adParamInput, DataLen + 1, Data) ' + 1 is due to bugs in ADO
.Parameters.Append UpdateDocumentAttachmentSP.CreateParameter _
("@OriginalFileName", adVarChar, adParamInput, 255, OriginalFileName)

ExecuteSP:
.ActiveConnection = CurrentProject.Connection
.Execute
End With

UpdateDocumentAttachment = True

DoCmd.Hourglass False
Set UpdateDocumentAttachmentSP = Nothing

ExitFunc:
Exit Function

Handle_Error:
ResumeCount = ResumeCount + 1
DoCmd.Hourglass False
MsgBox Err.Description, vbExclamation + vbOKOnly, _
"Failed to update document's digital copy"
If ResumeCount <> 3 Then Set UpdateDocumentAttachmentSP = Nothing 'deallocate storedproc reference
UpdateDocumentAttachment = False
Resume ExitFunc
End Function
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с передачей image в процедуру / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]