Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Delphi.проблема с обновлением записи в DBedit

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

VoVaiN



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проблема с обновлением DBEdit из таблицы.
При редактировании записи открывается форма в которую подстраиваются необходимые данные из таблицы и label.
При нажатии на одну из таблиц прописывается каждый раз что именно отображать. При открытии одной таблицы проблем не возникает, но при открытии другой таблицы он ищет данные из предыдущей, как будто не успевает обновлять, только первое нормально обновляет, но если открывать каждый раз эту таблицу ошибки проходят поочередно и после всех полей из предыдущей таблицы он нормально её открывает.

Код:
 
procedure TForm1.A2Click(Sender: TObject);
begin
 Form70.Show;
 Form70.DBGrid1.DataSource:= DataModule1.Dform30;
 form70.DBImage1.DataSource:=datamodule1.Dform30;
     form70.dbgrid1.Columns[0].Width:=30;
 form70.DBGrid1.Columns[1].Width:=500;
  form70.dbgrid1.Columns[2].Width:=50;
   form70.dbgrid1.Columns[3].Width:=100;
    form70.dbgrid1.Columns[4].Width:=50;
    form70.dbgrid1.Columns[5].Width:=50;
     form70.dbgrid1.Columns[6].Width:=50;
       form70.dbgrid1.Columns[7].Width:=50;
       form70.dbgrid1.Columns[10].Width:=30;
 
 form70.Caption:='Процессоры AMD';
form71.Label2.Caption:='Наименование';
form71.Label3.Caption:='Ядро';
form71.Label4.Caption:='Частота процессора';
 form71.Label5.Caption:='Сокет';
 form71.Label6.Caption:='Объем кэша L2';
 form71.Label7.Caption:='Тип поставки';
form71.Label1.Caption:='Количество ядер';
form71.Label8.Caption:='Количество';
  form71.Label9.Caption:='Цена';
 
    form71.DBEdit2.DataSource:=form70.DBGrid1.DataSource;
  form71.DBEdit2.DataField:= form70.DBGrid1.DataSource.DataSet.Fields[1].FullName;
  form71.DBEdit3.DataSource:=form70.DBGrid1.DataSource;
   form71.DBEdit3.DataField:= form70.DBGrid1.DataSource.DataSet.Fields[2].FullName;
 
   form71.DBEdit4.DataSource:=form70.DBGrid1.DataSource;
    form71.DBEdit4.DataField:= form70.DBGrid1.DataSource.DataSet.Fields[3].FullName;
 
    form71.DBEdit5.DataSource:=form70.DBGrid1.DataSource;
     form71.DBEdit5.DataField:= form70.DBGrid1.DataSource.DataSet.Fields[4].FullName;
 
     form71.DBEdit6.DataSource:=form70.DBGrid1.DataSource;
     form71.DBEdit6.DataField:= form70.DBGrid1.DataSource.DataSet.Fields[5].FullName;
 
         form71.DBEdit7.DataSource:=form70.DBGrid1.DataSource;
     form71.DBEdit7.DataField:= form70.DBGrid1.DataSource.DataSet.Fields[6].FullName;
 
       form71.DBEdit1.DataSource:=form70.DBGrid1.DataSource;
     form71.DBEdit1.DataField:= form70.DBGrid1.DataSource.DataSet.Fields[7].FullName;
 
      form71.DBEdit8.DataSource:=form70.DBGrid1.DataSource;
     form71.DBEdit8.DataField:= form70.DBGrid1.DataSource.DataSet.Fields[9].FullName;
 
          form71.DBEdit9.DataSource:=form70.DBGrid1.DataSource;
     form71.DBEdit9.DataField:= form70.DBGrid1.DataSource.DataSet.Fields[10].FullName;
 
     Form71.Dbedit10.Visible:=false;
  Form71.Dbedit11.Visible:=false;
      Form71.Label10.Visible:=false;
    Form71.Label11.Visible:=false;
 Form70.DBGrid1.DataSource.DataSet.Fields[8].Visible:=false;     //видимость столбца
