|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
Создаю курсорадаптер и отображаю данные в grid: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38.
Затем в click() кнопки пишу APPEND BLANK TABLEUPDATE() sqlsetprop(PubCon, 'Transactions', 2) if !tableupdate(.t.,.t.,.lo_CA.alias) sqlrollback(PubCon) aerror(laErrors) messagebox(iif(type('laErrors[2]')='C',laErrors[2],'Неопознанная ошибка!'),16,'Ошибка') else sqlcommit(PubCon) .lo_CA.CursorRefresh() .SetFocus() ENDIF Подскажите что не так делаю, как правильно данные добавить? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2011, 16:55 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
НадеждаМ, ошибку мы должны отгадать? Или она только для лохов пишется? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2011, 17:38 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
Sergey SizovНадеждаМ, ошибку мы должны отгадать? Или она только для лохов пишется? а как ты ее отгадаешь? там написано TABLEUPDATE() буфер сброшен без анализа я вот одно не понимаю: реальные ли люди пишут на данном форуме? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2011, 17:42 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
Честно говоря я вобще запуталась с курсорадаптером. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 15:49 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
НадеждаМ, Пока можно сказать, что в вашем коде один ENDIF лишний ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 15:53 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
IgorNG, Это да, увидела. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 16:06 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
не могу отловить ошибку ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 16:39 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
if tableupdate(.t.,.t.,.lo_CA.alias)<>.t. sqlrollback(PubCon) aerror(laErrors) messagebox(iif(type('laErrors[2]')='C',laErrors[2],'Íåîïîçíàííàÿ îøèáêà!'),16,'Îøèáêà') не отлавливается ошибка. tableupdate(.t.,.t.,.lo_CA.alias) =.t. получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 16:47 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
НадеждаМ tableupdate(.t.,.t.,.lo_CA.alias) =.t. получается. перед этой командой какой код у Вас в кнопке? вот это у Вас написано? Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 17:33 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
ага ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 07:56 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
тоесть было написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 08:08 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
НадеждаМif tableupdate(.t.,.t.,.lo_CA.alias)<>.t. sqlrollback(PubCon) aerror(laErrors) messagebox(iif(type('laErrors[2]')='C',laErrors[2],'Íåîïîçíàííàÿ îøèáêà!'),16,'Îøèáêà') не отлавливается ошибка. tableupdate(.t.,.t.,.lo_CA.alias) =.t. получается. Проверяется ошибка функции sqlrollback(). Оно так и задумано? или все-таки aerror() надо перед sqlrollback() сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 08:08 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
Сейчас добавила еще одну кнопку, по клику которой просто пустая строка появляется в grid. Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 08:11 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
Dima T, Нет, не задумано. Вы правы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 08:14 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
И надо ли тут sqlrollback() ? sqlrollback() откатывает на сервере изменения сделанные в текущей транзакции. Т.к. tableupdate() не сработал - сервер изменения не принял, т.е. в базе ничего не менялось, т.е. имеем курсор в котором есть изменения для сохранения на сервер. Для возврата курсора в исходное состояние надо использовать tablerevert() ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 08:17 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
Перечитал топик, вопросы возникли: НадеждаМsqlsetprop(PubCon, 'Transactions', 2) if !tableupdate(.t.,.t.,.lo_CA.alias) sqlrollback(PubCon) else sqlcommit(PubCon) ENDIF Зачем вообще вручную рулить транзакциями? Нужны проблемы с блокировками на сервере? НадеждаМif tableupdate(.t.,.t.,.lo_CA.alias)<>.t. sqlrollback(PubCon) aerror(laErrors) messagebox(iif(type('laErrors[2]')='C',laErrors[2],'Íåîïîçíàííàÿ îøèáêà!'),16,'Îøèáêà') не отлавливается ошибка. tableupdate(.t.,.t.,.lo_CA.alias) =.t. получается. Если tableupdate(.t.,.t.,.lo_CA.alias) =.t. то в чем вообще ошибка? .t. это значит все на сервер успешно сохранилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 08:29 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
Dima TТ.к. tableupdate() не сработал - сервер изменения не принял, т.е. в базе ничего не менялось, вай ит из? если буфериз-я табличная, в курсор добавили 2 записи, и если 1 запись легла, а вторая нет? ну или триггер какой хитрый на инсерт, апдейт и т.д.? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 09:21 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
Dima TЗачем вообще вручную рулить транзакциями? Нужны проблемы с блокировками на сервере? а как ими рулить? да еще и учитывая косяки в рантайме относительно св-ва UseTransactions. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 09:26 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
Использую BufferModeOverride = 3 - Мягкую буферизация строк. Записи я добвляю по одной. Вроде как tableupdate () = .t., только понять не могу почему в таблице нет добавляемых данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 10:05 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
прошелмимоDima TТ.к. tableupdate() не сработал - сервер изменения не принял, т.е. в базе ничего не менялось, вай ит из? если буфериз-я табличная, в курсор добавили 2 записи, и если 1 запись легла, а вторая нет? ну или триггер какой хитрый на инсерт, апдейт и т.д.? А фокс (по дефолтным настройкам) апдейты разве не в одной транзакции сервера делает? Второй не пройдет - первый откатиться вместе с изменениями хитрых триггеров и т.п. прошелмимоDima TЗачем вообще вручную рулить транзакциями? Нужны проблемы с блокировками на сервере? а как ими рулить? да еще и учитывая косяки в рантайме относительно св-ва UseTransactions. В простых случаях оно само разрулится. Любое изменение MS-SQL оборачивает в транзакцию, другое дело кто ее закрывает, сам сервер автоматом, фокс где-то во внутренностях КА, либо явно в коде прописывать. Зачем велосипед усложнять на простых конструкциях? Забыли/пропустили в одном месте sqlcommit() вставить и висит база заблокированная транзакцией, остальное у юзера работает как вложенное в эту транзакцию, а по закрытию фокса транзакция откатывается, т.к. этот sqlcommit() никто не дает. Согласен что для изменения нескольких связанных таблиц нужна транзакция, но тут нет нескольких таблиц. Лично я предпочитаю явно открывать транзакцию для сложных случаев. Примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 10:17 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
сейчас добавила пустую строку и сделала browse, данные в курсорадаптере есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 10:42 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
НадеждаМсейчас добавила пустую строку и сделала browse, данные в курсорадаптере есть. Поздравляю. А если попробовать непустые строки добавлять? После APPEND BLANK заполнить запись REPL ... а потом уже сохранять. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 11:31 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
Dima T, не получается ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 11:51 |
|
Помогите с добавлением данных через курсорадаптер
|
|||
---|---|---|---|
#18+
> Автор: НадеждаМ > не получается Очень информативно Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 12:25 |
|
|
start [/forum/topic.php?fid=41&msg=37351190&tid=1581993]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 141ms |
0 / 0 |