Доброго времени суток читатель этого сообщения !!!
Здравствуйте!
Ваш вопрос :
-------------------------------------------------------
Привет.
Delphi 7.0 + FireBird 1.5
Созданы следующие переменные:
— tIBQuery (имя qReportSmenaDay),
— tIBTable (имя tReportAvar)
— dataSource (имя dsSmenaDay), привязана к qReportSmenaDay
у tSD следующая настройка:
MasterSource := dsSmenaDay
MasterFields := 'ID'
программно создается новая таблица в базе данных с именем 't1235', с полями ID, Name. Заполнятся даными.
после производится следующее:
{ Переподключаюсь к базе }
With dm do Begin
if db.Connected then db.Close ; { отключился }
db.Open ; { подключился }
qReportSmenaDay.Open ;
End ;
With DM.tReportAvar do Begin
if Active then Close ;
TableName := 't1235' ;
IndexFieldNames := 'ID' ;
IndexDefs.Update ;
FieldDefs.Update ;
Open ;
End ;
при выполнении процедуры Open выдается сообщение "table unknown t1235',
хотя при просмотре через IBExpert я вижу эту таблицу и данные в ней.
Как решить эту проблему ?
Здравствуйте, mormat.
мне нужно связку сделать из 2-х таблиц.
как я вделаю привязку Query по полю к Query ?
Здравствуйте, ViNaS, Вы писали:
VNS>Здравствуйте, mormat.
VNS>мне нужно связку сделать из 2-х таблиц.
VNS>как я вделаю привязку Query по полю к Query ?
Master-Detail зависимость делается на местном СКЛ таким образом (для стандартных Interbase компонент):
Например, в мастерском наборе данных ключом является поле "ID", а ссылкой на него в детальной таблице — внешний ключ "MAS_ID".
Вы пишете запрос в Мастерском наборе данных, какой вам нужен, с обязятельным выбором поля первичного ключа.
Далее, вы пишете запрос в детальном НД, в конце которого пишете что-то вроде "where MAS_ID=
:ID"
Не забываете задать для детального НД свойство MasterSource, оно должно указывать на DataSource мастер-НД.
Вроде всё, можно открывать оба набора данных. Гуляя по мастеру, будете видеть меняющееся содержимое подчиненной таблицы, если конечно это содержимое у нее есть =)
Для НЕ стандартных компонент, а для FibPlus, вместо двоеточия в where желательно использовать "?".
А вообще учите SQL получше

.
PS: для динамического изменения запросов в ходе выполнения программы лучше написать несколько своих функций, которые будут делать синтаксический разбор и видоизменение СКЛ-запросов без лишней нервотрепки.