Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Копирование таблицы [D7]


Страницы:   1 2

Demiurg ©   (2004-04-20 10:13:00) 

Копирую таблицу из одной базы в другую. В одной записи этой таблицы есть очень длинное текстовое поле. И на этой записи вылетает ексепшн с сообщением что-то типа "Invalid BLOB hanlde". Походу такая длинная строка как blob рассматривается. Прбовал копировать разными способами - то же самое... Что это может быть и как лечить? Помогите, плиз.
 Да, база InterBase. К исходной таблице обращаюсь через BDE, к результирующей напрямую.


Johnmen   (2004-04-20 17:53:00) [1]

Это БДЕ тупит. А может версия старая...


Demiurg   (2004-04-20 17:50:00) [2]

Однако IsBlob выдает true...


Johnmen   (2004-04-20 17:32:00) [3]

>точнее VARCHAR 1024, но это же blob

Нет, что ты !!!!!!!!!!


Demiurg   (2004-04-20 17:29:00) [4]

Поле Blob (точнее VARCHAR 1024, но это же blob) :) На строках до 255 работает нормально, выше вылетает. Причем при любом обращении к полю. Я тоже сделал вывод, что BDE глючит. Решил, короче, получить через алиас путь к базе, и работать с данной таблице напрямую :)
Все огромное спасибо за ответы!


Johnmen   (2004-04-20 17:09:00) [5]

Ну даже не знаю... Видимо проблемы с БДЕ...
Кстати, какого типа поле ?


Demiurg   (2004-04-20 17:07:00) [6]


> Возможно BLOBS TO CACHE надо побольше, т.е. >= кол-ву записей
> в qSDicti.

 Может вылететь и в самом начале итерации, если запись с длинным description (это поле такое) попадется. Проверял.


Johnmen   (2004-04-20 17:04:00) [7]

>Ega23 ©   (20.04.04 17:02) [24]

А я говорю о количестве, а не качестве...:)


Ega23   (2004-04-20 17:02:00) [8]

Johnmen ©   (20.04.04 16:58) [23]

Он же говорил, что максимально - около 300 символов.


Johnmen   (2004-04-20 16:58:00) [9]

>что-то типа "Invalid BLOB hanlde".

Возможно BLOBS TO CACHE надо побольше, т.е. >= кол-ву записей в qSDicti.


Demiurg   (2004-04-20 16:35:00) [10]


> Примерно так для BLOB
> ms:=TMemoryStream.Create;
> TBlobField(qSDicti.Fields[x]).SaveToStream(ms);
> sDDicti.Params[x].LoadFromStream(ms,0);
> ms.Free;

 Та же история :( Все BLOB поля нормально копируются в стрим,но если поле большое, то вылетает на SaveToStream с той же ошибкой...


Demiurg   (2004-04-20 13:59:00) [11]


> Johnmen

 Ржалъ долго :)))


Johnmen   (2004-04-20 13:47:00) [12]

http://213.248.61.64/cgi-bin/slovari/BBB.pl?length=&sence=&power=&url=http://www.delphimaster.ru/cgi-bin/forum.pl?id=1082441582%26n=1

:)))


Курдль   (2004-04-20 13:41:00) [13]


> Не стОит пробовать. Не получится.
> Вот если к обеим БД доступ через БДЕ, то можно...

А, я упустил пояснение, что таблицы в разных БД :(


Demiurg   (2004-04-20 13:41:00) [14]


> > А простым скриптом типа
>
>  Нет! Щас попробую. Мне такая идея что-то в голову не пришла...
> :)

 Хотя не... А как мне в одном скрипте использовать таблицы из разных баз? Через BDE имхо не получится...


Johnmen   (2004-04-20 13:40:00) [15]

>Щас попробую.

Не стОит пробовать. Не получится.
Вот если к обеим БД доступ через БДЕ, то можно...


Demiurg   (2004-04-20 13:38:00) [16]


> А простым скриптом типа

 Нет! Щас попробую. Мне такая идея что-то в голову не пришла... :)


Johnmen   (2004-04-20 13:26:00) [17]

Примерно так для BLOB
ms:=TMemoryStream.Create;
TBlobField(qSDicti.Fields[x]).SaveToStream(ms);
sDDicti.Params[x].LoadFromStream(ms,0);
ms.Free;


Курдль   (2004-04-20 13:20:00) [18]

А простым скриптом типа

insert into TABLE_1 (FIELD_1, ... FIELD_N)
select TABLE_2 (FIELD_1, ... FIELD_N)

не пробовали? :)


Demiurg   (2004-04-20 13:13:00) [19]


> Могу предположить, что ошибка вылетает на строках, длиннее
> 255-ти символов?

 Скорее всего. Но это не решает проблему :)


Nikolay M.   (2004-04-20 11:55:00) [20]

Могу предположить, что ошибка вылетает на строках, длиннее 255-ти символов?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо