Вниз
Скачать: CL | DM;

Как записать в поле binary файл и потом считать его обратно?   Найти похожие ветки 

← →
Nikolai_S ©   (2004-07-02 14:57) [0]

Как через ADO записать в поле binary файл и потом считать его обратно?


← →
Nikolai_S ©   (2004-07-02 15:34) [1]

Если не очень понятно поставил вопрос, то немного конкретизирую:

Задача: необходимо обеспечить возможность хранения в базе данных MS SQL Server 2000 произвольных файлов (размером около 3-5 Мб).

Для этого я создал таблицу с полями FILENAME (nvarchar) и MY_FILE (binary).

Как теперь в дельфи через TADOQuery записать в поле MY_FILE какой-нибудь файл и потом наоборот - считать из базы данных и сохранить на жесткий диск.


← →
Kadr   (2004-07-02 15:35) [2]

TStream
TFileStream


← →
Ega23 ©   (2004-07-02 15:49) [3]

TADOQuery

ADO не пользовался, но думаю, что так же, как и у обычного TQuery.

Читать из базы:
  TBLOBfield(DMpas.RQReadImg.FieldByName("PersFaceImg")).SaveToFile(ExtractFilePath(ParamStr(0))+"FaceImg.jpg");

Писать в базу:

DMpas.RQImage.ParamByName("Img").LoadFromFile(ExtractFilePath(ParamStr(0))+"FaceImg.jpg",ftBlob);

Естественно, в Params добавить параметр надо...


← →
Nikolai_S ©   (2004-07-02 16:06) [4]

Я прочитал в справке, что типы данных binary и varbinary могут содержать не более 8000 байт. А как сохранить в БД файл размером в 3-5 Мб?


← →
Ega23 ©   (2004-07-02 16:13) [5]

Поставь его типа image. Они из одного семейства типов.

image
Variable-length binary data from 0 through 2^31-1 (2,147,483,647) bytes.


← →
Nikolai_S ©   (2004-07-02 17:36) [6]

ОК, спасибо. Это то, что надо



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.027 c
8-1083904486
nkoleda
2004-05-07 08:34
2004.07.25
Информация в примечании Excel


14-1089021380
VEG
2004-07-05 13:56
2004.07.25
Подхватил какой-то троянец


1-1089464146
ko
2004-07-10 16:55
2004.07.25
Текстовое поле как массив


14-1089125489
Piter
2004-07-06 18:51
2004.07.25
Принтер EPSON C42SX


1-1089601040
rolex
2004-07-12 06:57
2004.07.25
Как на ListBox е сделать фоновый рисунок?




   Наверх