Главная страница
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.5 MB
Время: 0.047 c
1-1162597852
YuriyTLT
2006-11-04 02:50
2006.12.17
Не успевает отрабатывать внешняя программа


15-1164699235
Gero
2006-11-28 10:33
2006.12.17
Не стоит забывать про другие поисковые системы


2-1164644972
АртемКиН
2006-11-27 19:29
2006.12.17
разтрясти Indy Ftp Client


8-1144591774
Radistka Cat
2006-04-09 18:09
2006.12.17
Модуль для работы с TGA


2-1164609598
alex810
2006-11-27 09:39
2006.12.17
Компонент Query