Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.17;
Скачать: CL | DM;

Вниз

Не присваивается значение в базе   Найти похожие ветки 

 
kyn66 ©   (2006-10-10 10:26) [0]

RxDBComboBox1 связан с неким полем таблицы. В нем три итемса и соответственно 3 Value, которые должны заноситься в таблицу при выборе. Изначально при открытии таблицы на редактирование я RxDBComboBox1 принудительно устанавливаю в :

 RxDBComboBox1.OnChange(Self);
...

procedure TMainFrm.RxDBComboBox1Change(Sender: TObject);
begin
 if RxDBComboBox1.ItemIndex <> -1 then
  begin
    SovLab.Visible :=    
      RxDBComboBox1.Values[RxDBComboBox1.ItemIndex] = "2";
    SovDBEdit.Visible :=  
     RxDBComboBox1.Values[RxDBComboBox1.ItemIndex] = "2";
  end
 else
  begin
    RxDBComboBox1.ItemIndex := 0;
    SovLab.Visible := False;
    SovDBEdit.Visible := False;
  end
end;


Т.е. по умолчанию должен быть первый элемент списка. После окончания редактирования сохраняю, но Value не записывается в базу, пока по нему реально не кликнешь. Ведь я так и хотел, чтобы значение по умолчанию само записывалось, если оно устраивает без клика по RxDBComboBox1.
Как быть? Какое ешшо событие подвесить?


 
ЮЮ ©   (2006-10-10 10:30) [1]


> чтобы значение по умолчанию само записывалось,

Нужно установить у DataSer-а, например в AfterInsert. Тогда манипуляции в RxDBComboBox1Change - просто лишние


 
sniknik ©   (2006-10-10 10:32) [2]

Post; после "ручных" изменений. (но лучше всего не в событии на изменение..., а менять например в событии бефорепост, да и вообще, значение по умолчанию мохно просто указать в поле (в данных, а не гриде))


 
kyn66 ©   (2006-10-10 10:45) [3]

В таком случае можно было поставить простой Combobox и все...


 
ЮЮ ©   (2006-10-10 10:51) [4]


> В таком случае можно было поставить простой Combobox и все.
> ..


в каком? [1] или [2]


> Изначально при открытии таблицы на редактирование я RxDBComboBox1
> принудительно устанавливаю в :


Настрой DataSource и DataField - и безо всякого кода он будет показывать значение для текущей записи. [1] касается вновь добавляемых записей.


 
sniknik ©   (2006-10-10 10:52) [5]

поставь. если считаеш что это проще. но по мне так проще полю раз задать дефаултное значение и убрать весь твой код.


 
kyn66 ©   (2006-10-10 11:04) [6]

Значение по умолчанию поставить не получится, т.к. используется не реальная база, а TRxMemoryData


 
ЮЮ ©   (2006-10-10 11:12) [7]

У TRxMemoryData тоже есть AfterInsert, где можно проинициализировать поля созданной записи.


 
sniknik ©   (2006-10-10 11:14) [8]

> т.к. используется не реальная база, а TRxMemoryData
не скажу за TRxMemoryData но у клиентдатасета и у adoдатасета (в режиме "без базы") те же самые поля, с темиже свойствами что и у "реальнобазовых".
(возможно конечно, что в случае с TRxMemoryData - "ключница водку делала"... но тогда это повод от него отказаться, глюки пасутся стаями...)


 
kyn66 ©   (2006-10-10 11:15) [9]


> У TRxMemoryData тоже есть AfterInsert, где можно проинициализировать
> поля созданной записи.


Я согласен, но хочется оставить именно RxDBComboBox1, а хотя....


 
sniknik ©   (2006-10-10 11:32) [10]

> но хочется оставить именно RxDBComboBox1
ну тогда в нем меняй значения не в нем самом, а в таблице.


 
kyn66 ©   (2006-10-10 12:20) [11]

Короче решил перейти на простой ComboBox. Всем спасибо за помощь


 
ЮЮ ©   (2006-10-10 12:29) [12]


> Короче решил перейти на простой ComboBox

И как это позволит что-то изменять в DataSete, если даже с DB-Aware не удавалось  изменить ???



Страницы: 1 вся ветка

Текущий архив: 2006.12.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.039 c
15-1164366912
dreamse
2006-11-24 14:15
2006.12.17
Подскажите компонент


2-1164862974
Чувачела
2006-11-30 08:02
2006.12.17
Вопрос по DBGrid


15-1163509008
TauRus
2006-11-14 15:56
2006.12.17
Помощь по заданию на Паскале.Поможет кто-то?


15-1164542824
Dbe
2006-11-26 15:07
2006.12.17
Задача коммивояжера! Мое решение, помогите дорешать!


15-1164462327
TIF
2006-11-25 16:45
2006.12.17
>>>>> Скачать Delphi >>>>>