|
|
|
Sybase IQ 15.1 - как работать с LONG BINARY колонками?
|
|||
|---|---|---|---|
|
#18+
Добрый день. Проблема такого плана: имеется таблица с колонкой типа image. По документации, она может быть достаточно большой (length ranging from zero (0) to 512TB (terabytes) ) Однако, при попытке сделать Update либо Insert, вылетает ошибка IQbinary data not supported on data longer > than 32767 Bind host variable Покурив доки, нашел, что лонг байнари переменные у них зачем-то конвертируются в varbinary при передаче , а varbinary ограничено 32К чего мне явно мало. Дабы избавиться от переменных, попробовал пихать бинарник прямо в текст запроса, наподобие UPDATE Entities SET Data = 0x504B3414000808F61123BE WHERE ID=1, однако на достаточно длинных данных вылетает IQCould not execute statement. Syntax error near '±!@' on line 1 SQLCODE=-131, ODBC 3 State="42000" Line 1, column 1 Да и странный это способ. Так как же работать с этими полями в IQ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2009, 13:49 |
|
||
|
Sybase IQ 15.1 - как работать с LONG BINARY колонками?
|
|||
|---|---|---|---|
|
#18+
Lexs, http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc00172.1510/html/iqlob/CHDEJDJI.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2009, 14:43 |
|
||
|
Sybase IQ 15.1 - как работать с LONG BINARY колонками?
|
|||
|---|---|---|---|
|
#18+
up, Смысл приведённой тобой ссылки: "У нас в IQ есть Large Objects Management Option и она должна быть лицензирована" Судя по тому, что таблицы с такими колонками создаются на ура, эта опция у меня есть. Или я чего-то недопонимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2009, 14:56 |
|
||
|
Sybase IQ 15.1 - как работать с LONG BINARY колонками?
|
|||
|---|---|---|---|
|
#18+
Lexs, 1. Да 2. An inbound !!! LONG BINARY variable (a host variable or SQL variable used by IQ) is limited to a length of 32767 Т.е. судя по ошибке как раз это и получается в момент биндинга переменной (откуда вызывается insert, update ?). 3. А загрузить (чтобы проверить, что всё работает) я бы попробовал для начала так: http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc00172.1510/html/iqlob/CIHJIDCC.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2009, 15:11 |
|
||
|
Sybase IQ 15.1 - как работать с LONG BINARY колонками?
|
|||
|---|---|---|---|
|
#18+
up, попробовал Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. содержимое файла 1.тхт Код: plaintext Запускаю - ошибок не выдаёт, новых строк в таблице не появляется. Не ожидал такого. Это может указывать на то, что данная опция не лицензирована? Можно ли как-то увидеть список всех фич сервера, которые у меня лицензированы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2009, 16:09 |
|
||
|
Sybase IQ 15.1 - как работать с LONG BINARY колонками?
|
|||
|---|---|---|---|
|
#18+
Lexs, 1. sp_iqlmconfig 2. Для Load попробуйте указать message log ... (возможно есть какие-то ошибки при Load). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2009, 16:49 |
|
||
|
Sybase IQ 15.1 - как работать с LONG BINARY колонками?
|
|||
|---|---|---|---|
|
#18+
up, C LoadTable разобрались, надо было оказывается ставить запятую в конце строчки в 1.тхт Вставляет ок. Значит, лицензия есть.. Что ещё можно попробовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2009, 17:10 |
|
||
|
Sybase IQ 15.1 - как работать с LONG BINARY колонками?
|
|||
|---|---|---|---|
|
#18+
А может быть такое, что IQ изначально заточен под реад-онли процессинг данных, поэтому так всё плохо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2009, 18:08 |
|
||
|
Sybase IQ 15.1 - как работать с LONG BINARY колонками?
|
|||
|---|---|---|---|
|
#18+
Lexs, А что именно плохо? Откуда вставлять хотим (на чём пишем)? Если хотим напрямую из клиентского приложения, то всё то же самое, что и для Sybase ASA. Посмотрите ещё на процедурку xp_read_file. P.S. Гляньте что такое host variable. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 13:23 |
|
||
|
Sybase IQ 15.1 - как работать с LONG BINARY колонками?
|
|||
|---|---|---|---|
|
#18+
upLexs, А что именно плохо? Откуда вставлять хотим (на чём пишем)? Если хотим напрямую из клиентского приложения, то всё то же самое, что и для Sybase ASA. Плохо например то, что в IQ (в отличие от ASE и Anywhere) напрочь остутствует поддержка юникодных типов nvarchar и ntext. Также плохо то, что 32 килобайтами ограничен размер байнари переменных. Пишем на дотнете. Запросы идут в виде простых команд с параметрами (НЕ сторед процедуры) Для коннекшена используем ADO от anywhere, вроде бы подходит, и ничего другого пока не нашли (iAnywhere.Data.SQLAnywhere.dll) P.S. host variable - это то что подставляется вместо '?' сервером в запросах вида Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 13:42 |
|
||
|
Sybase IQ 15.1 - как работать с LONG BINARY колонками?
|
|||
|---|---|---|---|
|
#18+
Lexs, А если взять всё то же самое, но только для ASA в качестве СУБД, то работает на этой версии провайдера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 16:28 |
|
||
|
Sybase IQ 15.1 - как работать с LONG BINARY колонками?
|
|||
|---|---|---|---|
|
#18+
up, да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 16:36 |
|
||
|
Sybase IQ 15.1 - как работать с LONG BINARY колонками?
|
|||
|---|---|---|---|
|
#18+
никакого решения пока не придумано. Похоже, IQ просто действительно настолько убог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2009, 15:58 |
|
||
|
Sybase IQ 15.1 - как работать с LONG BINARY колонками?
|
|||
|---|---|---|---|
|
#18+
вы бы запостили вопрос на родной сайбейзовый форум (http://www.sybase.com/detail?id=203800). IQ доступен в нашей стране единицам счастливчиков, так что вероятность наткнуться на знающего пока мала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2009, 16:47 |
|
||
|
Sybase IQ 15.1 - как работать с LONG BINARY колонками?
|
|||
|---|---|---|---|
|
#18+
а вот это не ваш топик случайно? http://forums.sybase.com/cgi-bin/webnews.cgi?cmd=item-3802&group=sybase.public.iq ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2009, 16:52 |
|
||
|
Sybase IQ 15.1 - как работать с LONG BINARY колонками?
|
|||
|---|---|---|---|
|
#18+
Lexsникакого решения пока не придумано. Похоже, IQ просто действительно настолько убог. ну как бы в доке написано, что inbound host variable (то есть определяемые провайдером доступа информации) не могут превышать 32к, а outbound (то есть определяемые как переменные сессии IQ) - могут быть до 2 гб. Вот пример из доки: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 1. Создается сессионная переменная IQ hold_blob 2. В буфер считывается информация из файла 3. Через SQL переменной IQ присваивается буфер 4. В таблицу вставляется запись с сессионной переменной 5. Сессионная переменная удаляется Попробуйте адаптировать этот пример, возможно получится. Так же еще стоит рассмотреть вариант загрузки BLOB столбцов через расширенный синтаксис LOAD TABLE ... BINARY FILE. Плюс никто не мешает на IQ написать веб-сервис, который можно вызывать, передавая через POST данные, где уже дальше сервис просто будет их записывать в таблицу. В общем варианты думаю есть, не все так убого ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2009, 17:04 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=36150499&tid=2010923]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
159ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 16ms |
| total: | 265ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...