Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как программно переключить DBEdit от 1го источника данных к другому / 4 сообщений из 4, страница 1 из 1
01.08.2003, 10:00
    #32224624
Andrey_0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как программно переключить DBEdit от 1го источника данных к другому
В DataModule1 содержатся:
Table1 -> DataSource1;
Table2 -> DataSource2;
Table3 -> DataSource3;
На Form1:
DBGrid1,DBGrid2, DBGrid3, DBEdit1, DBEdit2, DBNavigator1
Нужно чтобы
при получении фокуса DBGrid1, DBEdit1, DBEdit2 получали данные из DataSource1;
при получении фокуса DBGrid2, DBEdit1, DBEdit2 получали данные из DataSource2;
при получении фокуса DBGrid3, DBEdit1, DBEdit2 получали данные из DataSource3;

Для этого пишу следующий код и вешаю на OnEnter

procedure TForm1.DBGrid1Enter(Sender: TObject);
begin
DBNavigator1.DataSource:=Datamodule1.DataSource1;
with DBEdit1 do
begin
DataSource:=Datamodule1.DataSource1;
DataField:='Color'; //имя поля1 таблицы1
end;
with DBEdit2 do
begin
Datasource:=DataModule1.DataSource1;
DataField:='Description' //имя поля2 таблицы1
end;
end;

procedure TForm1.DBGrid2Enter(Sender: TObject);
begin
DBNavigator1.DataSource:=Datamodule1.DataSource2;
with DBEdit1 do
begin
DataSource:=Datamodule1.DataSource2;
DataField:='Defect'; //имя поля1 таблицы2
end;
with DBEdit2 do
begin
DataSource:=Datamodule1.DataSource2;
DataField:='Description'; //имя поля2 таблицы2
end;
end;

procedure TForm1.DBGrid3Enter(Sender: TObject);
begin
DBNavigator1.DataSource:=Datamodule1.DataSource3;
with DBEdit1 do
begin
DataSource:=Datamodule1.DataSource3;
DataField:='Model'; //имя поля1 таблицы3
end;
with DBEdit2 do
begin
DataSource:=Datamodule1.DataSource3;
DataField:='Description'; //имя поля2 таблицы3
end;
end;

но при переключении между гридами выдает следующее сообщение

---------------------------
Debugger Exception Notification
---------------------------
Project ProjectExample.exe raised exception class EDatabaseError with message 'DBEdit1: Field 'Color' not found'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
...
Рейтинг: 0 / 0
01.08.2003, 10:38
    #32224680
m_kus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как программно переключить DBEdit от 1го источника данных к другому
попробуй
Код: plaintext
1.
2.
3.
4.
begin 
DataSource:=nil; 
DataField:='Color'; //имя поля1 таблицы1 
DataSource:=Datamodule1.DataSource1; 
end;

или что-нибудь в этом духе...
...
Рейтинг: 0 / 0
01.08.2003, 13:27
    #32224987
Andrey_0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как программно переключить DBEdit от 1го источника данных к другому
begin
DataSource:=nil;
DataField:='Color'; //имя поля1 таблицы1
DataSource:=Datamodule1.DataSource1;
end;


у меня не получилось, но сработало
begin
DataField:='';
DataField:='Color'; //имя поля1 таблицы1
DataSource:=Datamodule1.DataSource1;
end;
...
Рейтинг: 0 / 0
22.08.2003, 23:18
    #32245313
Stolper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как программно переключить DBEdit от 1го источника данных к другому
Не представляю как это может работать
Правильно
DBEdit1.DataField:='';
{Если без этого то DBEdit1.DataField имеет старое значение и после следущей таблице
такого поля может не быть. Вот вам и Field 'Зозо' not found'.}
DBEdit1.DataSource:=Datamodule1.NevDataSource1{Вот теперь меняем}
DBEdit1.DataField:='NevString';{И связываем с новым полем}
end;
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как программно переключить DBEdit от 1го источника данных к другому / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]