|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.12.2020, 14:16 | #1 |
Новичок
Джуниор
Регистрация: 04.12.2020
Сообщений: 2
|
Два DBGrid, несколько DataSource
Здравствуйте, при написании кода возникла следующая проблема. Начну с самого начала.
Мне нужно было написать БД с несколькими таблицами. Для этого в качестве выпадающего списка для выбора я использовал первый DBGrid1, а затем с помощью события DBGrid1CellClick и команды N1:=TStringGrid(DBGrid1).Row считывал подходящую строку. Потом с помощью функции case я должен был изменять значение DataSource во втором DBGrid2, но при выборе 2 строки таблица не отобразилась. Внимание вопрос. Почему при замене DataSource DBGrid не отобразил новую таблицу? Вот код unit Unit3; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Data.Win.ADODB, Vcl.Grids, Vcl.DBGrids, Vcl.StdCtrls; type TfSag = class(TForm) Edit1: TEdit; DBGrid1: TDBGrid; DSSag: TDataSource; qSag: TADOQuery; DBGrid2: TDBGrid; qKTLS: TADOQuery; qKTLP: TADOQuery; qKTLF: TADOQuery; DSKTLS: TDataSource; DSKTLP: TDataSource; DSKTLF: TDataSource; DBGrid3: TDBGrid; DSSmrt: TDataSource; qSmrt: TADOQuery; qFtbr: TADOQuery; qPhone: TADOQuery; qRadio: TADOQuery; qPln: TADOQuery; qBook: TADOQuery; qPhoto: TADOQuery; DSFtbr: TDataSource; DSPhone: TDataSource; DSRadio: TDataSource; DSPln: TDataSource; DSBook: TDataSource; DSPhoto: TDataSource; DSVideo: TDataSource; qVideo: TADOQuery; procedure DBGrid1CellClick(Column: TColumn); procedure DBGrid2CellClick(Column: TColumn); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var fSag: TfSag; N1, N2:integer; tx:string; implementation {$R *.dfm} uses Unit1; procedure TfSag.DBGrid1CellClick(Column: TColumn); begin N1:=TStringGrid(DBGrid1).Row; case N1 of 1: begin DBGrid2.DataSource:=DSKTLS; dbgrid2.Columns[0].Title.caption:='Смартфоны и гаджеты'; DBGrid2.Columns[0].Title.Font.Size:=12 end; 2: begin DBGrid2.DataSource:=DSKTLP; dbgrid2.Columns[0].Title.caption:='Планшеты'; DBGrid2.Columns[0].Title.Font.Size:=12 end; 3: begin DBGrid2.DataSource:=DSKTLF; dbgrid2.Columns[0].Title.caption:='Фототехника'; DBGrid2.Columns[0].Title.Font.Size:=12 end; end; end; procedure TfSag.DBGrid2CellClick(Column: TColumn); begin {N2:=TStringGrid(DBGrid2).Row; if (N1=1) and (N2=1) then begin DBGrid3.DataSource:=DSSmrt; dbgrid3.Columns[0].Title.caption:='Смартфоны'; DBGrid3.Columns[0].Title.Font.Size:=12; end; } end; procedure TfSag.FormCreate(Sender: TObject); begin {DBGrid2.DataSource:=DSKTLS; dbgrid2.Columns[0].Title.caption:='Смартфоны и гаджеты'; DBGrid2.Columns[0].Title.Font.Size:=12; DBGrid3.DataSource:=DSSmrt; dbgrid3.Columns[0].Title.caption:='Смартфоны'; DBGrid3.Columns[0].Title.Font.Size:=12; DBGrid3.Columns[0].Width:=170; DBGrid3.Columns[1].Width:=100; } end; end. |
04.12.2020, 15:02 | #2 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
например
1. разные поля НД. https://programmersforum.ru/showthread.php?t=333903 2. пустые НД. 3. закрытые НД. 4. отсутствует НД в datasource. Код:
Код:
Цитата:
все пойдет не так как надо.
программа — запись алгоритма на языке понятном транслятору
|
||
04.12.2020, 15:13 | #3 |
Новичок
Джуниор
Регистрация: 04.12.2020
Сообщений: 2
|
evg_m, Что вы понимаете под НД?
|
04.12.2020, 15:20 | #4 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
НД = (T)DataSet
программа — запись алгоритма на языке понятном транслятору
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
dbgrid и datasource в dll | hemn6vyr | БД в Delphi | 1 | 30.03.2013 15:59 |
Добавление новых записей через DBGrid, DataSource и ZTable | Leximus | БД в Delphi | 3 | 25.10.2011 08:04 |
подключение одной DBGrid к разным DataSource | Rin | БД в Delphi | 3 | 12.01.2011 12:15 |
Как можно изменить у DBGrid Datasource в процессе работы приложения ?? | Kamelli_13 | БД в Delphi | 6 | 01.05.2009 17:14 |
компонента 1-datasource 2-query 3-dbnavigator 4-dbgrid - как заставить работать? | hinku | БД в Delphi | 5 | 07.10.2008 17:33 |