end;
 

2 таблица:

Код:
 
procedure TForm1.N3Click(Sender: TObject);
begin
 
   Form70.DBGrid1.DataSource:= DataModule1.DTform16;
 form70.DBImage1.DataSource:=datamodule1.DTform16;
 
   form70.Caption:='Материнская плата ASUS ';
form71.Label2.Caption:='Наименование';
form71.Label3.Caption:='Форм фактор';
form71.Label4.Caption:='Сокет';
form71.Label5.Caption:='Тип памяти';
form71.Label6.Caption:='Чипсет';
form71.Label7.Caption:='Количество';
form71.Label1.Caption:='Цена';
 
  form71.DBEdit2.DataSource:=form70.DBGrid1.DataSource;
  form71.DBEdit2.DataField:= form70.DBGrid1.DataSource.DataSet.Fields[1].FullName;
 
  form71.DBEdit3.DataSource:=form70.DBGrid1.DataSource;
   form71.DBEdit3.DataField:= form70.DBGrid1.DataSource.DataSet.Fields[2].FullName;
 
   form71.DBEdit4.DataSource:=form70.DBGrid1.DataSource;
    form71.DBEdit4.DataField:= form70.DBGrid1.DataSource.DataSet.Fields[3].FullName;
 
    form71.DBEdit5.DataSource:=form70.DBGrid1.DataSource;
     form71.DBEdit5.DataField:= form70.DBGrid1.DataSource.DataSet.Fields[4].FullName;
 
        form71.DBEdit6.DataSource:=form70.DBGrid1.DataSource;
     form71.DBEdit6.DataField:= form70.DBGrid1.DataSource.DataSet.Fields[5].FullName;
 
       form71.DBEdit7.DataSource:=form70.DBGrid1.DataSource;
     form71.DBEdit7.DataField:= form70.DBGrid1.DataSource.DataSet.Fields[6].FullName;
 
         form71.DBEdit1.DataSource:=form70.DBGrid1.DataSource;
     form71.DBEdit1.DataField:= form70.DBGrid1.DataSource.DataSet.Fields[7].FullName;
 
 
Form71.Label8.Visible:=false;
Form71.Label9.Visible:=false;
Form71.Label10.Visible:=false;
Form71.Dbedit8.Visible:=false;
Form71.Dbedit9.Visible:=false;
Form71.Dbedit10.Visible:=false;
  Form70.Show;
end;
 
 
 

 
 
Исходник: https://yadi.sk/d/vf36mtmNg9vXv

Всего записей: 35 | Зарегистр. 11-05-2011 | Отправлено: 15:16 25-04-2015
KDPoid



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Заглянул я в исходники...
Во-первых, Ctrl+D - великая вещь. Рекомендую.
Во-вторых, вам не кажется, что все эти  
------------
i1 := j1;
i2 := j2;
...
i11 := j11;
-------------
Это всё как-то проще записывается, если использовать массивы ?  
 
А если избавится от этих километров одинаковых присвоений,
десятка одинаковых обработчиков для десятка одинаковых контролов,
то от 2000 строк кода останется 100, и, может быть, вам и самому станет очевидно, где ошибка...    
 
А моё утреннее желание сделать добро не вынесло столкновение в вашими исходниками.

Всего записей: 404 | Зарегистр. 08-08-2006 | Отправлено: 05:43 26-04-2015
VoVaiN



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KDPoid
Печаль, как умею так делаю. Главное, чтобы работало. Не спорю, что было бы лучше, но я так не умею.

Всего записей: 35 | Зарегистр. 11-05-2011 | Отправлено: 10:17 26-04-2015
ptr73

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ужас какой в коде
это обязательно именно в коде каждый раз прописывать настройки и источники всех полей и столбцов?
попробуйте использовать методы типа Update, Refresh и т.п.

Всего записей: 253 | Зарегистр. 03-07-2007 | Отправлено: 07:32 27-04-2015
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Delphi.проблема с обновлением записи в DBedit


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru