Главная страница
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.021 c
4-66171
alex25
2003-09-26 10:57
2003.11.20
CreateProcess


3-65772
Oleksiy
2003-10-27 14:59
2003.11.20
Как правильно сделать индикатор прогресса выполнения запроса...


3-65737
IGORYOK
2003-10-30 19:17
2003.11.20
Как удобней хранить и в чём


3-65771
smu
2003-10-31 08:53
2003.11.20
При работе с двумя TQuery, связанными с одним TDatabase, проподаю


14-66072
Alexes
2003-10-29 14:03
2003.11.20
Delphi 7 компилированные файлы получаются большого размера?