Главная страница
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.025 c
8-30465
Mastak
2003-01-05 13:27
2003.04.10
Работа с OpenGL


4-30666
Чайник32
2003-02-10 15:53
2003.04.10
список процессов


1-30339
Aleksandr
2003-03-31 12:46
2003.04.10
Несовпадения про конвертации FileDateToDateTime и назад.


1-30328
Nico1a_____
2003-03-30 18:34
2003.04.10
Bitmap => TINIFile


7-30625
Inquirer
2003-02-14 11:58
2003.04.10
Params.WndParent := GetDesktopWindow