Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.10;
Скачать: CL | DM;

Вниз

Как правильно поменять текущий индекс в IBTable .   Найти похожие ветки 

 
Andrio ©   (2003-03-24 11:02) [0]

Сразу хочу заметить что таких глюков не наблюдалось в Paradox.
Я использую FireBird 1.0.3

Имеются 2 таблицы - главная и детальная, размещенные в 2-х компонентах TIBTable.
Главная:
CREATE TABLE MAINBASE (
LICSCET integer not null,
FNAME varchar(25) not null,
INAME varchar(15) not null,
ONAME varchar(18) not null,
/* Остальные поля не принципиальны*/
PRIMARY KEY (LICSCET),
FOREIGN KEY (DOMNUMBER) references DOMA
On Delete CASCADE
On Update CASCADE

Для этой таблицы также построен дополнительный индекс:
CREATE INDEX MAINBASE_NameIDX ON MAINBASE (FNAME, INAME, ONAME)

Детальная таблица:
CREATE TABLE NAMEBASE (
PersNumber smallint not null,
LICSCET integer not null,
FNAME varchar(25) not null,
INAME varchar(15),
ONAME varchar(18),
PRIMARY KEY (PersNumber, LICSCET),
FOREIGN KEY (LICSCET) references MAINBASE
On Delete CASCADE
On Update CASCADE

Компонент IBTable в свойствах masterTable и MasterField ссылается на главную таблицу и поле LICSCET.

При изменении текущего индекса в главной таблице:
MainBaseTable.IndexFieldNames:="LICSCET"
или
MainBaseTable.IndexFieldNames:="FNAME;INAME;ONAME"
и попытке вставить запись в детальную таблицу методами Unsert или Append возбуждается исключительная ситуация и Делфя выплевывает следующую муть:
Либо: Несоответствие типа столбца еще чему-то. (Если активен не уникальный индекс "FName;IName;OName")
Либо: Access Violation (Если активен уникальный индексиндекс "LicScet")

До применения метода "IndexFieldNames" ошибок не возникает.
Также все идет нормально если отключить Ссылку в детальной таблице (компоненте) на главную (св-во: MasterSource).

Как правильно менять текущий индекс в главной таблице чтобы подчиненные не глючили при вставке записей?
Помогите Pleeeeese! :))


 
Johnmen ©   (2003-03-24 12:08) [1]

Не использовать IBTable ! Использовать IBDataSet.



Страницы: 1 вся ветка

Текущий архив: 2003.04.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
9-30202
deema123
2002-10-30 18:02
2003.04.10
Как написать Змейку


8-30481
Bananos
2003-01-07 00:26
2003.04.10
HEX


3-30319
Cranium
2003-03-23 17:51
2003.04.10
Как передать параметр для DeleteSQL в IBDataSet


8-30465
Mastak
2003-01-05 13:27
2003.04.10
Работа с OpenGL


1-30400
LyzD
2003-03-30 16:15
2003.04.10
Как можно управлять окном имея его заголовок???