Здравствуйте.
Не могу никак победить такую задачу.
В базе данных на MSSQL в таблице содержиться поле типа image, есть процедура, которая читает заданное поле и возвращает указатель varbinary(16), т.е. — это указатель на картинку.
В borland 5 передаю этот указатель обьекту TImage такой строкой:
Image1->Picture->Bitmap->Handle=(HBITMAP)proc->Parameters->ParamByName("@ptrImage")->Value.byref;
при отладке вижу , что указатель передается, но изображение все равно не отображается.
Вообще изощряюсь так, потому что у обьекта TImage есть свойство AutoSize, которого нет о обьекта TDBImage. Требуется чтоб картинки просматривались в заданном окне с соблюдением пропорций, а размер картинок возможен разный.
Поделитесь мыслями.
Заранее благодарен.
Здравствуйте, <Аноним>, Вы писали:
А>Здравствуйте. А>Не могу никак победить такую задачу. А>В базе данных на MSSQL в таблице содержиться поле типа image, есть процедура, которая читает заданное поле и возвращает указатель varbinary(16), т.е. — это указатель на картинку.
А почему ты собственно думаешь, что это указатель на картинку? Приведи-ка текст этой процедуры.
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>А почему ты собственно думаешь, что это указатель на картинку? Приведи-ка текст этой процедуры.
CREATE PROCEDURE ReadImage
@idKey1 smallint,
@idKey2 smallint,
@ptrImage varbinary(16) output
AS
begin
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
BEGIN TRAN--DECLARE @ptr varbinary(16)SELECT @ptrImage = textptr(QueImage)
FROM QuestionImages
WHERE idKey1=@idKey1 and
idKey2=@idKey2
READTEXT questionimages.queimage @ptrImage 0 10000
COMMIT TRAN
end
размер поставил от фонаря, пробовал с ним экспериментировать — толку не было.
Здравствуйте, Beatseed, Вы писали:
B>размер поставил от фонаря, пробовал с ним экспериментировать — толку не было. Ну еще бы! @textPtr — это указатель на текст в колонке. Он не имеет никакого смысла за пределами сервера. После ReadText тебе должен приехать dataset c единственной колонкой, в которой собственно и лежит заказанное тобой количество байт.
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Beatseed, Вы писали:
B>>размер поставил от фонаря, пробовал с ним экспериментировать — толку не было. S> Ну еще бы! @textPtr — это указатель на текст в колонке. Он не имеет никакого смысла за пределами сервера. После ReadText тебе должен приехать dataset c единственной колонкой, в которой собственно и лежит заказанное тобой количество байт.
хм, понял, и как теперь эти данные датасета передать обьекту TImage? И как тогда узнать размер поля типа image.
Здравствуйте, Beatseed, Вы писали: B>хм, понял, и как теперь эти данные датасета передать обьекту TImage?
читаем доку по TBlobField (это в VCL) B>И как тогда узнать размер поля типа image.
и по функции DATALENGTH (это в SQL Books Online)
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Beatseed, Вы писали: B>>хм, понял, и как теперь эти данные датасета передать обьекту TImage? S>читаем доку по TBlobField (это в VCL) B>>И как тогда узнать размер поля типа image. S>и по функции DATALENGTH (это в SQL Books Online)
спасибо.
решил таки способом: