Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Связаные таблицы, BDE,Paradox 
V
    Опции темы
Insert
  Дата 28.9.2006, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 13.4.2006

Репутация: нет
Всего: 1



Здравствуйте,
 У меня тут проблема, достаточно  тривиальная, но в БД я ещё нуб.
Есть две таблицы заказы и заказчики и в первой и во второй есть одинаковые поля "заказчик"
Тип Бд- paradox. работаю с таблицами через 2 квери, на форме две сетки, и хочу чтоб когда юзер 
двигался по заказчикам, то во второй сетке снизу отображались ихние заказы, т.е запрос на sql
типа:


Код

select zakazchik1,zakazchik2
  from client,zakaz
 where zakazchik1=zakazchik2

Какое событие должно происходить при переборе пользователем клиентов на первой сетке?
(предполагаю что DrawColumnCell, но с ним никогда не работал). Ну и как все это осуществить?
 Заранее спасибо.
   smile 
--------------------
пьяный русский кодер практически непобедим
PM MAIL   Вверх
Rodman
Дата 28.9.2006, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Код

SELECT Client.Zakazchik, Zakaz.Zakazchik2
FROM Zakaz INNER JOIN Client ON Zakaz.Zakazchik2 = Client.Zakazchik;


PM MAIL WWW Skype GTalk YIM MSN   Вверх
Insert
Дата 28.9.2006, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 13.4.2006

Репутация: нет
Всего: 1



Большое спасибо за sql код, но в делфи я не могу поймать то событие, при котором, нада делать этот отбор.
--------------------
пьяный русский кодер практически непобедим
PM MAIL   Вверх
Rodman
Дата 28.9.2006, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Цитата(Insert @  28.9.2006,  16:51 Найти цитируемый пост)
я не могу поймать то событие, при котором, нада делать этот отбор.



когда и на чем тебе надо использовать этот запрос??? smile 
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Insert
Дата 28.9.2006, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 13.4.2006

Репутация: нет
Всего: 1



ну запрос надо использовать , когда пользователь будет осуществлять какие нибудь навигационные действия, по верхней сетке где список заказчиков, в нижнюю должны соответственно отбираться значения из таблицы заказов. Отбор идет по полю "zakazchik"
--------------------
пьяный русский кодер практически непобедим
PM MAIL   Вверх
Fedia
Дата 29.9.2006, 02:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

Репутация: 3
Всего: 13



Цитата(Insert @  28.9.2006,  19:09 Найти цитируемый пост)
ну запрос надо использовать , когда пользователь будет осуществлять какие нибудь навигационные действия, по верхней сетке где список заказчиков

Запрос можно использовать в событии OnAfterScroll компонента Query, подключенного к основной таблице.


--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
RideX
Дата 29.9.2006, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 94
Регистрация: 8.9.2004

Репутация: 1
Всего: 7



Не знаю как в древнем парадоксе, но в Access + ADO привязка делается так, например по условному полю таблиц [NameID]:
Код

    ADODataSetDetails := TADODataSet.Create(nil);
    ADODataSetDetails.Connection := ADOConnection;
    // Ссылка на главную таблицу
    ADODataSetDetails.DataSource := MasterDataSource;
    ADODataSetDetails.CommandType := cmdText;
    // Выбирать по соответствующему главной таблице связанному полю
    ADODataSetDetails.CommandText := 'SELECT * FROM ' + DetailsTable + ' WHERE NameID= :NameID';

    ADODataSetDetails.Active := True;

    DetailsDataSource := TDataSource.Create(nil);
    DetailsDataSource.DataSet := ADODataSetDetails;


Это указывается один раз и ничего больше, никаких там событий, в процессе работы обрабатывать не нужно.

Это сообщение отредактировал(а) RideX - 29.9.2006, 12:08
PM   Вверх
Insert
Дата 29.9.2006, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 13.4.2006

Репутация: нет
Всего: 1



Да Access здесь поудобнее будет ,в дальнейшем на него и перейду, но сейчас пока что только BDE,
Еще хотелось бу знать как узнать что за ячейка выделена, название столбца, её содержимое, мне ето тоже понадобится.
--------------------
пьяный русский кодер практически непобедим
PM MAIL   Вверх
Rodman
Дата 29.9.2006, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Ты выводишь через DBGrid???

Если да - то 
Код


procedure TFormUP3.DBGrid1CellClick(Column: TColumn);
begin
  ShowMessage(TakeDisc.FieldByName(Column.FieldName).AsString);
  ShowMessage(UP3DataModule.TakeDisc.Fields.Fields[0].AsString);
end; 

PM MAIL WWW Skype GTalk YIM MSN   Вверх
Insert
Дата 29.9.2006, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 13.4.2006

Репутация: нет
Всего: 1



Спавибо большое, если по этому поводу будут вопросы я напишу.
--------------------
пьяный русский кодер практически непобедим
PM MAIL   Вверх
Akella
Дата 2.10.2006, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



В TDataSource, а в событии OnDataChange
вот пример с ADO

Код

procedure TDM.DSSpecifDataChange(Sender: TObject; Field: TField);
begin
  try
    with adodsGoodsSeriesSelect
    do begin
      DisableControls;
      Close;
      Parameters.ParamByName('@Specified_id').Value :=
        adodsGoodsSpecifiedSelect.FieldByName('Specified_id').Value;
      Open;
    end;
  finally
    adodsGoodsSeriesSelect.EnableControls;
  end;
end;



Добавлено @ 13:45 
при новигации по верхней таблице будет переоткрываться запрос нижней таблицы

Это сообщение отредактировал(а) Akella - 2.10.2006, 13:44
PM MAIL   Вверх
Insert
Дата 2.10.2006, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 13.4.2006

Репутация: нет
Всего: 1



спасибо
--------------------
пьяный русский кодер практически непобедим
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1074 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.