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

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

Проблема перехода с D2007 на D2009


Moiseev S. ©   (2011-02-27 13:39:00) 

Уважаемые мастера, столкнулся со следующей проблемой. Есть проект, в недрах которого имеется строка MyDataSet.ApplyUpdates, где MyDataSet - кэшированый IBQuery. Если проект компилировать в D2007, все работает корректно, а если в D2009, именно на этой строчке вылетает исключение Variant or safe array index out of bounds. Методом проб(открыл набор, перевел в режим редактирования, попытался подтвердить изменения, причем изменений никаких не делалось) выяснил, что ошибка вылетает при наличии в IBUpdateSQL блоб полей. Поиск в инете ответа не дал. В чем может быть проблема ?


  (2011-03-17 02:49:00) [1]

Удалено модератором


Moiseev S.   (2011-03-03 21:31:00) [2]

Огромное спасибо всем за реакцию. Проблема ушла с переходом на FIB.


Loginov Dmitry   (2011-03-03 00:15:00) [3]

Абсолютно все верно написано!
Но мною было написано следующее: "ошибки в библиотеке IBX не имеют отношения к Firebird". Я не говорил, что "IBX не имеют отношения к Firebird".
Очень замечательно, что разработчикам Firebird удается сохранить совместимость между клиентской частью СУБД и компонентами IBX. Лично я до сих пор использую IBX, а не FIBPlus, но если возникнет проблема несовместимости, то перейду на FIBPlus.


Игорь Шевченко   (2011-03-02 23:52:00) [4]


> но это так... к слову.


http://www.ibase.ru/components.htm

"IBX (InterBase Express) - входит в поставку Delphi, C++Builder, Kylix, InterBase (закладка InterBase на палитре компонент). Наиболее естественный способ для работы с InterBase и Firebird из Delphi и C++Builder "

на ibase.ru обычно знают, о чем пишут


Loginov Dmitry   (2011-03-02 22:35:00) [5]

Ошибки в библиотеке IBX не имеют отношения к Firebird. IBX разрабатывается для InterBase (это совершенно другой продукт, от которого вы отказались еще в 96г). Для FireBird разрабатывается FIBPlus (думаю там подобных ляпов поменьше), но это так... к слову.


Anatoly Podgoretsky   (2011-03-02 10:33:00) [6]

> Inovet  (02.03.2011 10:00:11)  [11]

Не тупые, а хитрые, им так было проще решить, чем делать правильно, хорошо
еще что на АДО не покусились, с MS SQL полный порядок, правильно работает и
с varchar (ftString) и с nvarchar (ftWideString).

Мне сообвственно наплевать на ошибки в реализации с Firebird - я это не
использую, я от этого отказался еще в 96 году.


Inovet   (2011-03-02 10:00:00) [7]

> [10] Anatoly Podgoretsky ©   (02.03.11 09:45)
> Просить исправить безполезно, они не понимают этого.

Интересно, в чём причина, не тупые ведь, чтобы не понимать.


Anatoly Podgoretsky   (2011-03-02 09:45:00) [8]

> Loginov Dmitry  (02.03.2011 00:08:09)  [9]

Они не исправлены, они замаскированы, путем изменения типа данных в рантайм,
ANSI преобразовывают в Юникод. Просить исправить безполезно, они не понимают
этого.


Loginov Dmitry   (2011-03-02 00:08:00) [9]


> Поиск в инете ответа не дал. В чем может быть проблема ?


В D2009 имеются глюки в IBX, связанные именно с юникодом. Вероятно, они исправлены в IBX, идущей вместе в D2010 (по крайней мере, работая в D2010, пока не сталкивался с глюками IBX).


Дмитрий Белькевич   (2011-03-01 14:46:00) [10]

Гугл по запросу "Variant or safe array index out of bounds" отадёт много ссылок - может чем-то поможет?


Moiseev S.   (2011-02-28 15:24:00) [11]

>BLOB sub_type 0 segment size 80
Ну да, именно это и имеется в виду, просто IBExpert подтип показывает не цифрой.


sniknik   (2011-02-28 11:22:00) [12]

или имеется в виду вот это
GRAPHIC BLOB sub_type 0segment size 80
типа 0 бинарные данные 1 текстовые (memo)


sniknik   (2011-02-28 11:19:00) [13]

> подтип Binary.
???
не уверен насчет IB, но в mssql бинари это массив байт, а не блоб. возможно проблема именно в этом, в старом оно возможно не поддерживалось и приравнивалось к блобу, а в новом пытается...


Moiseev S.   (2011-02-28 10:16:00) [14]

2sniknic
Все правильно определяется. Если смотреть набор, картинки выводятся абсолютно корректно. Блобы описаны так : длина 80, подтип Binary.


sniknik   (2011-02-27 18:00:00) [15]

а тип поля с блобом правильно определяется при открытии? если его вручную переопределить? т.е. создать все будущие поля в рекордсете в дизайтайм явно прописав типы.
?


Moiseev S.   (2011-02-27 16:03:00) [16]

2sniknic
Нет, не использую, в блоб полях содержатся картинки  и в названиях таблиц/полей тоже только латиница.


sniknik   (2011-02-27 15:53:00) [17]

в юникоде например... поиск по имени поля не нашел, значит "index out". русские буквы в названиях таблиц/полей используешь?


Наверх

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