Форум: "Базы";
Текущий архив: 2003.05.29;
Скачать: [xml.tar.bz2];
ВнизNon-blob column in table required to perform operation! Найти похожие ветки
← →
Avreliy (2003-05-12 16:26) [0]Привет мастерам!
Есть форма, работающая с 2мя таблицами: Главная --> Подчиненная.
Доступ к БД(FireBird) осуществляется посредством BDE. Так вот, при попытке внести данные в подчинённую таблицу, появляется сообщение: Non-blob column in table required to perform operation!. Хотя никаких BLOB-полей в таблице не присутствует. Нету и длинных строк, которые трактовались бы как BLOB"ы. Тем не менее данные в таблицу вносятся, при том, столько раз, сколько вызывается метод Post подчинённой таблицы. Может, кто сталкивался с этим? Буду признателен за помощь.
← →
Zacho (2003-05-12 16:42) [1]
> Avreliy (12.05.03 16:26)
Ты уже задавал этот вопрос. Но так и не признался: какие компоненты доступа и размер полей VARCHAR ?
Если BDE и VARCHAR >255 - то это фича BDE.
← →
Zacho (2003-05-12 16:44) [2]P.S. смотри http://delphimaster.net/view/3-1052324308/
← →
Anatoly Podgoretsky (2003-05-12 16:45) [3]Любые строковые поля длиной свыше 255 трактуются как blob
← →
Avreliy (2003-05-12 17:00) [4]Прошу прощения, что в прошлый раз внезапно покинул форум - очень спешил.
-------------
Компоненты доступа стандартные - Table, DataBase, DataSource.
Визуальный компонент - DBGrid.
Максимальный размер поля типа VarChar - 120. Но этот тип я использую не напрямую, а через домен.
Среди остальных типов полей таблицы: Date, Integer, SmallInt, Numeric(9.2).
Также использую несколько полей выборки.
← →
Johnmen (2003-05-12 17:21) [5]Какова кодировка символьного поля ?
← →
Avreliy (2003-05-12 17:33) [6]Кодировка символьного поля - WIN1251
← →
Johnmen (2003-05-12 17:47) [7]Тогда не более 83
← →
Avreliy (2003-05-12 18:02) [8]Т.е. любое символьное поле размером > 83 трактуется как поле типа BLOB? Как избежать этого, конечно же, не изменяя длины поля? И почему такое ограничение?
← →
Johnmen (2003-05-12 18:09) [9]Трактуется движком BDE, если указана национальная кодировка. А в общем и целом, конечно, нет !
← →
Zacho (2003-05-12 18:14) [10]
> Johnmen © (12.05.03 17:47)
Уже смутно помню работу с BDE, но кажется мне, что ограничения в 83 там не было. Помнится, были у нас поля с charset win1251 ровно 255, и все было нормально. А 83 - это максимальный размер индекса на поле с collate (а не с character set), и BDE здесь ни при чем.
← →
Avreliy (2003-05-12 18:24) [11]И всё же...
Есть какие-то определённые идеи?
> Zacho
Помнится, ты говорил, что давно не работаешь с BDE. Я работаю с базами недолго, поэтому не знаю альтернатив BDE. Какие можешь посоветовать?
← →
spater (2003-05-12 18:31) [12]Удалено модератором
Примечание: Задай вопрос в СВОЕЙ ветке
← →
Zacho (2003-05-12 18:39) [13]
> 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 умерли.
← →
Avreliy (2003-05-12 18:51) [14]За инфо спасибо.
Но как насчёт определённых идей по избежанию появления сообщения?
← →
Zacho (2003-05-12 18:56) [15]
> spater (12.05.03 18:31)
IMHO, master-detail и каскадное удаление здесь ни при чем. Все дело в DBMemo. Этот компонент предназначен для работы с blob (memo) полями, отсюда и ошибка.
Когда я еще работал с BDE :) , в наших проектах были таблицы с самими разными связями, и строковые поля с character set win1251 размером до 255 включительно, и такой ошибки я ни разу не видел.
← →
spater (2003-05-12 19:12) [16]> Zacho © (12.05.03 18:56)
Так мне что делать?
База то в акцессе..., и размер поля 300.
← →
Zacho (2003-05-12 19:18) [17]
> spater (12.05.03 19:12)
Ветка была про IB. И отвечал я про IB. А с access"ом я дела не имел, заведи свою ветку, укажи в теме ACCESS и жди ответов :)
← →
Zacho (2003-05-12 19:40) [18]
> Avreliy (12.05.03 18:51)
По предоставленной тобой информации ничего вразумительного сказать уже не могу. Как я уже писал, в свое время работал с BDE, и связи master-detail были, и поля с кодировкой win1251 были, а такую ошибку наблюдал только для строковых полей более 255 символов. Может у кого-нибудь еще идеи будут.
А подавить само сообщение об ошибке конечно можно, но не лучше ли разобраться, почему она происходит ?
← →
spater (2003-05-12 19:40) [19]ok :)
← →
Avreliy (2003-05-12 19:45) [20]Разобраться я попытаюсь, а вот если не получится, то лучше его игнорировать. Только подскажи, как?
← →
Zacho (2003-05-12 19:56) [21]
> Avreliy (12.05.03 19:45)
try ... except ... end
или
Application.OnException
или
TDataSet.OnPostError
А не лучше ли перейти на IBX или FIBPlus ? В BDE еще много чего неожиданного (и не всегда приятного) есть :)
← →
Avreliy (2003-05-12 20:07) [22]Насколько трудоёмок этот процесс?
И неужели нигде нету бесплатного FibPlus?
← →
Zacho (2003-05-12 20:20) [23]
> Avreliy (12.05.03 20:07)
> Насколько трудоёмок этот процесс?
Зависит от ... Много чего, точнее не скажешь :) Переводить какой-нибудь более-менее большой старый проект - немного проще, чем написать все заново :) В общем, попробуй, узнаешь :)
> И неужели нигде нету бесплатного FibPlus?
Есть какая-то старая версия. Наверное, и новые версии можно найти на каких-нибудь варезных сайтах. Но лично мне было бы стыдно :) За такой отличный продукт - цена совсем небольшая. Жалко денег - пользуйтесь IBX, тоже вполне приемлемо.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.05.29;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.01 c