Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2012, 20:49   #21
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Не понял немного.
Цитата:
Тянешь Blob c именем ZNACHENIE, оно и есть с таким именем.
Это в смысле так и оставить:
Код:
procedure TForm1.pFIBDataSet6CalcFields(DataSet: TDataSet);
begin
 DataSet.FieldByName('_BlobPole').AsString:=DataSet.FieldByName('ZNACHENIE').AsString;
end;
Цитата:
В правой части правильно обратился.
Имеешь ввиду таблицу? Или что подразумеваешь под правой частью?
Цитата:
В левой части должно быть имя калькулируемого поля, которое нужно создать в дизайне.
В инспекторе свойств чтоли?
Цитата:
Какого у тебя _BlobPole имеет тип fkData (FieldKind)? Замени на fkCalculate или на подобие этого, не помню точно. И оно должно быть символьное (TStringField), а не BLOB.
Код запроса простой:
Код:
 Form1.pFIBDataSet6.Active:=False;
 Form1.pFIBDataSet6.SQLs.SelectSQL.Clear;
 Form1.pFIBDataSet6.SQLs.SelectSQL.Text:='SELECT * FROM T_OK_R1';
 Form1.pFIBDataSet6.Active:=True;
Вот так вот сделал настройки:
Что не так сейчас? Сейчас ошибки нет. Первая колонка грузится со значениями из поля базы, на которое я настроил столбец в DBGridEh, а BLOB поле так и не хочет показываться. Теперь надписи (BLOB) нет, но и содержимого тоже не показывается. Свойства у DBGridEh настроены.
Изображения
Тип файла: jpg Вычисляемое поле 2.jpg (29.7 Кб, 141 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 20.08.2012, 21:30   #22
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Можно еще так попробовать (buffer лучше динамическим сделать или память подходящую указать), у меня собственно и выше предложенный вариант работает. Если и это не будет работать, тоды не знаю. Пример под D7
Код:
procedure TForm1.pFIBDataSet6CalcFields(DataSet: TDataSet);
var ss: TMemoryStream;
    buffer: array [0..1000] of Char;
begin
  if pFIBDataSet6ZNACHENIE.IsNull then Exit;
  ss:=TMemoryStream.Create;
  pFIBDataSet6ZNACHENIE.SaveToStream(ss);
  ss.Position:=0;
  ss.ReadBuffer(buffer,ss.size);
  pFIBDataSet6_BlobPole.AsString:=Copy(buffer,0,ss.size);
  ss.Free;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.08.2012, 14:02   #23
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Во, вот сейчас уже есть прогресс . Содержимое блоб поля удалось вывести. Только вот вместо текста вывелись знаки ??????????????????????????????????? . Что-то с кодировкой? В базе намально текст отображается.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 21.08.2012, 14:34   #24
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В базе utf8 наверно? Можно попробовать приспособить Utf8ToAnsi.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.08.2012, 14:35   #25
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Не, в базе кодировка WIN1251
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 21.08.2012, 14:43   #26
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А дельфя какая? И для начала бросил бы содержимое ss в файл, дабы посмотреть что там по факту.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.08.2012, 14:46   #27
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Delphi XE )
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 21.08.2012, 15:04   #28
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Не имею таковой и проверить не могу. Для начала попробовал бы buffer как ansichar объявить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.08.2012, 15:29   #29
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Аватар! Спасибо огромное . Все заработало теперь. Надо просто поставить AnsiChar. Огромное спасибо, здорово помог!
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как использовать содержимое определенного поля efen БД в Delphi 6 23.12.2010 17:59
как вытащить картинку из BLOB поля Dania SQL, базы данных 0 25.03.2010 12:44
Как представить поля? Mashul'ka Помощь студентам 1 24.03.2010 21:34
Как изменить в InterBase размер поля varchar(10) на varchar(20) tarakan1983 БД в Delphi 4 23.03.2009 15:35
varchar to blob in phpmyadmin Alar SQL, базы данных 0 11.01.2009 07:14