Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Вниз

копирование 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.038 c
15-1161167667
Juice
2006-10-18 14:34
2006.11.05
Quantum Grid, обычная таблица


2-1161454380
Officeman
2006-10-21 22:13
2006.11.05
ShellExecute(0, , http://www.delphimaster.r , , SW_SHOW);


15-1161181718
Александр Иванов
2006-10-18 18:28
2006.11.05
Странное отношение к JOIN


2-1161357456
Zurius
2006-10-20 19:17
2006.11.05
ComboBox


2-1161162394
webpauk
2006-10-18 13:06
2006.11.05
TtreeItem разноцветный





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский