Главная страница
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.039 c
1-1080224872
PiratA
2004-03-25 17:27
2004.04.11
RxLIB


3-1079433263
ламер2
2004-03-16 13:34
2004.04.11
TIBQuery


3-1078984955
IBNovice
2004-03-11 09:02
2004.04.11
Error


3-1081274535
Deniska
2004-04-06 22:02
2004.04.11
Как указать TQuery чтобы он делал темпы не в текуще дериктории


7-1075484867
$tranger
2004-01-30 20:47
2004.04.11
Версия DirectX