Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменяется значение поля после Post, TpFibDataSet 
V
    Опции темы
Akella
Дата 17.7.2007, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Версия библиотеки FIB+ 6.5.
Почему после post в датасете меняется значение поля Deleted?
Физически данные в базу не попадают, т.е. после Post я сохраняю данные в файл и откачиваю транзакцию, но это уже после post.

Код

//deleted поле типа Varchar(1), там хранится 'T' или 'F', по умолчанию 'F'
при добавлении датасет пустой
        fibdsMediatorsInsert.Insert;
        SetFieldsValues(fibdsMediatorsInsert,True);

        ShowMessage(fibdsMediatorsInsert.FBN('deleted').AsString);
здесь все нормально, значение 'F' в поле deleted

        fibdsMediatorsInsert.Post;
        ShowMessage(fibdsMediatorsInsert.FBN('deleted').AsString);
а здесь уже 'T' в поле deleted, как так?

Код


procedure TfmMediatorsAdd.SetFieldsValues(dsApart:TpFIBDataSet;ToCenter:boolean = false);
begin
  dsApart.FieldByName('NAME').AsVariant    := dbeName.Value;
  dsApart.FieldByName('ID_TYPE').AsInteger := fibcbTreeTypes.KeyValue;

  ShowMessage(fibdsMediatorsInsert.FBN('deleted').AsString);
  здесь все нормально, значение 'F' в поле deleted

  dsApart.FieldByName('DELETED').AsString := 'F';

  ShowMessage(fibdsMediatorsInsert.FBN('deleted').AsString);
  здесь все нормально, значение 'F' в поле deleted

  dsApart.FieldByName('UID').AsVariant     := UserData.UserID;

  fmMain.ShowMessageI(fibdsMediatorsInsert.RecordCount);
показывает ноль записей

  if (ToCenter) and (not fAMetodEdit) then
    dsApart.FBN('ID').AsVariant := -1;
end;


у fibdsMediatorsInsert нет никаких событий

Код
SELECT * FROM MEDIATORS


Код

INSERT INTO MEDIATORS(
    ID,
    NAME,
    DELETED,
    UID,
    ID_TYPE
)
VALUES(
    :ID,
    :NAME,
    :DELETED,
    :UID,
    :ID_TYPE
)


Код

UPDATE MEDIATORS
SET
    NAME = :NAME,
    DELETED = :DELETED,
    UID = :UID,
    ID_TYPE = :ID_TYPE
WHERE
    ID = :OLD_ID

PM MAIL   Вверх
Akella
Дата 17.7.2007, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



а так нормально
Код

        fibdsMediatorsInsert.edit;
        SetFieldsValues(fibdsMediatorsInsert,True);
        fibdsMediatorsInsert.Post;

PM MAIL   Вверх
Akella
Дата 18.7.2007, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Я обнаружил причину.
1. В свойстве DefaultExpression поля Deleted было внесено: 'F'
2. и ещё RefreshAfterPost было в True, поставил в False

скорее всего помогло второе.

Это сообщение отредактировал(а) Akella - 18.7.2007, 16:32
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.0457 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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