Форум: "Базы";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
ВнизПодскажите пожалуйста с набором данных Найти похожие ветки
← →
ewald (2002-11-28 17:58) [0]Есть две таблицы главная и подчиненная (paradox). С главной - проблем нет, а вот с подчиненной - при внесении новых записей все нормально, но при перезапуске программы изчезают последние записи, хотя после каждого внесения пишу Table2.Post; Table2.Refresh;
И самое интересное, что при попытке записать новую запись выдается ошибка "Key violation".
Что может быть?
Спасибо заранее.
← →
Victor_Cr (2002-11-28 18:07) [1]Мда... Объяни подробнее. Как они связаны, по каким полям, ключевые поля Table2, куски кода который работает с занесением изменений и т.д.
← →
ewald (2002-11-28 18:23) [2]На таблицах записываются данные счета. На главной все реквизиты на подчиненной - товары. Связаны они по номеру счета, который в гл. таблице автоинкремент и установлен КЕУ. В подчиненной таблице КЕУ установлен на поле No, которое тоже автоинкремент. Все данные вносятся из Edit"ов, например Table2Name.value:=Edit1.text и т.д. После всех внесений (работает нормально) пишу Table2.Post; Table2.Refresh;
Но самое интересное, что изчезнувших полей в Table2 нету точно, но при попытке стереть счет из главной таблицы выдается ошибка, что процедура невозможна, так как в подчиненной таблице есть записи, хотя я их нигде не вижу. Открывал базу и с Database desktop и с Exel.
← →
MsGuns (2002-11-28 20:37) [3]Класс ! Две таблицы с ОДНИМ-ЕДИНСТВЕННЫМ КЛЮЧЕМ - автоинкрементом ! И как же прикажете их друг с другом связывать ?
В подчиненной таблице должен быть еще один ключ - типа I и он должен быть ПЕРВЫМ, по которому и надо связывать эту таблу с мастером. В гриде детала это поле вообще не надо показывать.
После Post вообще-то надо давать FlushBuffers, а Refresh по кнопке или по таймеру.
← →
ewald (2002-11-29 10:56) [4]Сделал, но тогда выкидывает ошибку Key Violation
← →
MsGuns (2002-11-29 12:20) [5]Приведи структуры обеих таблиц (достаточно только верхушек с ключами) и как связываешь (установленные значения св-в MasterSource и MasterFields в обеих TTable
← →
ewald (2002-11-29 13:37) [6]Главная sss.db: 1.PR_NO + key*
Подчиненная ssd.db 1. NO_PP + key*
2. PR_NO I
Связаны они по полям PR_NO. В LookUp второй таблицы указана первая с полем PR_NO.
В Table2.MasterSource указано DSource1, в MasterFields - PR_NO.
В Table1 эти поля пустые.
← →
MsGuns (2002-11-29 13:46) [7]Зачем LookUp из второй таблы в первую я все равно не понял.
По поводу связки, если первое поле детала (NO_PP) типа AutoInc, то все должно работать безо всяких виолетов. Хотя я использую несколько другую схему (для парадокса, ИМХО, более эффективную).
Для твоего примера
sss 1.PR_NO - Autoinc (PK)
ssd 1.PR_NO - I (PK) - связка с sss
2.NO_PP - AutoInc (PK) - собственный "ошейник" для деталов
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c