powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Записать данные в BLOB-параметр
14 сообщений из 14, страница 1 из 1
Записать данные в BLOB-параметр
    #39466827
KonstF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробую записать текстовый файл в блоб поле, на этапе инициализации ParamByName( 'GSTORAGE_STORAGE' ) получаю ошибку поле GSTORAGE_STORAGE не найдено.

Код: pascal
1.
2.
3.
  StorProcGStorage.StoredProcName := prc_Ins_GStorage;
  TBlobField( StorProcGStorage.ParamByName( 'GSTORAGE_STORAGE' ) ).LoadFromFile( 'c:\1.txt' );
  StorProcGStorage.ParamByName( prm_ABJ_ID ).AsInteger        := Xxx;



Подскажите, в чем ошибка?!
...
Рейтинг: 0 / 0
Записать данные в BLOB-параметр
    #39466847
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
06.06.2017 14:25, KonstF пишет:
> Подскажите, в чем ошибка?!

в программе.

компоненты доступа какие?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Записать данные в BLOB-параметр
    #39466875
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KonstFполе GSTORAGE_STORAGE не найдено.Прямо так и написано?
...
Рейтинг: 0 / 0
Записать данные в BLOB-параметр
    #39466916
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KonstF,

после
StorProcGStorage.StoredProcName := prc_Ins_GStorage;
явно не сделал Prepare. Я че-то сомневаюсь, что компоненты сразу на присвоение имени процедуры будут сами тут же prepare делать, или что-то еще.
...
Рейтинг: 0 / 0
Записать данные в BLOB-параметр
    #39466937
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvЯ че-то сомневаюсь, что компоненты сразу на присвоение имени процедуры будут сами тут же
prepare делать

На присвоение - нет. На обращение к параметрам - да. Если только это не ADO.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Записать данные в BLOB-параметр
    #39467453
KonstF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторМимопроходящий , проект полностью на FIB построен.

автор_Vasilisk_ , авторПрямо так и написано? нет конечно, там константа, я привел к такому виду просто.

авторkdv , авторявно не сделал Prepare. если его использовать, он начинает ругаться на неизвестную процедуру! Но она есть :)

Вытяжка из ddl'ки
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create or alter procedure INS_GSTORAGE (
    GSTORAGE_STORAGE blob sub_type 1 segment size 80 not null,
    ACTIVEOBJ_ID integer not null)
as
begin
    insert into
        gstorage
        ( gstorage.gstorage_storage, gstorage.activeoobj_id )
        Values
            ( :GSTORAGE_STORAGE, :ActiveObj_id );
  suspend;
end^




Поделитесь, кто сталкивался рабочим кусочком, нужен чисто блок записи желательно на StorProc
...
Рейтинг: 0 / 0
Записать данные в BLOB-параметр
    #39467455
KonstF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Походу, в имени процедуры была опечатка.
Пофиксил, перепроверил все константы сейчас следующее
автор StorProcGStorage.Transaction.StartTransaction;
StorProcGStorage.StoredProcName := prc_Ins_GStorage;
TBlobField( xtSilenceDataModule.StorProcGStorage.ParamByName( prm_GStorage_Storage ) ).LoadFromFile( 'c:\1.txt' );
StorProcGStorage.ParamByName( prm_ACTIVEOBJ_ID ).AsInteger := 1;
StorProcGStorage.Prepare;


В таком варианте, все ложится на попытке запихать файл в переменную
Код: pascal
1.
TBlobField( xtSilenceDataModule.StorProcGStorage.ParamByName( prm_GStorage_Storage ) ).LoadFromFile( 'c:\1.txt' );



Форумчане, лыжи не едут - выручайте!
...
Рейтинг: 0 / 0
Записать данные в BLOB-параметр
    #39467470
KonstF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ошибку не указал "Project xxx raised exception class EAccessViolantion with message access violation at address 00491bd6 in module xxx. read adress blablabla. Process stoped.'

Размер файла 9 байт, сделан ради отладки.
...
Рейтинг: 0 / 0
Записать данные в BLOB-параметр
    #39467477
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KonstF,

kdv же сказал: kdvпосле
StorProcGStorage.StoredProcName := prc_Ins_GStorage;
явно не сделал Prepare
а у вас:
KonstF
Код: pascal
1.
2.
3.
4.
StorProcGStorage.StoredProcName := prc_Ins_GStorage;
TBlobField( xtSilenceDataModule.StorProcGStorage.ParamByName( prm_GStorage_Storage ) ).LoadFromFile( 'c:\1.txt' );
StorProcGStorage.ParamByName( prm_ACTIVEOBJ_ID ).AsInteger := 1;
StorProcGStorage.Prepare;
...
Рейтинг: 0 / 0
Записать данные в BLOB-параметр
    #39467488
KonstF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
goldmi45, пробовал и так, все равно падает в райс эксепшн на этапе
Код: pascal
1.
TBlobField( 

.

Код: pascal
1.
2.
3.
4.
5.
  StorProcGStorage.Transaction.StartTransaction;
  StorProcGStorage.StoredProcName := prc_Ins_GStorage;
  StorProcGStorage.Prepare;
  StorProcGStorage.ParamByName( prm_ACTIVEOBJ_ID ).AsInteger        := 1;
  TBlobField( xtSilenceDataModule.StorProcGStorage.ParamByName( prm_GStorage_Storage ) ).LoadFromFile( 'c:\1.txt' );



Переменная в процедуре на сервере
Код: plsql
1.
    GSTORAGE_STORAGE blob sub_type 0 segment size 80 not null
...
Рейтинг: 0 / 0
Записать данные в BLOB-параметр
    #39467491
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KonstFпроект полностью на FIB построен.

FIB или FIB+
KonstFжелательно на StorProc

Почему нельзя использовать TpFibQuery?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
var qry: TpFIBQuery;
begin
  qry := TpFIBQuery.Create;
  try
    qry.Transaction := database.updateTransaction;
    qry.SQL.Text := 'execute procedure INS_GSTORAGE (:GSTORAGE_STORAGE, :ACTIVEOBJ_ID)';
    qry.Transaction.StartTransaction;
    try
      qry.ParamByName('GSTORAGE_STORAGE').LoadFromFile(FileName);
      qry.ParamByName('ACTIVEOBJ_ID').AsInteger := 1;
      qry.ExecQuery;
    finally
      qry.Transaction.Commit;
    end;
  finally
    FreeAndNil(qry);
  end;
end;
...
Рейтинг: 0 / 0
Записать данные в BLOB-параметр
    #39467502
KonstF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
goldmi45, Респект тебе добрый человек!
Компоненты - обычные fib.

P.S. скорость все таки шикарная - 20 метровые pdf практически мгновенно в бд пишет!
...
Рейтинг: 0 / 0
Записать данные в BLOB-параметр
    #39467651
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KonstFпробовал и так, все равно падает в райс эксепшн на этапе

С чего ты решил, что TParam можно приводить к TBlobField?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Записать данные в BLOB-параметр
    #39467949
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KonstFКомпоненты - обычные fib.
прародитель IBX и FIBplus - компоненты FreeIBComponents, которыми уже давным давно практически никто не пользуется.

Так что "обычных fib" считай нет.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Записать данные в BLOB-параметр
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]