| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Zeos и mysql блоб поле, проблемы с инсертом |
| Автор: SergSW 2.3.2011, 13:00 |
| Zeos 6.6.6, Mysql 5.1 Пытаюсь сохранить файл в блоб поле, передается как параметр, на некоторых файлах падает с такой ошибкой --------------------------- SQL Error: Data too long for column 'Data' at row 1. --------------------------- судя по коду зеоса он при подстановке параметра квотит недопустимые символы, такое ощущение что несовсем коректно. Пробовал ставить SET NAMES, не помогает. |
| Автор: Akella 2.3.2011, 13:29 |
слишком большой файл, наверное Добавлено через 36 секунд А как это может быть с блобами связано? |
| Автор: SergSW 2.3.2011, 13:47 |
| Размер файа 115 Кб, наврядли дело в размере. Очень просто дело в том что зеос параметры сам ескейпит и вставляет как строку, в случае с блобом. |
| Автор: Akella 3.3.2011, 21:32 |
| Хм.. я думал, что кодировка влияет только на текстовые поля. Разве нет? Добавлено через 1 минуту и 7 секунд С блобами нужно через TStream работать. Добавлено через 1 минуту и 59 секунд разве в тырнете нет инфы? http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C+%D1%84%D0%B0%D0%B9%D0%BB+%D0%B2+%D0%B1%D0%BB%D0%BE%D0%B1+%D0%BF%D0%BE%D0%BB%D0%B5 Добавлено через 2 минуты и 32 секунды http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C+%D1%84%D0%B0%D0%B9%D0%BB+%D0%B2+%D0%B1%D0%BB%D0%BE%D0%B1+%D0%BF%D0%BE%D0%BB%D0%B5#sclient=psy&hl=ru&q=zeos+%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C+%D1%84%D0%B0%D0%B9%D0%BB+%D0%B2+%D0%B1%D0%BB%D0%BE%D0%B1+%D0%BF%D0%BE%D0%BB%D0%B5&aq=f&aqi=&aql=&oq=&pbx=1&fp=ff55dce2f37070e2 Добавлено через 3 минуты и 32 секунды Посмотри в ZEOS примеры, как с блобами работать. Добавлено через 4 минуты и 19 секунд может этот пример поможет? http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=704166&msg=7806470 |
| Автор: SergSW 4.3.2011, 06:36 |
| боюсь пример не покатит, т.к. я использую инсерт и соответственно FieldByName('b_image') в моем случае ничего не вернет((( Тогда перефразирую вопрос. Как вставить блоб поле через Insert в базу mysql? |
| Автор: SergSW 4.3.2011, 12:31 |
Нет не так. Этот вариант потребует вначале сделать инсерт записи, потом фетч еёпосле чего по указанной схеме... что не очень красиво, очень не удобно, и плохо адаптируется под другие sql сервера. Уже писал чем... на закрытой квери филда не найдет и соответственно не выполнится... только если делать как я писал выше... а этого хочется всеми силами избежать |
| Автор: Akella 4.3.2011, 12:39 |
Но само выражение "как вставить блоб поле" уже бредовое само по себе. |
| Автор: SergSW 4.3.2011, 12:42 | ||
а как тогда? |
| Автор: Akella 4.3.2011, 12:44 |
| я ж уже дал нормальное определение Добавлено через 18 секунд Дал ссылки на пример. Добавлено через 40 секунд Ну не нравится - читай документацию и делай как сам знаешь. |