Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

dbExpress не открывает личико...   Найти похожие ветки 

 
pushkin42 ©   (2009-08-20 08:27) [0]

Поначитавшись "правильных" статей по поводу dbExpress и работы с BLOB полями в нём, решил сбацать крутую программку для хранения фотографий в базе.

И вот, я начинаю...
var
ms: TMemoryStream;
sqlquery1: Tsqlquery;
begin
ms := TMemoryStream.Create;
sqlquery1 := tsqlquery.Create(nil);
sqlquery1.SQLConnection := DB^;
try
SQLQuery1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add("INSERT INTO DOCUMENTS(DATA) VALUES(:BLB_VAR)");
SQLQuery1.Params.Clear;
SQLQuery1.Params.CreateParam(ftBlob, "BLB_VAR", ptInput);
ms.LoadFromStream(S);
ms.Position := 0;
SQLQuery1.ParamByName("BLB_VAR").SetBlobData(ms.Memory, ms.Size);
SQLQuery1.ExecSQL();
finally
ms.Free;
sqlquery1.Close;
sqlquery1.Free;
end;


на строчке SQLQuery1.ExecSQL() получаем:
incorrect values within sqlda structure

запрос, естественно, не выполняется...

Используются Delphi 2009, dbExpress, Firebird 2.1.2 dialect 3;
IBExpert, через который в ту же базу все картинки прекрасно грузятся.

Размер блоб - 1024, подтип - binary

Помогите пожалуйста :-)


 
Сергей М. ©   (2009-08-20 11:40) [1]

Вместо

SQLQuery1.ParamByName("BLB_VAR").SetBlobData(ms.Memory, ms.Size);

попробуй

S.Position := 0;
SQLQuery1.ParamByName("BLB_VAR").LoadFromStream(S);


 
Яцхен   (2010-07-06 14:55) [2]

подскажите как быть с блобами которые больше 32 Кб ?

есть таблица (Оракл)

CREATE TABLE "RLR_ADMIN"."RLR_LOG"
  ( "ID" NUMBER(*,0) NOT NULL ENABLE,
"XML_NAME" NVARCHAR2(50),
"XML_DATA" NCLOB,
 CONSTRAINT "PK_RLR_LOG_ID" PRIMARY KEY ("ID")
) ;

пока значения XML_DATA меньше 32 к -- все работает нормально,
а когда больше -- получаю ошибку оракла:

ORA-01460: unimplemented or unreasonable conversion requested.


вставку делаю через хранимую процедуру.
.....
           Stream := TStringStream.Create(WideString(XmlData));
           try
             Stream.Position := 0;
             Params.ParamByName("P_XML_DATA").LoadFromStream(Stream, ftWideMemo);
           finally
             Stream.Free;
           end;
           ExecProc;
......


прообовал и через
Params.ParamByName("P_XML_DATA").SetBlobData(Stream, Stream.Size);
результат тот же - ошибка

каким макаром можно писать в базу xml-файлы больших размеров?



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

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.081 c
2-1336839148
тщгыук
2012-05-12 20:12
2013.03.22
а ля Self внутри with do


2-1347126804
Fr
2012-09-08 21:53
2013.03.22
"Общение" сайта и приложения


15-1345064533
DevilDevil
2012-08-16 01:02
2013.03.22
IInterface и RTTI по нему


15-1350592203
Юрий
2012-10-19 00:30
2013.03.22
С днем рождения ! 19 октября 2012 пятница


15-1336633312
jacksotnik
2012-05-10 11:01
2013.03.22
Закрыть файл