|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
Проблема заключается в том, что не сохраняются изменения в базу данных (ASA8). Скрипт таков: CurDW=Parent.dw_Catalogs CurDW.of_SetUpdateable(True) ll_newrow = CurDW.InsertRow(0) CurrID=CurDW.SetItem(ll_newrow, "CatalogParentID", targetid) CurrID=CurDW.SetItem(ll_newrow, "CatalogName", targetname) CurrID=CurDW.SetItem(ll_newrow, "CatalogLevel", targetlevel) rtn = CurDW.of_Update(True,True) IF rtn = 1 AND SQLCA.SQLNRows > 0 THEN COMMIT USING SQLCA; CurrID=CurDW.GetItemNumber(ll_newrow,"CatalogID") ELSE ROLLBACK USING SQLCA; END IF Update и все SetItem проходят успешно, а вот SQLNRows возвращает ноль в любом случае. Если все же применить Commit , то в базу попадает лишь CatalogName. UpdateProperties выставлены верно. Использование в том же месте следующего скрипта успешно. Insert into Subjects (SubjectParentID,SubjectLevel,SubjectName, SubjectIsVisible) VALUES (:TargetID,:TargetLevel,:TargetName,1) USING SQLCA ; IF SQLCA.SQLNRows > 0 THEN COMMIT USING SQLCA ; END IF В чем моя ошибка? Где покопать? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2004, 02:49 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
Пардон, опечатка вышла... Insert into Catalogs (CatalogParentID,CatalogLevel,CatalogName) VALUES (:TargetID,:TargetLevel,:TargetName) USING SQLCA ; IF SQLCA.SQLNRows > 0 THEN COMMIT USING SQLCA ; END IF ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2004, 02:52 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
Судя по авторв базу попадает лишь CatalogName Могу сделать предоложение : У колонок есть свойство DbName . По моему , нужно его проверить. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2004, 10:39 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
С dbname все в норме ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2004, 11:20 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
Может тогда все же посмотреть на соответствие типов данных для DW колонок и параметров ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2004, 11:39 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
Я вот точно не помню, какие влаги выствляются при такой вставке данных, но можно попробовать с помощью SetItemStatus явно поменять статус вставленных данных, чтобы они были новыми. Ну, типа, чтобы PB знал, что это новые данные, после этого можно будет смело запускать Update . Попробуй, может поможет... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2004, 12:38 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
А в DW Painter в Update Properties какие колонки отмечены как "Updateable Columns" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2004, 13:11 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
1) авторrtn = CurDW.of_Update(True,True) IF rtn = 1 AND SQLCA.SQLNRows > 0 THEN Функция DW Update() не меняет состояние свойств объекта транзакции. Поэтому это условие не имеет смысла. Используй событие updateend для проверки кол-ва задействованных строк, и событие dberror для обработки ошибок. 2) автор Если все же применить Commit , то в базу попадает лишь CatalogName. UpdateProperties выставлены верно. Т.е. запись вставляется, но в остальных полях - NULL ? Какой запрос генерится при update() (событие sqlpreview) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2004, 15:09 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
А это случаем не первоапрельская шутка ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2004, 17:15 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
а проверить слабо? :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2004, 20:42 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
Это не шутка( по крайней мере я это не планировал, правда в Одессе шутки этим и отличаются!!!))))) Событие SQLPREVIEW показывает следующий результат sqlsyntax INSERT INTO "catalogs" ( "catalogname", "catalogownerid", "cataloglevel", "catalogparentid" ) VALUES ( ?, ?, ?, ? ) и результат вставки 1!! Updateable columns - все кроме catalogid(primary key) и типы данных проверпены и перепроверены... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2004, 02:20 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
Сделай Export DW и пришли мне на пошту vmv_gaz@yahoo.com полученый файлик ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2004, 08:42 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
Если "...catalogid(primary key)... " не является автоинкрементом - то правильно на тебя матюкается SQL :) Ежели автоинкремент - то выложи скрипт генерации данной таблицы и скрипт описания DW (Edit source). ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2004, 14:03 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
Еще раз... попробуй убрать из условия SQLNRows. ну например так автор................. IF rtn = 1 /*AND SQLCA.SQLNRows > 0 */THEN COMMIT USING SQLCA; CurrID=CurDW.GetItemNumber(ll_newrow,"CatalogID") ELSE ROLLBACK USING SQLCA; END IF .................. Тогда все коммититься и сохраняется. SQLNRows - специфично работает для каждой конкретной СУБД. Ну это по быстрому... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2004, 14:45 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
use function: dw_1.of_SetTransObject(<sqlca - transaction>) or dw_1.SetTransObject(<sqlca-transaction>) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2004, 14:49 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
Дело не в транзакции. SQLNRows действительно возвращает всегда 0 под АСА 8.02. Это может лечится настройками коннекта (а может и нет...). Предлагаю просто на флаг не смотреть ентот. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2004, 15:05 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
авторSQLNRows Long The number of rows affected (the database vendor supplies this number, so the meaning may not be the same in every DBMS). ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2004, 15:08 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
Отвечу всем: 1) catalogid автоинкремент 2) на SQLnrows уже и не обращал внимания, т.к. действительно читал за его поведение. Я ж не зря написал, шо когда комитил его насильно, то получал вставку с незаполненными полями. Причина, собственно говоря, была в том, что я первоначально создавал объект DW без полей CatalogLevel и CatalogParentID. Затем я их добавил и они оказались невыбранными в Updateable Columns. Позже я это увидел и исправил, но самое противное, шо PB этого не заметил!!!! А я то этого не знал... Вот я и продолжал веселиться со всякой ерундой, пока не тронул шо-то, шо заставило его обновить свою информацию. В итоге все работает, хотя с моей точки зрения ничего и не менялось. Может я просто перезапустил комп... (у меня ноут и я его обычно не выключаю совсем). Единственное шо меня смущает - это почему в SQLPreviw все же прописано INSERT INTO "catalogs" ( "catalogname", "catalogownerid", "cataloglevel", "catalogparentid" ) VALUES ( ?, ?, ?, ? ) при полностью правильной отработке? Впрочем это меня просто смущает - готов об этом забыть до следующей проблемы... Как всегда всем спасибо за участие! PS. Если это и была шутка, то скорее всего PBuildera!!! Видать среди разработчиков немало комиков! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2004, 22:10 |
|
Помогите разобраться с Update Datawindow
|
|||
---|---|---|---|
#18+
авторЕдинственное шо меня смущает - это почему в SQLPreviw все же прописано INSERT INTO "catalogs" ( "catalogname", "catalogownerid", "cataloglevel", "catalogparentid" ) VALUES ( ?, ?, ?, ? ) при полностью правильной отработке? Тебя что именно смущает, вопросительные знаки, что ли? Тогда в хелпе про DisableBind DBParm parameter почитай... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2004, 23:27 |
|
|
start [/forum/topic.php?fid=15&fpage=107&tid=1339211]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
118ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 225ms |
0 / 0 |