Форум: "Базы";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.074 c