Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Проблема с BLOB-полем (Pest) 23/04/2009 - 17:30:56
      Re: Проблема с BLOB-полем (Pest) 27/04/2009 - 09:41:15



From: Pest - 23/04/2009 - 17:30:56
Subject:Проблема с BLOB-полем
-----------------
Проблема с BLOB-полем


среда - [CodeGear™ Delphi® 2007 for Win32®]
сервер БД - [MySQL 5.0]
компонент -[ZeosBD]




fs:=TFileStream.Create(fn,fmOpenRead);
// читаем некие параметры из fs...

msNeuro := TMemoryStream.Create;
msNeuro.Position := 0;

col := NeuroSz * sizeof(smallint); // NeuroSz - ожидаемое число записей размером в SmallInt
msNeuro.CopyFrom(fs, col); // fs-TFileStream, Position стоит на верном месте.

msNeuro.SaveToFile(ExtractFilePath(Application.ExeName) + '.tmp_write'); // проверка считанного!
// msNeuro - действительно содержит 300 * 2 байт, совпадающие с считанным содержимым fs

// а теперь BLOB запишем
DataSet.SQL.Clear;
DataSet.SQL.Add('select * from `events` where Id_event=(select MAX(Id_event) from `events`)');
DataSet.Open;
// ссылаемся на последнюю запись в таблице `events`
if not (DataSet.State in [dsInsert, dsEdit]) then DataSet.Edit;
try
TBlobField(DataSet.FieldByName('NeuroBlob')).LoadFromStream(msNeuro); // Собственно загузка msNeuro в BLOB -поле
finally
msNeuro.Free;
end;
Dataset.Post;



BLOB заполняется!
НО если записывали 600 байт, то при чтении BLOB я вижу 768 байт!
читаю и через чтение BLOB msNeuro и через вьювер (mySQL-Front)
При чем первые 4 байта совпадают с оригиналом, а остальное отличчается... иногда есть совпадения... но не чаще 50%


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
35490



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |