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

Вниз

копирование blob   Найти похожие ветки 

 
July   (2006-09-06 12:31) [0]

Такая картина - в процедуре один запрос делает выборку из таблицы, записывает результат в локальные переменные, одна из них - типа blob. Потом другой запрос делает вставку в таблицу и одно из вставляемых полей - тоже типа blob, в него и делается попытка записать ту переменную. Есть подозрение, что скорее всего наш blob вовсе не копируется, а в новую запись просто вставляется указатель на ту же область данных, где хранится исходный массив blob.
Вопрос - каким образом, пользуясь средвами СУБД, действительно скопировать значение поля типа blob, т.е. создать его второй экземпляр и передать указатель именно на него, а не на исходный?
Буду признательна также за ссылки на какие-нибудь русскоязычные материалы по подобным вопросам о манипулировании blob-ами.


 
Desdechado ©   (2006-09-06 13:33) [1]

> в локальные переменные
это на клиенте или в ХП?
Может, вставлять копию блоб лучше через INSERT ... SELECT


 
July   (2006-09-06 13:49) [2]


> это на клиенте или в ХП?

все делается запросами в перелах одной ХП


> Может, вставлять копию блоб лучше через INSERT ... SELECT


примерно это и делается, однако при дальнейшей работе возникают ошибки, которые и натолкнули на соображения, высказанные выше


 
Desdechado ©   (2006-09-06 14:00) [3]

Во-первых, "примерно" не считается.
Во-вторых, не вижу описания и текста ошибки.


 
July   (2006-09-06 17:34) [4]


> Во-первых, "примерно" не считается.


:) ну ладно, не считается :)
Не сочтите за самонадеянность, но через конструкцию insert с select-ом я эту операцию не пробовала делать (просто занимаюсь сейчас другим), однако думаю что в этом случае уж точно можно будет не сомневаться, что скопируется не сам массив blob, а указатель на него.


> Во-вторых, не вижу описания и текста ошибки.


Проблема возникала не у меня, у коллеги, сейчас не могу точно процитировать, завтра может быть уточню и напишу.
Но вообще подобные непонятки с blob-ами периодически всплывают и пока чаще всего приводят к выводу - а ну его нафиг этот blob, обойдемся длиннющими varchar-ами :)
Но это же не выход ;)

Повторюсь - почитать бы что-нибудь об этом, а? :))
хоть чуточку более понятное чем англоязычная документация на IB..


 
Desdechado ©   (2006-09-06 18:06) [5]

ibase.ru
много всего

INSERT INTO A( x,y ) SELECT m, n FROM B ...


 
July   (2006-09-07 13:41) [6]


> ibase.ru


Да, забыла, сейчас там поищу.
..но пока что везде встечаются только вопросы, касающиеся рабрты с блобами из приложения, а мне нужно в процедуре..


> INSERT INTO A( x,y ) SELECT m, n FROM B ...


Не, одним запросом не получится, прежде чем вставить запись, после извлечения делается еще несколько операций..


 
Desdechado ©   (2006-09-07 14:02) [7]

> Не, одним запросом не получится
Почему?
Запоминаешь ID записи, манипулируешь с другими значениями, потом делаешь:
INSERT INTO A( x,y )
  SELECT :переменная1, константа2, блоб_поле
    FROM Tabl WHERE ID=:сохраненныйID

В переменной твои манипулированные значения, а блоб возьми живой, с пылу-с жару.


 
July   (2006-09-07 17:30) [8]


> Запоминаешь ID записи, манипулируешь с другими значениями,
>  потом делаешь:
> INSERT INTO A( x,y )
>   SELECT :переменная1, константа2, блоб_поле
>     FROM Tabl WHERE ID=:сохраненныйID
> В переменной твои манипулированные значения, а блоб возьми
> живой, с пылу-с жару.


Ну ладно, посоветую коллеге этот способ, пусть пробует.
Однако, Desdechado, есть ли 100% гарантия, что будет скопирован сам blob-массив, а не указатель на этот массив, созданный для исходной записи?
Страдаю недостатком знаний по этому вопросу


 
Desdechado ©   (2006-09-07 17:36) [9]

> blob-массив
Это что такое?


 
July   (2006-09-07 18:00) [10]


> Это что такое?


собственно содержимое поля



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

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

Наверх




Память: 0.49 MB
Время: 0.054 c
5-1141155140
Чайник
2006-02-28 22:32
2006.11.05
Не ловятся сообщения от мышиного колесика WM_MOUSEWHEEL


2-1161179995
Megabyte
2006-10-18 17:59
2006.11.05
Подкиньте ссылкок на тему: создание сервисов.


15-1160814051
*Стажер*
2006-10-14 12:20
2006.11.05
История Делфи


15-1160851268
Александр Иванов
2006-10-14 22:41
2006.11.05
Докупил память...


3-1157530675
alex_sc
2006-09-06 12:17
2006.11.05
запись и чтение GIF из MSSQL