Главная страница
    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.47 MB
Время: 0.042 c
15-1164356418
Курдль
2006-11-24 11:20
2006.12.17
"Гаишник удавится за иномарку"


2-1164875164
Димыч
2006-11-30 11:26
2006.12.17
Опять про сворачивание дочерних окно


3-1160461600
kyn66
2006-10-10 10:26
2006.12.17
Не присваивается значение в базе


15-1164629045
Cyrax
2006-11-27 15:04
2006.12.17
Какой антивирус наиболее удобен ?


4-1154683936
Чапаев
2006-08-04 13:32
2006.12.17
CreateProcessWithLogonW





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский