|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
1. DBGrid + ADOTable выбираю данные из таблицы Access, добавляю через DBGrid новую запись, затем не выходя из формы пытаюсь её же удалить -> получаю в ответ сообщение "Row cannot be located for updating. Some values may have been changed since it was last read." 2. Следующий момент становлюсь на добавление новой записи в гриде, но передумываю её добавлять и пытаюсь выйти с этой записи -> опять же получаю в ответ такое сообщение "Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record." Привычная кнопка Esc не помагает. Подскажите пожалуйста какие свойства DBGrid или ADOTable нужно установить или как с этим бороться, чтобы не получать эти сообщения (раньше с VB работал - таких вещей не возникало). Если есть какие интересные ссылки по работе с БД в CBuilder киньте пожалуйста. Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2003, 14:10 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
поищи патч на ADO компоненты... да и не советую использовать TADOTable, лучше TADOQUERY ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2003, 03:44 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
Скорее все у вас в таблице первичный ключ создается на сервере, так? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2003, 09:19 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
2>StarWind >поищи патч на ADO компоненты... думаешь поможет??? 2>funikovyuri >Скорее все у вас в таблице первичный ключ создается на сервере, так? Немного не понял суть вопроса. База Access соответственно первичный ключ там же, хотя думаю ты спросил не об этом!? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2003, 10:47 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
я знаю что поможет... у самого была такая же проблема, ответ был найдет в этом форуме.... причем не задавая вопроса, а просто воспользовался поисковиком по форуму... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2003, 10:57 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
кстате, патч лежит на борланде... по крайней мере дельфевый... хотя библиотека одна, так что должен подойти и для билдера... посмотри внимательно, может перед апгрейдом компонент ADO потребуется апгрейд билдера ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2003, 10:59 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
Нашел на borland.com патч 'BCB5ADOUpgrade1.exe' в описании как раз сказано о данной проблеме 'Most commonly, the following error is generated when closing an empty dataset: "Either EOF or BOF is True, or the current record has been deleted. Requested operation requires a current record". The same error may also occur when canceling an edit operation. Affected applications should be recompiled after the update is installed.' Щас качну если все получится отпишу. В любом случае СПАСИБО!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2003, 11:44 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
2Uriy: Я имел ввиду что возможно ваш ключ создается Access'ом - так что когда вы создаете запись в builder'e значение ключа еще не известно ( точнее builder будет считать его пустым ). Если проблема в этом - то patch вам не поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2003, 12:07 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
2>funikovyuri >Я имел ввиду что возможно ваш ключ создается Access'ом - так что когда вы создаете запись в builder'e значение ключа еще не известно ( точнее builder будет считать его пустым ). Если проблема в этом - то patch вам не поможет. Patch должен исправить второй пункт моего вопроса. Что же касается первого, то действительно при добавлении новой записи builder значение ключа считает пустым, как с этим бороться не знаю. Может подскажешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2003, 13:55 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
Тут есть разные варианты, самый простой это Close/Open - но он и самый кривой в ADO для этого есть такое свойство как 'Update Resync', оно относится к Dynamic Properties для RecordSet'a -> технически на C++ это выглядит так (*ADOQuery->Properties)["Update Resync"]->Value = adResyncAll; Можете попробывать - но скорее всего у вас это или не будет работать или не скомпилится - есть способ заставить компилиться - но , IMHO он не надежный я предлогаю создать DynamicProperties.pas unit Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
И добавить его в ваш проект Затем просто используете эту функцию в Builder'e Например в OnAfterOpen() так как это свойство применимо только к уже открытому RecordSet'у ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2003, 14:38 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
2>funikovyuri Кроме этого, других вариантов нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2003, 16:02 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
2>funikovyuri Только что попробовал методы Close и Open в событии AfterPost - после этого запись удаляется без проблем. В чем кривизна этих методов? Единственное что не нравится так это то что курсор переходит на первую запись грида. Как заставить его оставаться на текущей записи? Может есть что-то типа закладок? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2003, 16:31 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
2Uriy: попробуйте работать с look up полями - нет возможности обновлять datail таблицы не зная ключ master table + увеличение трафика Update Resync делает тоже самое только автоматически и только необходимых полей ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2003, 16:46 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
2funikovyuri Update Resync может и хорош, да только не имею опыта подключения к проекту делфовых модулей. Look up в чем преимущество? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2003, 17:22 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
2Uriy: если нету опыта тогда ... lookup это не приимущество - это идеология ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2003, 17:26 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
По поводу технологий... откажись от компонента таблиц.... получишь большое удовольствие.... особенно при большой загрузке сервера работе по сети... причем не ты один получишь, еще возрадуется и админ сетки... сколь приятных веще одним махом.... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2003, 06:41 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
2StarWind Спасибо! Ты прав TADOQUERY гораздо удобнее, если в запрос не включать ключевые поля - вновь добавленые записи удаляются без всяких обновлений. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2003, 12:55 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
2Uriy: о боже, он еще и ключевые поля убрал из запроса .... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2003, 15:13 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
2funikovyuri А в чем собственно проблема!? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2003, 15:37 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
2Uriy: а как вы думаете, почему теперь вдруг все стало "работать" ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2003, 16:53 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
2funikovyuri >а как вы думаете, почему теперь вдруг все стало "работать" Точно не скажу, в жизни есть вещи которые мы не можем обьяснить. Может Вы поясните!? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2003, 17:25 |
|
Добавление удаление записей в DBGrid (CBuilder)?
|
|||
---|---|---|---|
#18+
Эту еще как - он теперь место запроса delete from table_name where id = :id посылает запрос delete from table_name where f1 = :f1 and ... and fn=:fn А так как у вас больше вычисляемых на сервере полей нет то все и работет ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2003, 17:45 |
|
|
start [/forum/topic.php?fid=57&msg=32132167&tid=2036376]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
174ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 290ms |
0 / 0 |