![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| infarch |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Наткнулся на странную проблему. Есть база данных SQL Server, есть сайт который с ней работает. Сайт в продукции пол убунтой, разработка идет под виндой.
Вставляю данные в базу. Если составить запрос который включает в себя данные то все нормально:
Так все нормально работает. Теперь делаю по человечески, через плейсхолдеры:
В таком варианте текст обрезается! В базу вставляются только первые 80 символов. Не подскажет ли кто, куда копать и как чинить? Под виндой использую DBD::ODBC, под убунтой - Sybase и FreeTDS драйвер. |
||||||
|
|||||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
Во-первых было бы здорово посмотреть структуру самой таблицы, и конкретно этого поля, куда идет вставка.
-------------------- менеджер по кодеврайтингу |
|||
|
||||
| infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Ну вот например:
Поле Params режется. |
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
infarch, попробуй вставить текст, через функцию bind_param, с явным указанием типа вставляемой переменной.
-------------------- менеджер по кодеврайтингу |
|||
|
||||
| infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Спасибо за подсказку, обязательно попробую. Только вот нашел я любопытную информацию вот тут: http://search.cpan.org/~mewp/DBD-Sybase-1.14/Sybase.pm
IMAGE and TEXT datatypes can not be passed as parameters using ?-style placeholders, and placeholders can't refer to IMAGE or TEXT columns (this is a limitation of the TDS protocol used by Sybase, not a DBD::Sybase limitation.) Так что начинаю думать что нужно последовать рекомендациям микрософта - переходить с текст на varchar(max). Может так заработает... |
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
infarch,
а еще абзацем выше - как раз почти то, что я тебе предлагал.
Я с Sybase не работал, но как правило проблемы подобного рода либо в некорректном привидении типов, либо на уровне баг в самих драйверах -------------------- менеджер по кодеврайтингу |
|||
|
||||
| tishaishii |
|
|||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: 4 Всего: 8 |
|
|||
|
||||
| infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Попробовал все ваши варианты, ничего не сработало. Как резалось так и осталось. Я еще заметил что резался не только text, но и varchar - вставлялось первые 80 символов. Однако проблему таки решил, обновив DBI::Sybase и FreeTDS до последних версий. Все заработало )
|
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |