Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.042 c
15-1164569808
Колдун
2006-11-26 22:36
2006.12.17
Диз дельфимастера


1-1162307399
Still Swamp
2006-10-31 18:09
2006.12.17
Оставить мышь на месте.


1-1162542343
tower
2006-11-03 11:25
2006.12.17
Передать массив как аргумент функции из dll


4-1155094525
Старик
2006-08-09 07:35
2006.12.17
Иконка и курсор главной формы.


1-1162473624
Erik2
2006-11-02 16:20
2006.12.17
Где найти список зарегестрированных классов?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский