Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi+MSSQL - как сохранить в поле Image файл (произвольный)? / 4 сообщений из 4, страница 1 из 1
04.08.2003, 20:34
    #32226886
асушник_2003
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+MSSQL - как сохранить в поле Image файл (произвольный)?
Насколько знаю в Image можно сохранить все что хочешь, видел как это работет на VB .с картинками получилось, а вот чего-либо другое сохранить нет.
Кто знает как это сделать?

P.S. А OLE объекты на MSSQL можно сохранить? В dBase & paradox поля соответствующие есть, а в mssql ничего похожего.
...
Рейтинг: 0 / 0
04.08.2003, 21:11
    #32226903
ziktuw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+MSSQL - как сохранить в поле Image файл (произвольный)?
См. OleContainer -> SaveToSteam, используй TBlobStream + TBlobField
Это чтобы сохранить Ole-объект.
А чтобы сохранить просто какой-то бинарник, то TMemoryStream -> TBlobStream + TBlobField
...
Рейтинг: 0 / 0
04.08.2003, 23:04
    #32226936
асушник_2003
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+MSSQL - как сохранить в поле Image файл (произвольный)?
Dankov
Спасибо за подсказку.

Попробовал я с OLE, но до конца не понял.
по шагам:

грузим OLE object
Код: plaintext
1.
2.
3.
4.
5.
procedure TForm1.LoadButtonClick(Sender: TObject);
begin
 if not OpenDialog1.Execute then exit;
 OleContainer1.CreateObjectFromFile(Opendialog1.FileName,false);
end;


пишем в базу
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
procedure TForm1.toBaseButtonClick(Sender: TObject);
var
 bs:TBLOBStream;
begin
 with Table1 do
 begin
  if not active then open;
  append; {insert, edit}
  bs:=TBLOBStream.Create(Table1Inf,bmReadWrite);
  OleContainer1.SaveToStream(bs);
  post;
 end;
 bs.Free;
end;

выдает ошибку - 'Invalid BLOB Length',если вместо добавления делал изменение, то вылетали ошибки типа BLOB not opened, но в таблицу записи все-таки попадали.
уже записанное читалось без проблем:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure TForm1.fromButtonClick(Sender: TObject);
var
 bs:TBLOBStream;
begin
 with  Table1 do
 begin
  if not active then open;
  bs:=TBLOBStream.Create(Table1Inf,bmRead);
  OleContainer1.LoadFromStream(bs);
 end;
 bs.Free;
end;


Где я не прав?
...
Рейтинг: 0 / 0
05.08.2003, 13:46
    #32227470
ziktuw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+MSSQL - как сохранить в поле Image файл (произвольный)?
В настройках алиаса BDE задается максимальный размер блоба.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi+MSSQL - как сохранить в поле Image файл (произвольный)? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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