Delphi 7 + FireBird 1.5
От: ViNaS Россия  
Дата: 29.07.05 04:50
Оценка:
Доброго времени суток читатель этого сообщения !!!

Здравствуйте!

Ваш вопрос :
-------------------------------------------------------
Привет.

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 я вижу эту таблицу и данные в ней.

Как решить эту проблему ?
Re: Delphi 7 + FireBird 1.5
От: mormat Украина mormat.org.ua
Дата: 29.07.05 07:33
Оценка:
Здравствуйте, ViNaS, Вы писали:

эээ...
А Вы через SQL-запросы работать не пробовали?
Пусто
Re[2]: Delphi 7 + FireBird 1.5
От: ViNaS Россия  
Дата: 29.07.05 07:39
Оценка:
Здравствуйте, mormat.
мне нужно связку сделать из 2-х таблиц.
как я вделаю привязку Query по полю к Query ?
Re[3]: Delphi 7 + FireBird 1.5
От: Romkin  
Дата: 29.07.05 07:44
Оценка:
Здравствуйте, ViNaS, Вы писали:

VNS>Здравствуйте, mormat.

VNS>мне нужно связку сделать из 2-х таблиц.
VNS>как я вделаю привязку Query по полю к Query ?

Просто. Через Datasource. Если имена параметров совпадают с именами полей — все свяжется
Re[3]: СКЛ запрос
От: mormat Украина mormat.org.ua
Дата: 29.07.05 07:58
Оценка:
Здравствуйте, ViNaS, Вы писали:

VNS>Здравствуйте, mormat.

VNS>мне нужно связку сделать из 2-х таблиц.
VNS>как я вделаю привязку Query по полю к Query ?

Master-Detail зависимость делается на местном СКЛ таким образом (для стандартных Interbase компонент):

Например, в мастерском наборе данных ключом является поле "ID", а ссылкой на него в детальной таблице — внешний ключ "MAS_ID".

Вы пишете запрос в Мастерском наборе данных, какой вам нужен, с обязятельным выбором поля первичного ключа.
Далее, вы пишете запрос в детальном НД, в конце которого пишете что-то вроде "where MAS_ID=:ID"
Не забываете задать для детального НД свойство MasterSource, оно должно указывать на DataSource мастер-НД.
Вроде всё, можно открывать оба набора данных. Гуляя по мастеру, будете видеть меняющееся содержимое подчиненной таблицы, если конечно это содержимое у нее есть =)

Для НЕ стандартных компонент, а для FibPlus, вместо двоеточия в where желательно использовать "?".

А вообще учите SQL получше .

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