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

Вниз

Все тот же 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
1-65906
Serzh
2003-11-08 15:46
2003.11.20
Преобразование ASCII to ANSI


6-66049
silver
2003-09-25 18:00
2003.11.20
Как сделать подмену своего IP


3-65708
Timer
2003-11-01 22:02
2003.11.20
Окно Login


1-65837
Excel-deplphi
2003-11-10 07:26
2003.11.20
Как из делфи объединить ячейки в Excel ?


6-66030
zarochka
2003-09-24 22:29
2003.11.20
Как закачать файды на сервер