Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с dxdbGrid 
:(
    Опции темы
Гость_Татьяна
Дата 5.4.2005, 17:09 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered












dxdbGrid связан с таблицей в которой динимачески формируются поля.
Пусть поле1 в таблице имеет тип lookup. Делаю динамически в Гриде поле типа LookupColumn на поле1. При сохранении значение в LookUpColumn
вываливается ошибка
"Произошли ошибки во время выполнения многошаговой операции. Проверьте значения всех состояний"
Что это такое???
Отьветьте пожайлуйста кто знает. Меня эта проблему уже достала.
  Вверх
Medved
Дата 10.4.2005, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

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



А какой тип имеет поле, в которое вы сохраняете? И что за данные вы сохраняете?
Пришлите свой проект, я посмотрю.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Гость_Татьяна
Дата 14.4.2005, 15:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Проект слишком большой. Я его выслать не могу. Но проблема такая.
Есть справочники:простые и составные.Составные - это те, которые в своем описании ссылаются на уже существуующие справочники.Нужно отображать их все.
Как я это делаю:
На клиенте используется Ado.
На клиенты исходя из построенного спец. образом представления, говорящего, какие поля как обзывать и если поле подстановочное, то из какой таблицы брать его значение.
Например,
Код


CREATE       VIEW dbo.VW_CALL_NOTES
AS
SELECT dbo.call_notes.cd AS [_ID], 
    dbo.call_notes.nm AS [Наименование],
    dbo.call_notes.short_nm AS [Краткое_наименование],
    IsNull(dbo.call_notes.spec_reg_type_cd,'') AS [_#Тип спецучета*@dbo.spec_reg_type$cd%nm], 
    dbo.call_notes.start_date AS [_START], 
    dbo.call_notes.finish_date AS [_FINISH]
FROM dbo.call_notes LEFT OUTER JOIN
    dbo.spec_reg_type ON
    dbo.call_notes.spec_reg_type_cd = dbo.spec_reg_type.cd
WHERE dbo.call_notes.finish_date is null


База на MS SQL Server.Формируется компонент таблица, которая если поле подстановочное, то делает его как lookup и формирует к нему динамический набор данных.Если поле просто типа fkData тоего и создает с соблюдением типов.
Вот и все.
Проблема: при постировании данных
а). если поле неподстановочное, то все нормально.
б). Если поле подстановочное, то выдается сообщение об ошибке "Проверьте значение всех состояний"+ эта ошибка происходит в юните Adodb в строке.
Recordset.Fields[FieldNo-1].Value := Data;
Постирования не происходит.
при этом Data имеет правильное значение.
Код

 procedure UpdateData;
  var
    I: Integer;
    FieldData: PVariantList;
    Data: OleVariant;
  begin
    try
      FieldData := PVariantList(ActiveBuffer + SizeOf(TRecInfo));
      for I := 0 to FModifiedFields.Count - 1 do
        with TField(FModifiedFields[I]) do
        if not ReadOnly then
        begin
          Data := FieldData[Index];
          if not VarIsEmpty(Data) then
          Recordset.Fields[FieldNo-1].Value := Data;
        end;
      if (Recordset.EditMode * (adEditInProgress + adEditAdd)) <> 0 then
        Recordset.Update(EmptyParam, EmptyParam);
    except
      CursorPosChanged;
      Recordset.CancelUpdate;
      raise;
    end;
  end;
smile
  Вверх
Гость_Татьяна
Дата 14.4.2005, 15:12 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Поле имеет тип Lookup в таблице.Соответственно отображаем string а записываем integer
  Вверх
Medved
Дата 15.4.2005, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

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



Проблема не с TdxGrid, мне так сложно сказать в чем именно проблемма, надо разбираться.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0439 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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