Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
почему так происходит?
|
|||
|---|---|---|---|
|
#18+
У меня 9-а версия билдера. Autocomit=true Делаю следующую операцию: 1) dw_1.insertrow(1) 2) потом на событие кномпки вешаю dw_1.update() 3) на событии dw_1.updateend() пишу следующий код: long get_id get_id=this.GetitemNumber(rowsinserted,'id') возвращает null, почему???? пробовал также this.Object.id[rowsinserted] -тоже самое!!!!!! В чем дело?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 11:49 |
|
||
|
почему так происходит?
|
|||
|---|---|---|---|
|
#18+
А в update properties Indentoty Column указан как ID? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 12:21 |
|
||
|
почему так происходит?
|
|||
|---|---|---|---|
|
#18+
Да! Указан! И в секции Updateble Columns -ID тоже указан! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 12:29 |
|
||
|
почему так происходит?
|
|||
|---|---|---|---|
|
#18+
авторВ чем дело?? Что-то Вы не договариваете. После того как вы выполнили dw_1.insertrow(1), какие-либо поля в этом самом dw_1 - заполняются, в промежутке до выполнения dw_1.update()? Если нет, то Вы получили именно то, что и описали. DataWindow будет генерить Insert для строк чей статус = newModified! Для строк имеющих статус new! Insert не выполняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 13:51 |
|
||
|
почему так происходит?
|
|||
|---|---|---|---|
|
#18+
Да! Извените, не договорил! В БД (АСА-8) этот самый id - автоинкремент. И в dw_1 -я его естественно не заполняю, а после вызова dw_1.update() -пытаюсь сразу его получить dw_1.getitemnumber(1,'id') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 14:29 |
|
||
|
почему так происходит?
|
|||
|---|---|---|---|
|
#18+
Уже лучше. Это я про то, что указали СУБД. Но повторюсь ещё раз. Заносятсяся ли в dw_1 данные в промежутке между: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 14:41 |
|
||
|
почему так происходит?
|
|||
|---|---|---|---|
|
#18+
Нет, данные заносятся -- интерактивно!! Тоесть во время выполнения программы. Тоесть, следующая последовательность: 1) dw_1.InsertRow(1) 2) Интерактивно заносим данные, все кроме ID 3) Запускаем dw_1.Update()---он проходит успешно, данные в БД заносятся. 4) Сразу после апдейта -dw_1.getitemnumber(1,'ID') ????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 14:55 |
|
||
|
почему так происходит?
|
|||
|---|---|---|---|
|
#18+
dw_1.update() генерит Insert, но не делает Retrieve ! Следовательно, ID у Вас в DataWindow как были пустые, так и остались. Чтобы получить их Вам нужно сдлать dw_1.Retrieve() (ИМХО) --- С уважением, IKAR ikarhomecenter@narod.ru IkarHomeCenter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 15:01 |
|
||
|
почему так происходит?
|
|||
|---|---|---|---|
|
#18+
Мда. Однако. Прям как в том анекдоте про индейца - "Зоркого глаза", который на 3-й день заметил, что задней стены в саре нет. Так говорите в событии updateend пишите Код: plaintext Тогда Вам вопрос: что означает параметр rowinserted в данном событии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 15:31 |
|
||
|
почему так происходит?
|
|||
|---|---|---|---|
|
#18+
Ikardw_1.update() генерит Insert, но не делает Retrieve ! Следовательно, ID у Вас в DataWindow как были пустые, так и остались. Чтобы получить их Вам нужно сдлать dw_1.Retrieve() Бред Вопросник4) Сразу после апдейта -dw_1.getitemnumber(1,'ID') А какие SQL команды исполняет PB смотреть пробовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 16:11 |
|
||
|
почему так происходит?
|
|||
|---|---|---|---|
|
#18+
Гм. AutoCommit отключаем и привыкаем после RETRIEVE и UPDATE делать COMMIT/ROLLBACK, анализируя SQLCode. Можно ли в событии UpdateEnd уже получить код инкремента честно скажу не знаю. После выполнения Update() точно можно и думаю даже нужно, после того, как все пройдет и будет сделан COMMIT. Кстати какой протокол доступа к данным используется и последний ли билд ASA 8 ? P.S. На крайний попробуйте в ISQL написать: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 16:20 |
|
||
|
почему так происходит?
|
|||
|---|---|---|---|
|
#18+
Ikardw_1.update() генерит Insert, но не делает Retrieve ! Следовательно, ID у Вас в DataWindow как были пустые, так и остались. Чтобы получить их Вам нужно сдлать dw_1.Retrieve() (ИМХО) --- С уважением, IKAR ikarhomecenter@narod.ru IkarHomeCenter Т.к. на вопрос Марка Локшина автор топика ответил утвердительно , то retrieve не нужен... Локшин МаркА в update properties Indentoty Column указан как ID? ВопросникДа! Указан! И в секции Updateble Columns -ID тоже указан! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 16:22 |
|
||
|
почему так происходит?
|
|||
|---|---|---|---|
|
#18+
ASCRUSМожно ли в событии UpdateEnd уже получить код инкремента честно скажу не знаю. Можно, я проверял :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 16:49 |
|
||
|
почему так происходит?
|
|||
|---|---|---|---|
|
#18+
2 Локшин Марк ! Можно ламеру рассказать как можно смотреть SQL команды исполняемые PB? И вариант предложенный ASCRUS - при отключении Аutocommit - сработал! Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 19:16 |
|
||
|
почему так происходит?
|
|||
|---|---|---|---|
|
#18+
Вопросник2 Локшин Марк ! Можно ламеру рассказать как можно смотреть SQL команды исполняемые PB? И вариант предложенный ASCRUS - при отключении Аutocommit - сработал! Спасибо!Я не Марк, но намекнуть могу PowerBuilder Help SQLPreview event (DataWindows) Description Occurs immediately before a SQL statement is submitted to the DBMS. Functions that trigger DBMS activity are Retrieve, Update, and ReselectRow. PowerBuilder event information Event ID: pbm_dwnsql Argument Description request SQLPreviewFunction by value. The function that initiated the database activityFor a list of valid values, see SQLPreviewFunction sqltype SQLPreviewType by value. The type of SQL statement being sent to the DBMSFor a list of valid values, see SQLPreviewType sqlsyntax String by value. The full text of the SQL statement buffer DWBuffer by value. The buffer containing the row involved in the database activity For a list of valid values, see DWBuffer row Long by value. The number of the row involved in the database activity, that is, the row being updated, selected, inserted, or deleted ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 19:26 |
|
||
|
почему так происходит?
|
|||
|---|---|---|---|
|
#18+
get_id=this.GetitemNumber(rowsinserted,'id') Этот код выполняемый в событии updateend - есть глупость, поскольку параметр rowinserted - показывает количество операций INSERT выполненных в результате исполнения ф-ции update(). Очень хорошо, что совет ASCRUS'a Вам помог, но причина всетаки не в sqlca.autocommit = true. В процессе выполненеия транзакции (до commit или rollback) dw после update() всё равно получит значение для поля с автоприращением (Autoincrement). Другое дело, что в после выполненеия commit - запись будет сохранена в БД, а после rollback - нет. Как-то у меня проскакивала такая ситуация (После выполнения update(), в dw не получало значения для identity колонки). В качестве СУБД была ASA 7. Клиент работал под Windows 98 SE Rus. Доступ к БД был через ODBC. Под W2K такого замечено не было. К счастью или сожалению, разобраться не удалось, так как после установки последних EBF на ASA 7 и PB 9 проблема исчезла. Первое, что бы я сделал, случись у меня такое вновь: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2004, 06:20 |
|
||
|
почему так происходит?
|
|||
|---|---|---|---|
|
#18+
Мдя... Сильно извиняюсь, за то, что гупость сморозил... // Эх, вот она, - невнимательность... :-( --- С уважением, IKAR ikarhomecenter@narod.ru IkarHomeCenter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2004, 11:09 |
|
||
|
|

start [/forum/topic.php?fid=15&fpage=94&tid=1338695]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 138ms |

| 0 / 0 |
