![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день!
На форме ввода два компонента DBEdit. В один значения вводятся руками, в другой значения вносятся программно, т.е. свойству DBEdit.EditText присваивается некое значение в результате работы программы. Оба DBEdit-а привязаны к полям базы MS Access (ADOConnection, ADOQuery, DataSource, DBGrid). Вопрос в следующем: DBEdit, в который значения вводятся руками, передаёт значения в базу в закреплённое за ним поле; другой компонент, в котором DBEdit.EditText изменяется программно, значения в базу не передаёт. В чём причина? |
#2
|
|||
|
|||
![]() Может кто поймёт мои хотелки высылаю кусок кода
procedure TForm3.BitBtn3Click(Sender: TObject); begin DBEdit1.EditText:=Edit1.Text; DBEdit4.EditText:=MaskEdit1.Text; DBEdit5.EditText:=MaskEdit2.Text; close; end; Объясню почему такой код. В DBEdit1 вводится короткая целочисленная величина, которую лучше регулировать через UpDown. Но UpDown не привязывается к DBEdit. Поэтому DBEdit1.Visible я сделал false, т.е. невидимым, а на его место я разместил Edit c UpDown. Т.е. технология такая: UpDown-ом я подгоняю необходимое значение в Edit, которое в означенном коде должно по моей хотелке передаваться в DBEdit1, а DBEdit1 его в свою очередь должен отправлять в базу. С DBEdit4 и DBEdit5 такая же петрушка. Туда нужно вводить дату, которую собственно нужно брать из MaskEdit. Связь с БД через ADOConnection, ADOQuery, DataSource, DBGrid |
#3
|
||||
|
||||
![]() А если сделать Post?
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#4
|
|||
|
|||
![]() Adoquery1.Post; и результат прилагаю
|
#5
|
||||
|
||||
![]() Насколько я понимаю, свойство EditText меняет текст только на экране,
нужно менять непосредственно в бд компонентах form2.ADOQuery1.Edit; {Обязательно} form2.ADOQuery1.Fieldbyname( ...):=Edit1.text или аналогичным способом ....... form2.ADOQuery1.Post; {Обязательно, иначе ничего не сохранится} |
#6
|
|||
|
|||
![]() не компилится код вида
form2.ADOQuery1.Edit; Form2.ADOQuery1.FieldByName('Номер'):='1'; form2.ADOQuery1.Post; Вязнет на второй строке. Т.е. я даже единицу не могу загнать в поле Номер. В чём причина? |
#7
|
||||
|
||||
![]() У меня тоже такое не компилится.
Советую проверять по справке синтаксис каждой незнакомой ранее функции. Правильно Form2.ADOQuery1.FieldByName('Номер').AsString:='1' ; |
#8
|
|||
|
|||
![]() спасибо за помощь, всё работает
|