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

Вниз

MIDAS, Oracle, передача в BLOB через параметр   Найти похожие ветки 

 
Unk   (2004-04-08 05:58) [0]

При вставке двоичного файла в BLOB поле через параметр ClientDatasеt-а происходит резка файла до 6 байт. Текстовый файл вставляется нормально.
BlobClientDataSet.CommandText:=’insert into app_files (file_name, binary_file) values (:file_name, :binary_file);
BlobClientDataSet.params.findparam(‘file_name’).asstring:=extractfilename(‘c:\files\test.mp3’);
BlobClientDataSet.params.findparam(‘binary_file’).LoadFromFile(‘c:\files\test.mp3’, ftBlob);
BlobClientDataSet.execute;
При LoadFromStream происходит то же самое. На сервере приложений у провайдера dataset-ом является TOraQuery (компоненты ODAC).
Что не так или что необходимо добавить в код? Буду очень признателен за помощь.


 
Johnmen ©   (2004-04-08 09:35) [1]

1. Не указан тип параметра binary_file
2. params.ParamByName("...").LoadFromStream(...,ftBLOB);


 
Nikolay M. ©   (2004-04-08 09:48) [2]

Сначала не по сабжу, бросилось в глаза:
BlobClientDataSet.params.findparam(‘binary_file’)
Ты в курсе, что произойдет, если в один прекрасный день ты поменяешь имя параметра с binary_file на mega_binary_file? Всего лишь небольшой AV. Попалась мне как-то в наследство программка, автор которой использовал FindParam. А поскольку с момента написания программы прошло туева хуча времени, названия параметров поменялись и проверка этим "программистом" на (FindParam <> nil) просто не присваивала значения. Как следствие, банковская программа молча долгое время работала неправильно! Руки бы поотрывал...

Что до сабжа, до у параметра, имхо, тип еще нужно выставить.


 
Unk   (2004-04-08 10:59) [3]

.paramtype:=ptInput;
Касаемо .ParamByName("...").LoadFromStream(...,ftBLOB); - это не влияет на результат


 
Nikolay M. ©   (2004-04-08 11:08) [4]

Про .DataType речь.


 
Johnmen ©   (2004-04-08 11:09) [5]

1. Не указан тип данных параметра
2.
>это не влияет на результат
Возможно указатель потока не стоит в начале...


 
Reindeer Moss Eater ©   (2004-04-08 11:10) [6]

Тип поля вообще какой?


 
Unk   (2004-04-08 11:11) [7]

А как его задать, пример можно, у меня комп с делфей пока недоступен, datatype является свойством чего?


 
Unk   (2004-04-08 11:13) [8]

>это не влияет на результат
И как указатель потока установить в начало?


 
Reindeer Moss Eater ©   (2004-04-08 11:14) [9]

Тип данных у параметра определяется операцией присвоения параметру значения.
Так что это здесь - не причем


 
Johnmen ©   (2004-04-08 11:20) [10]

>Reindeer Moss Eater ©   (08.04.04 11:14) [9]

На это лучше не надеяться...

>Unk   (08.04.04 11:13) [8]

MySream.Seek(soFromBeginning,0);


 
Reindeer Moss Eater ©   (2004-04-08 11:22) [11]

Тип поля в таблице вообще какой?


 
Unk   (2004-04-08 11:24) [12]

Поле типа Blob в БД Oracle


 
Reindeer Moss Eater ©   (2004-04-08 11:25) [13]

Нет такого типа поля в Оракл


 
Reindeer Moss Eater ©   (2004-04-08 11:25) [14]

Хотя нет, вру


 
Reindeer Moss Eater ©   (2004-04-08 11:33) [15]

Скорее всего неправильно сгенерирован SQL для insert операции на сервере приложений.

С блобами работают через локаторы, которые сначала надо создать и связать с полем конкретной записи


 
Unk   (2004-04-08 11:37) [16]

я уже использовал условие returning и Empty_Blob() и с локаторами вообще ничего не вставляет, а без них только 6-7 байт файла


 
Reindeer Moss Eater ©   (2004-04-08 11:39) [17]

Тогда наверное тонкий клиент считает что поле текстовое или мемо. Ну и до первого нулевого байта принимает данные.
Попробуй подменить свой mp3 большим текстовым файлом


 
Unk   (2004-04-08 11:42) [18]

через параметры TOraQuery (ODAC) все записывает нормально, а вот через параметр ClientDataSet не передает


 
Reindeer Moss Eater ©   (2004-04-08 12:09) [19]

Попробуй подменить свой mp3 большим текстовым файлом.
Хотя и так ясно, что это тонкий клиент не понимает, что поле не текстовое а двоичное


 
Unk   (2004-04-08 17:37) [20]

Кто-нибудь сталкивался с подобной проблемой в конце концов?



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

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

Наверх




Память: 0.51 MB
Время: 0.059 c
6-1076158181
KalmykovSergei
2004-02-07 15:49
2004.04.11
Управление ICQ


6-1079335370
avakss
2004-03-15 10:22
2004.04.11
TServerSocket+TClientSocket+передача Stream


7-1079718031
Шнур
2004-03-19 20:40
2004.04.11
Hook


1-1079952165
Dysan
2004-03-22 13:42
2004.04.11
создание обьекта над другим обьектом?


1-1082637525
CSTR
2004-04-22 16:38
2004.04.11
Возведение в степень...