Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];

Вниз

Cвязанные таблицы (не могу разобраться)...   Найти похожие ветки 

 
_reset   (2002-08-26 10:10) [0]

Что то не могу разобраться (да и времени нету), помогите, плз.
Имеем: две таблицы Paradox
tb1.db
ID - Autoincrement, Key
Name - Alpha
tb2.db
Master_id - Long Integer
Input_Date - Date
во второй таблице Secundary Index master_id_idx (т. е. связь один ко многим).

Кидаю на форму соотвественно по две TTable (1 и 2) и DataSource (1 и 2). Во второй таблице указываю:
Table2.MasterSource = DataSource1
Table2.MasterField = ID
Table2.IndexName = master_id_idx

Кидаю два DBGrid.

Возникает следующая ситуация: ежели "забить" данные в базу в DDesctop - вся подчиненность нормально просматривается, однако ежели попробовать в подчиненной таблице добавить новую запись возникает ошибка: "Index is Read Only". Почему?


 
Reindeer Moss Eater   (2002-08-26 10:29) [1]

Потому что ты таким его сделал


 
_reset   (2002-08-26 10:49) [2]

Это как же я его сделал Read Only? Ежели имеется ввиду поле ID, то я его и просто Long Integer делал - результат тот же...


 
_reset   (2002-08-26 12:23) [3]

хм..., немного непонятно написал:

Возникает следующая ситуация: ежели "забить" данные в базу в DDesctop - вся подчиненность при запуске формы в дельфи нормально просматривается

однако ежели попробовать в подчиненной таблице при запуске формы в дельфи, в DBGrid2 добавить новую запись возникает ошибка: "Index is Read Only". Почему?

!Если таблицы в дельфях не связывать, то данные нормально вводяться в оба грида.



 
Lola   (2002-08-26 13:30) [4]

А если на момент добавления отключить связь между таблицами?
Я в таких случаях использую другой компонент TTable без связи главная подчиненная.


 
_reset   (2002-08-26 14:26) [5]

"Каличный" выход нашел, но не нравиться он мне.

Меняем tb2

ID - Autoincrement, Key
Master_id - Long Integer, Key
Input_Date - Date
Secundary Index master_id_idx убиваем (он теперь нафиг не нужен).

Во второй таблице указываем:
Table2.MasterSource = DataSource1
Table2.MasterField = ID
Table2.IndexFieldName = master_id

работает, блин, без всяких доп. таблиц и т.п.!

Однако! Мастера! Вопрос, все таки что за ерунда вылазит в первом варианте? Какой у меня индекс Read Only?


 
Lord Warlock   (2002-08-26 14:35) [6]

Все дело в целостности таблиц Парадокса. Для постоянной безглючной работы в таблице обязательно нужен PrimaryKey, чего у тебя не было в первом варианте. Пусть это поле (ID во второй таблице) ничего не делает, но оно нужно обязательно.


 
_reset   (2002-08-26 14:48) [7]

To: Lord Warlock © (26.08.02 14:35)

нет, ты не прав, я только что проверил!
если сделать:
ID - Autoincrement, Key
Master_id - Long Integer
Input_Date - Date
оставляем Secundary Index master_id_idx по полю Master_id

т.е. PrimaryKey по ID есть, а по мастер ID - только индекс (Key убрали, он блин, ведь и не нужен!)

и

Table2.MasterSource = DataSource1
Table2.MasterField = ID
Table2.IndexName = master_id_idx

выдает ту же ошибку, дело именно в индексе подчиненной таблицы.



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

Форум: "Базы";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
1-50826
Song
2002-09-03 14:31
2002.09.16
Бьюсь над проблемой: как узнать, что скринсэйвер работает?


3-50644
savva
2002-08-23 14:26
2002.09.16
Блокировка файла не возможна - что это и с чем едят:))


1-50849
Valeris
2002-09-04 15:02
2002.09.16
Компонент для работы с Excel


4-51043
KSS
2002-07-23 22:24
2002.09.16
Как напмсан Word?


1-50783
SergeyKnyazev
2002-09-03 12:35
2002.09.16
Нужно вывести рисунок на принтер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский