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

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

Non-blob column in table required to perform operation! [D7, IB6.x]


Страницы:   1 2

Avreliy ©   (2003-05-12 16:26:00) 

Привет мастерам!
Есть форма, работающая с 2мя таблицами: Главная --> Подчиненная.
Доступ к БД(FireBird) осуществляется посредством BDE. Так вот, при попытке внести данные в подчинённую таблицу, появляется сообщение: Non-blob column in table required to perform operation!. Хотя никаких BLOB-полей в таблице не присутствует. Нету и длинных строк, которые трактовались бы как BLOB"ы. Тем не менее данные в таблицу вносятся, при том, столько раз, сколько вызывается метод Postподчинённой таблицы. Может, кто сталкивался с этим? Буду признателен за помощь.


Zacho   (2003-05-12 20:20:00) [1]


> Avreliy (12.05.03 20:07)
> Насколько трудоёмок этот процесс?

Зависит от ... Много чего, точнее не скажешь :) Переводить какой-нибудь более-менее большой старый проект - немного проще, чем написать все заново :) В общем, попробуй, узнаешь :)

> И неужели нигде нету бесплатного FibPlus?

Есть какая-то старая версия. Наверное, и новые версии можно найти на каких-нибудь варезных сайтах. Но лично мне было бы стыдно :) За такой отличный продукт - цена совсем небольшая. Жалко денег - пользуйтесь IBX, тоже вполне приемлемо.


Avreliy   (2003-05-12 20:07:00) [2]

Насколько трудоёмок этот процесс?
И неужели нигде нету бесплатного FibPlus?


Zacho   (2003-05-12 19:56:00) [3]


> Avreliy (12.05.03 19:45)

try ... except ... end
или
Application.OnException
или
TDataSet.OnPostError

А не лучше ли перейти на IBX или FIBPlus ? В BDE еще много чего неожиданного (и не всегда приятного) есть :)


Avreliy   (2003-05-12 19:45:00) [4]

Разобраться я попытаюсь, а вот если не получится, то лучше его игнорировать. Только подскажи, как?


spater   (2003-05-12 19:40:00) [5]

ok :)


Zacho   (2003-05-12 19:40:00) [6]


> Avreliy (12.05.03 18:51)

По предоставленной тобой информации ничего вразумительного сказать уже не могу. Как я уже писал, в свое время работал с BDE, и связи master-detail были, и поля с кодировкой win1251 были, а такую ошибку наблюдал только для строковых полей более 255 символов. Может у кого-нибудь еще идеи будут.
А подавить само сообщение об ошибке конечно можно, но не лучше ли разобраться, почему она происходит ?


Zacho   (2003-05-12 19:18:00) [7]


> spater (12.05.03 19:12)

Ветка была про IB. И отвечал я про IB. А с access"ом я дела не имел, заведи свою ветку, укажи в теме ACCESS и жди ответов :)


spater   (2003-05-12 19:12:00) [8]

> Zacho © (12.05.03 18:56)

Так мне что делать?

База то в акцессе..., и размер поля 300.


Zacho   (2003-05-12 18:56:00) [9]


> spater (12.05.03 18:31)

IMHO, master-detail и каскадное удаление здесь ни при чем. Все дело в DBMemo. Этот компонент предназначен для работы с blob (memo) полями, отсюда и ошибка.
Когда я еще работал с BDE :) , в наших проектах были таблицы с самими разными связями, и строковые поля с character set win1251 размером до 255 включительно, и такой ошибки я ни разу не видел.


Avreliy   (2003-05-12 18:51:00) [10]

За инфо спасибо.
Но как насчёт определённых идей по избежанию появления сообщения?


Zacho   (2003-05-12 18:39:00) [11]


> Avreliy (12.05.03 18:24)

В комплекте с Дельфи (начиная с D5) есть IBX (на палитре компонентов - закладка Interbase). Еще есть FIBPlus - гораздо лучше IBX, но стоят 15$. Еще есть IBO (InterBase Objects) - тоже платные, ничего про них сказать не могу,т.к. последний раз смотрел в 1998 г. а с тех пор IBO сильно изменились. Еще можно работать через ADO и dbExpress - по этому поводу тоже ничего сказать не могу, не пробовал. Я сейчас использую IBX. Да, еще осталась предтеча IBX и FIBPlus - FIBC (Free InterBase Components), но использовать их сейчас нет смысла, т.к. примерно с 1999 г. FIBC умерли.


spater   (2003-05-12 18:31:00) [12]

Удалено модератором
Примечание: Задай вопрос в СВОЕЙ ветке


Avreliy   (2003-05-12 18:24:00) [13]

И всё же...
Есть какие-то определённые идеи?
> Zacho
Помнится, ты говорил, что давно не работаешь с BDE. Я работаю с базами недолго, поэтому не знаю альтернатив BDE. Какие можешь посоветовать?


Zacho   (2003-05-12 18:14:00) [14]


> Johnmen © (12.05.03 17:47)

Уже смутно помню работу с BDE, но кажется мне, что ограничения в 83 там не было. Помнится, были у нас поля с charset win1251 ровно 255, и все было нормально. А 83 - это максимальный размер индекса на поле с collate (а не с character set), и BDE здесь ни при чем.


Johnmen   (2003-05-12 18:09:00) [15]

Трактуется движком BDE, если указана национальная кодировка. А в общем и целом, конечно, нет !


Avreliy   (2003-05-12 18:02:00) [16]

Т.е. любое символьное поле размером > 83 трактуется как поле типа BLOB? Как избежать этого, конечно же, не изменяя длины поля? И почему такое ограничение?


Johnmen   (2003-05-12 17:47:00) [17]

Тогда не более 83


Avreliy   (2003-05-12 17:33:00) [18]

Кодировка символьного поля - WIN1251


Johnmen   (2003-05-12 17:21:00) [19]

Какова кодировка символьного поля ?


Avreliy   (2003-05-12 17:00:00) [20]

Прошу прощения, что в прошлый раз внезапно покинул форум - очень спешил.
-------------
Компоненты доступа стандартные - Table, DataBase, DataSource.
Визуальный компонент - DBGrid.
Максимальный размер поля типа VarChar - 120. Но этот тип я использую не напрямую, а через домен.
Среди остальных типов полей таблицы: Date, Integer, SmallInt, Numeric(9.2).
Также использую несколько полей выборки.


Страницы:   1 2

Наверх

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