Image в SQL Server 2000 и Delphi 7

Vinc
Дата: 08.06.2009 18:30:41
Есть таблица с полем типа image. Есть несколько вопросов по этому поводу: 1. Я вставляю файл в поле таблицы, генерируя из него строку вида 0x[далее набор байт в шестнадцетиричной форме]. В принципе, это работает, но можно ли это сделать как-то по другому средствами Delphi или SQL Server? 2. Как с помощью Delphi забрать эти двоичные данные? Какой тип данных нужен при выборке данных из image? Есть простой путь сразу же сохранять выбранные данные в файл?
Модератор: Тема перенесена из форума "Microsoft SQL Server".
Grayscale
Дата: 08.06.2009 18:51:21
Так а чем вы подключаетесь к серверу? Если ADO то вам нужен ADOStream, если BDE то там своя фишка какая-нить должна быть.
Vinc
Дата: 08.06.2009 19:00:57
Grayscale,

Работаю через ADO. А можно подробнее как через ADOStream делать? Или ссылочку где почитать можно. Спасибо!
Moriarti
Дата: 09.06.2009 10:48:29
Vinc
Grayscale,

Работаю через ADO. А можно подробнее как через ADOStream делать? Или ссылочку где почитать можно. Спасибо!


var
  Bitmap : TBitmap;
  Stream : TStream;
  Q: TADOQuery;
begin
  Q := TADOQuery.Create(Self);
  Q.SQL.Text:='Select Grf from table1 (nolock)';
  Q.Open;

  Stream := Q.CreateBlobStream(TBlobField(Q.FieldByName('grf')), bmRead);
  TMemoryStream(Stream).SaveToFile('c:\1.dat');

// а если картинка
  Stream.Seek(0,0);
  Bitmap := TBitmap.Create;
  Bitmap.LoadFromStream(Stream);

Как-то так.
Vinc
Дата: 09.06.2009 15:05:44
Moriarti,

Спасибо за совет. Попробую.
Сам-то я вот как додумался делать:
 (ADOQuery1.FieldByName('image') as TBlobField).SaveToFile(Filename);