Форум: "Базы";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];
ВнизВсе тот же ADO Найти похожие ветки
← →
Ozone (2003-10-28 07:54) [0]Скажите почему у TADOTable отображающей таблицу с первичным ключом инкрементного типа при вызове метода Post это самое инкрементное поле не заполняется (учитывая что LockType = ltBatchOptimistic), а после UpdateBatch() все становится на свои места.
← →
Hooch (2003-10-28 07:59) [1]сходи на Королевство Делфи, там есть статьи про ADO там про это написано
← →
Ozone (2003-10-28 08:00) [2]пасиба.
← →
Ozone (2003-10-28 13:55) [3]Вставляю в свой код перед добавлением записи такую фичу
ADODataSet1.Properties["Update Resync"].Value:= adResyncInserts + adResyncInserts;
и возникает "...Access violation..."
PS. LockType = ltBatchOptimistic.
В чем может быть проблема?
← →
Ozone (2003-10-28 15:38) [4]Помогите пожалуйста, курсовая горит.
← →
Sandman25 (2003-10-28 15:46) [5]А зачем удвоенное adResyncInserts записывать?
← →
Ozone (2003-10-28 15:48) [6]Я опечатался, там должно быть
< adResyncAutoIncrement + adResyncInserts >
← →
Ozone (2003-10-28 15:52) [7]Не вызывает ошибки, если пишу
Properties["Update Criteria"].Value := adCriteriaAllCols;
Properties["Update Resync"].Value := adResyncAutoIncrement + adResyncInserts;
Но нужно результата все равно не дает.
Т.е. в режиме LockType=ltBatchOptimistic делаю Append, что-то присваиваю полям, вызываю Post, но автоинкрементному полю (которое также явл. первичным ключом) значение никакое не присваивается.
← →
analyser (2003-10-28 16:21) [8]"...учитывая что LockType = ltBatchOptimistic...",
при Post "автоинкрементному полю (которое также явл. первичным ключом)" значение никакое и не присвоится! (а что, на Королевстве Делфи, где есть статьи про ADO, про это не написано?)
← →
Ozone (2003-10-28 16:32) [9]Тогда как мне лучше осуществить такое:
есть таблицы Teacher(ID, FIO, ...) и Plan(Number, ID, ...), т.е. Teacher связана с Plan один-ко-многим по ключу ID.
Следовательно, при добавлении новой записи в таблицу Teacher мне нужно добавить несколько записей в таблицу Plan, но как это сделать, если ID(автоинкрементное поле) не определяется при вызове метода POST.
Подскажите, как быть?
← →
analyser (2003-10-28 16:57) [10]...как быть?
-думать!
На самом деле вариантов много можно придумать, но чтобы было все просто и одновременно удовлетворялось и отлож. изменения и автоинкремент - это вряд ли (он ведь-автоинкремент-определяется при вставке записи в таблицу БД (не TADOTABLE!!!), а POST при отлож.изменениях в БД ничего не пишет, только в локальный кэш).
Может, ну его нафиг, этот ltBatchOptimistic - по крайней мере для вставки новой записи - ну удалишь ее потом запросом..
← →
Ozone (2003-10-28 16:58) [11]Скорее всего так и сделаю.
← →
Beginner3000 (2003-10-29 00:00) [12]меня от заморочек автоинкрементных полей спасает
["Update Criteria"].Value:= adCriteriaKey;
в начале работы с таблицей
а на счёт заполнения автоинкримента - всё верно
это в юрисдикции не TADOTable а движка базы
← →
doomin (2003-10-30 12:04) [13]начиная с 2000 есть тип счетчика "Код репликации". Порождает поле TGUIDField. Я уже давно перешел на них, тем более допускается генерить их на стороне клиента, т.е. туда писать. База больше, но многие проблемы решены и можно безболезненно использовать встроенную репликацию
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c