Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Сохранение изменённых данных DW в таблицах БД / 19 сообщений из 19, страница 1 из 1
25.06.2011, 14:17
    #37324689
lmiha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
Доброго времени суток!
Буду признателен за краткое описание различий и правил применения методов:
dw.AcceptText()
dw.Update()
Вопрошаю в связи с необходимостью выловить "глюк" (нерегулярно возникающий),
часть данных изменённых в dw не изменяется в БД.
Код приблизительно такой:

IF dw.dw.AcceptText()=1 THEN
IF dw.Update()=1 THEN
commit;
ELSE
MessageBox('!','Ошибка2')
rollback;
Return(-2)
END IF
ELSE
MessageBox('!','Ошибка1')
rollback;
Return(-1)
END IF
...
Рейтинг: 0 / 0
25.06.2011, 16:16
    #37324749
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
lmiha,

Если кратко, то эти два метода между собой не имеют ничего общего. AcceptText вообще с базой никак не работает. Глюк там у вас в чем-то другом.
...
Рейтинг: 0 / 0
25.06.2011, 17:26
    #37324780
PaulJB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
А Вы получаете какое либо сообщение об ошибке, из перечисленных Вами, когда данные не сохраняются?
...
Рейтинг: 0 / 0
25.06.2011, 18:00
    #37324794
lmiha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
Спасибо откликнувшимся!
PaulJB - сообщений не получаю. ;(

Вдогонку...
Перед вышеприведенным кодом проверяю коннект к БД

<запрос>
IF SQLCA.sqlcode= -1 THEN
MessageBox('!', 'Где сеть?!')
RETURN 0
END IF
...
Рейтинг: 0 / 0
25.06.2011, 18:49
    #37324813
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
lmiha... часть данных изменённых в dw не изменяется в БД...
Подоздеваю, что не сохраняются те данные, которые либо не отвечают формату столбца и поэтому игнорируються БД, либо после ввода значения в последнюю ячейку не было "перехода" и изменения в этой ячейке не были приняты РВ.
...
Рейтинг: 0 / 0
26.06.2011, 00:17
    #37324955
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
А вообще-то такое код
Код: plaintext
1.
IF dw.dw.AcceptText()= 1  THEN
 IF dw.Update()= 1  THEN
вызывает сильные подозрения.
...
Рейтинг: 0 / 0
26.06.2011, 09:08
    #37325009
lmiha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
Локшин МаркА вообще-то такое код
Код: plaintext
1.
IF dw.dw.AcceptText()= 1  THEN
 IF dw.Update()= 1  THEN
вызывает сильные подозрения.

"не виноватая я..!"
а в чём подозреваюсь? ;)
...
Рейтинг: 0 / 0
26.06.2011, 11:12
    #37325037
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
Если первое dw - это DataWindow, то такой код вообще работать не будет
Код: plaintext
dw.dw.AcceptText()
...
Рейтинг: 0 / 0
27.06.2011, 09:27
    #37325500
lmiha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
Локшин Марк,
dw.AcceptText()
...
Рейтинг: 0 / 0
27.06.2011, 16:50
    #37326198
AIZ
AIZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
Код: plaintext
1.
2.
3.
IF SQLCA.sqlcode= - 1  THEN
MessageBox('!', 'Где сеть?!')
RETURN  0 
END IF 

Вообще-то таким образом коннект не проверишь. Просто получите факт КАКОЙ-ТО ошибки при UPDATE. Нужно смотреть переменные SQLCA.
...
Рейтинг: 0 / 0
29.06.2011, 10:18
    #37328299
PaulJB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
А событие DbError у dw код имеет или пустое ?
...
Рейтинг: 0 / 0
29.06.2011, 10:46
    #37328378
lmiha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
PaulJB,

Имеет...

//ловим гада
MessageBox('Помилка збереження!', Trim(Left(sqlerrtext, Pos(sqlerrtext,"No changes made to database.") - 1)), StopSign!)
rollback;
return 1
...
Рейтинг: 0 / 0
29.06.2011, 10:59
    #37328412
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
А можно попроще? И уберите код из DbError
Код: plaintext
1.
2.
3.
IF SQLCA.sqlcode= - 1  THEN
MessageBox('Помилка', 'sqlerrtext = ' + sqlca.sqlerrtext +' sqldbcode = '+string(sqlca.sqldbcode) )
RETURN  0 
END IF 
...
Рейтинг: 0 / 0
29.06.2011, 11:01
    #37328418
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
Кстати, это не сработает как проверка сети
Это как-раз после выполнения update необходимо проверять
...
Рейтинг: 0 / 0
29.06.2011, 11:12
    #37328452
lmiha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
spas2001,

Спасибо, поставлю после Update().
А зачем из DbError убирать?
(порча масла кашей?)
...
Рейтинг: 0 / 0
29.06.2011, 11:35
    #37328504
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
Небольшая выдержка из help-a
RTFMUse with DataWindow/DataStore When using a Transaction object with a DataWindow, the DataWindow DBError event is triggered before the DBError event of the Transaction object. The return value for the DataWindow DBError event is used to indicate whether the Transaction object's DBError event should be triggered in turn. When the return value of the DataWindow DBError event is 0 or 1, the Transaction object's DBError event is also triggered if it is defined. When the return value of the DataWindow DBError event is 2 or 3, the Transaction object's DBError event is ignored.
...
Рейтинг: 0 / 0
29.06.2011, 12:21
    #37328608
lmiha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
spas2001А можно попроще?
;)
...
Рейтинг: 0 / 0
29.06.2011, 14:16
    #37328928
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
Короче, убери оттуда перехват ошибки, чтобы он в коде начал отслеживаться
...
Рейтинг: 0 / 0
29.06.2011, 14:53
    #37329019
lmiha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение изменённых данных DW в таблицах БД
spas2001,

Пробую...
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Сохранение изменённых данных DW в таблицах БД / 19 сообщений из 19, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]