Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2014.08.10;
Скачать: [xml.tar.bz2];

Вниз

Проблема перехода с D2007 на D2009   Найти похожие ветки 

 
Moiseev S.   (2011-02-27 13:39) [0]

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


 
sniknik ©   (2011-02-27 15:53) [1]

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


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

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


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

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


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

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


 
sniknik ©   (2011-02-28 11:19) [5]

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


 
sniknik ©   (2011-02-28 11:22) [6]

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


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

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


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

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


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


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


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


 
Anatoly Podgoretsky ©   (2011-03-02 09:45) [10]

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

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


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

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

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


 
Anatoly Podgoretsky ©   (2011-03-02 10:33) [12]

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

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

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


 
Loginov Dmitry ©   (2011-03-02 22:35) [13]

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


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


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


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-03 00:15) [15]

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


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

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


 
имя   (2011-03-17 02:49) [17]

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



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2014.08.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.002 c
15-1389817803
Юрий
2014-01-16 00:30
2014.08.10
С днем рождения ! 16 января 2014 четверг


15-1389523491
JohnKorsh
2014-01-12 14:44
2014.08.10
Не по Delphi


15-1389731402
Юрий
2014-01-15 00:30
2014.08.10
С днем рождения ! 15 января 2014 среда


3-1298803163
Moiseev S.
2011-02-27 13:39
2014.08.10
Проблема перехода с D2007 на D2009


2-1379670806
zibert
2013-09-20 13:53
2014.08.10
Listview





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский