Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
bytea
|
|||
|---|---|---|---|
|
#18+
Есть таблица объявленная в базе данных: CREATE TABLE visitors ( id int4 NOT NULL DEFAULT nextval('visitors_id_seq'::regclass), firstname varchar(50) NOT NULL, lastname varchar(50) NOT NULL, patronymic varchar(50), post varchar(50), number varchar(50), org_id int4 DEFAULT 0, group_id int4 NOT NULL, remark varchar(50), photo bytea, enabled bool NOT NULL, CONSTRAINT pk_visitors PRIMARY KEY (id) ) WITHOUT OIDS; ALTER TABLE visitors OWNER TO postgres; Первый вопрос: правильно ли объявлено поле photo в котором планируется хранить фотографии. Вопрос номер два: как отправить фотографию в поле photo? Делаю в С++ Builder 6 так: Поместила на форму DBImage1 и привязала его к полю с фотографиями. Пишу: //PathPic путь к картинке //DBImage1 привязан к полю photo из ClientDataSetVis DataModule2->ClientDataSetVis->Edit(); DBImage1->Picture->LoadFromFile(PathPic); После этого вижу картинку в DBImage1. Далее делаю: DataModule2->ClientDataSetVis->Post(); И картинка из DBImage1 исчезает. :( В самом событии AfterPost есть код: void __fastcall TDataModule2::ClientDataSetVisAfterPost(TDataSet *DataSet) { ClientDataSetVis->ApplyUpdates(-1); ClientDataSetVis->Active = false; ADOQueryVis->Active = false; ADOQueryVis->Active = true; ClientDataSetVis->Active = true; //ClientDataSetVis->First(); } В ADOQueryVis текст select * from visitors order by lastname Что может быть не правильно, почему картинка из DBImage1 не загоняется в базу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2006, 12:58 |
|
||
|
bytea
|
|||
|---|---|---|---|
|
#18+
Вот ответ для C++ Builder: Может кому пригодиться при работе с postgresql... Код ниже заносит картинки bmp, jpg в базу. #include <memory> #include <Jpeg.hpp> using namespace std; AnsiString fileName = ThumbnailList1->Thumbnails->Items[ThumbnailList1->ItemIndex]->Filename; auto_ptr<TMemoryStream> stream(new TMemoryStream()); auto_ptr<Graphics::TBitmap> bitmap(new Graphics::TBitmap()); if( ExtractFileExt(fileName) ==".jpg") { auto_ptr<TJPEGImage> jpeg (new TJPEGImage()); jpeg->LoadFromFile(fileName); bitmap->Assign(jpeg.get()); } else { bitmap->LoadFromFile(fileName); } bitmap->SaveToStream(stream.get()); stream->Position = 0; DataModule2->ADOQueryVis->SQL->Text="UPDATE visitors SET photo=:img WHERE id =" + DataModule2->ClientDataSetVisid->AsString; DataModule2->ADOQueryVis->Parameters->ParamByName("img")->DataType = ftBlob; DataModule2->ADOQueryVis->Parameters->ParamByName("img")->LoadFromStream(stream.get(), ftBlob); DataModule2->ADOQueryVis->ExecSQL(); DataModule2->ADOQueryVis->SQL->Text= "select * from visitors order by lastname"; Также необходимо установить последний драйвер odbs для postgresql 8.02.02.00 и в настройках поставить галочку использовать тип bytea как LO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2006, 12:20 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=310&tid=2005955]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 322ms |

| 0 / 0 |
