Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Zeos и mysql блоб поле, проблемы с инсертом, SQL Error: Data too long for column 
:(
    Опции темы
SergSW
Дата 2.3.2011, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 14.9.2006

Репутация: нет
Всего: нет



Zeos 6.6.6, Mysql 5.1

Пытаюсь сохранить файл в блоб поле, передается как параметр, на некоторых файлах падает с такой ошибкой

---------------------------
SQL Error: Data too long for column 'Data' at row 1.
---------------------------

судя по коду зеоса он при подстановке параметра квотит недопустимые символы, такое ощущение что несовсем коректно.

Пробовал ставить SET NAMES, не помогает.
PM   Вверх
Akella
Дата 2.3.2011, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(SergSW @  2.3.2011,  13:00 Найти цитируемый пост)
Data too long

слишком большой файл, наверное

Добавлено через 36 секунд
Цитата(SergSW @  2.3.2011,  13:00 Найти цитируемый пост)
Пробовал ставить SET NAMES, не помогает. 

А как это может быть с блобами связано?
PM MAIL   Вверх
SergSW
Дата 2.3.2011, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 14.9.2006

Репутация: нет
Всего: нет



Размер файа 115 Кб, наврядли дело в размере.


Цитата(Akella @  2.3.2011,  15:29 Найти цитируемый пост)
А как это может быть с блобами связано?

Очень просто дело в том что зеос параметры сам ескейпит и вставляет как строку, в случае с блобом.
PM   Вверх
Akella
Дата 3.3.2011, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Хм.. я думал, что кодировка влияет только на текстовые поля. Разве нет?

Добавлено через 1 минуту и 7 секунд
Цитата(SergSW @  2.3.2011,  13:00 Найти цитируемый пост)
Пытаюсь сохранить файл в блоб поле, передается как параметр, 

С блобами нужно через TStream работать.

Добавлено через 1 минуту и 59 секунд
разве в тырнете нет инфы?
http://www.google.com/search?ie=UTF-8&...%BE%D0%BB%D0%B5

Добавлено через 2 минуты и 32 секунды
http://www.google.com/search?ie=UTF-8&...f55dce2f37070e2

Добавлено через 3 минуты и 32 секунды
Посмотри в ZEOS примеры, как с блобами работать.

Добавлено через 4 минуты и 19 секунд
может этот пример поможет?
Zeos + blob
PM MAIL   Вверх
SergSW
Дата 4.3.2011, 06:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 14.9.2006

Репутация: нет
Всего: нет



боюсь пример не покатит, т.к. я использую инсерт и соответственно FieldByName('b_image') в моем случае ничего не вернет(((

Тогда перефразирую вопрос. Как вставить блоб поле через Insert в базу mysql?

Это сообщение отредактировал(а) SergSW - 4.3.2011, 06:38
PM   Вверх
Akella
Дата 4.3.2011, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(SergSW @  4.3.2011,  06:36 Найти цитируемый пост)
Как вставить блоб поле через Insert в базу mysql?

Может так: Как сохранить файл в блоб поле MySQL?

Добавлено через 1 минуту и 49 секунд
Цитата(Akella @  3.3.2011,  21:32 Найти цитируемый пост)
Добавлено через 4 минуты и 19 секунд
может этот пример поможет?
Zeos + blob

ЧЕМ тебе этот пример не угодил?

Код

procedure TForm1.Button1Click(Sender: TObject);
var
  BlobStream: TStream;
  FileStream: TStream;
  fname: string;
begin
  Fname := 'myfile.bmp';
  if ZQuery1.State <> dsEdit then
     ZQuery1.Edit;

  BlobStream := ZQuery1.CreateBlobStream(ZQuery1.FieldByName('b_image'), bmWrite);
  try
    FileStream := TFileStream.Create(fname, fmOpenRead);
    try
      BlobStream.CopyFrom(FileStream, FileStream.Size);
    finally
      FileStream.Free;
    end;
  finally
    BlobStream.Free;
  end;

  ZQuery1.Post;
end;

PM MAIL   Вверх
SergSW
Дата 4.3.2011, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 14.9.2006

Репутация: нет
Всего: нет



Цитата(Akella @  4.3.2011,  14:17 Найти цитируемый пост)
Может так: Как сохранить файл в блоб поле MySQL?

Нет не так.
Этот вариант потребует вначале сделать инсерт записи, потом фетч еёпосле чего по указанной схеме... что не очень красиво, очень не удобно, и плохо адаптируется под другие sql сервера.


Цитата(Akella @  4.3.2011,  14:17 Найти цитируемый пост)
ЧЕМ тебе этот пример не угодил?

Уже писал чем... на закрытой квери филда не найдет и соответственно не выполнится... только если делать как я писал выше... а этого хочется всеми силами избежать
PM   Вверх
Akella
Дата 4.3.2011, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(SergSW @  4.3.2011,  12:31 Найти цитируемый пост)
Может так: Как сохранить файл в блоб поле MySQL?

Нет не так.


Цитата(SergSW @  4.3.2011,  06:36 Найти цитируемый пост)
 Как вставить блоб поле через Insert в базу mysql?

Но само выражение "как вставить блоб поле" уже бредовое само по себе.
PM MAIL   Вверх
SergSW
Дата 4.3.2011, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 14.9.2006

Репутация: нет
Всего: нет



Цитата(Akella @  4.3.2011,  14:39 Найти цитируемый пост)
Но само выражение "как вставить блоб поле" уже бредовое само по себе.


а как тогда?
PM   Вверх
Akella
Дата 4.3.2011, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



я ж уже дал нормальное определение

Добавлено через 18 секунд
Дал ссылки на пример.

Добавлено через 40 секунд
Ну не нравится - читай документацию и делай как сам знаешь.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0856 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.