|
![]() |
#1 |
Administrator
|
1. ttsbegin
2. у курсора вызывается метод selectForUpdate 3. делается выборка (select) по курсору 4. делается присвоение нового значения 5. курсор.update() 6. ttscommit Это изнутри аксапты. В COM д.б. похожая логика. Но если не получится - можно сделать класс, которому передавать новое значение. Класс уже вызывать через COM Кстати - я не обратил сразу внимание - у вас QueryRun. Тогда там все посложнее. У датасорса, который нужно обновить нужно поставить свойство update(true) и у QueryRun - userupdate(true). Все это нужно делать внутри ttsbegin/ttscommit А дальше - уже внутри QueryRun - делается курсор.update()
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 18.04.2006 в 11:39. |
|
![]() |
#2 |
Участник
|
![]()
Спасибо.
Делаю так: Код: ax.TTSBegin(); IAxaptaObject oDataSourceSales= (IAxaptaObject)oQuery.Call("AddDataSource", iSalesTableID , Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing); oDataSourceSales.Call("Update",true,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing); IAxaptaObject oQueryRun = ax.CreateObject("QueryRun", oQuery,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing); oQueryRun.Call("UserUpdate", true,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing); while ((bool)oQueryRun.Call("Next",Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing)) { IAxaptaRecord rec = (IAxaptaRecord)oQueryRun.Call("GetNo", 1,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing); if(i==2) { rec.set_field("SalesName","SOME NEW VAL"); rec.DoUpdate(); } } ax.TTSCommit(); Как же все неудобно то... |
|
![]() |
#3 |
Administrator
|
Цитата:
Сообщение от murad
Как я понимаю, выставление update=true для DataSource и userUpdate=true для QueryRun и означает "SELECTFORUPDATE"?
Как же все неудобно то... для простого select - все немного попроще.
__________________
Возможно сделать все. Вопрос времени |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от sukhanchik
У датасорса, который нужно обновить нужно поставить свойство update(true) и у QueryRun - userupdate(true).
Хотя может быть там по дефолту стоит QueryRun - userupdate(true). |
|
|
За это сообщение автора поблагодарили: murad (1). |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|