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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.022 c
1-94835
qwerty2
2003-05-19 18:28
2003.05.29
DCOM


14-95092
Андрей Ш.
2003-05-09 20:24
2003.05.29
Help Workshop


1-94860
AlexProdigy
2003-05-19 11:09
2003.05.29
TDateTimePicker + WinXP = глюк


1-94886
viol-2
2003-05-16 15:19
2003.05.29
Память как диск


14-95093
arcoant
2003-05-09 19:37
2003.05.29
DGLUT