Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PowerBuilder Новый топик    Ответить
 SetItemStatus method (DataWindows)  [new]
Kuz'ma
Guest
PB 9.0.1 b(7119, 7151, 7191, 7204)

Вопрос:

Можно-ли изменить статус полей DW в новой строке (после выполнения команды INSERT), но до ввода каких-либо данных, со значения "NotModified!" на "DataModified!", и при этом строка должна быть "NewModified!"?

Судя по хэлпу можно, но фактически не получается!!!
25 июн 04, 10:29    [764869]     Ответить | Цитировать Сообщить модератору
 Re: SetItemStatus method (DataWindows)  [new]
Guest_2
Guest
А в чем трудности?
25 июн 04, 10:56    [764990]     Ответить | Цитировать Сообщить модератору
 Re: SetItemStatus method (DataWindows)  [new]
Kuz'ma
Guest
to Guest_2

Не получается изменить статус колонок на новой строке!
25 июн 04, 11:13    [765062]     Ответить | Цитировать Сообщить модератору
 Re: SetItemStatus method (DataWindows)  [new]
Guest_2
Guest
Странно, но все работает. PB 9.0.1.7204

Integer  li_retval
Long     ll_row
//Добавить строку
ll_row = dw_1.insertRow(0)
dw_1.scrollToRow(ll_row)
//Изменить статус поля 1
li_retVAl =  dw_1.setItemstatus(ll_row, 1, primary!, dataModified!)
if  li_retVal = 1 then
	messageBox("dataModified!","Ok")
end if	
//Изменить статус строки
li_retVAl = dw_1.setitemStatus(ll_row, 0, primary!, newModified!)
if  li_retVal = 1 then
	messageBox("newModified!","Ok")
end if
25 июн 04, 13:53    [765788]     Ответить | Цитировать Сообщить модератору
 Re: SetItemStatus method (DataWindows)  [new]
Kuz'ma
Guest
to Guest_2

li_retval - это конечно хорошо, однако, если вы посмотрите значения dwi
DWIteStatus dwi

dwi = dw_1.getItemstatus(ll_row, 1, primary!)
после изменения статуса, то убедитесь, что значение не поменялось!!!
25 июн 04, 16:43    [766509]     Ответить | Цитировать Сообщить модератору
 Re: SetItemStatus method (DataWindows)  [new]
Guest_2
Guest
Точно, похоже, что так и есть.
Позвольте поинтересоваться, - а зачем всё это нужно (где это может пригодиься)?
25 июн 04, 18:37    [766999]     Ответить | Цитировать Сообщить модератору
 Re: SetItemStatus method (DataWindows)  [new]
Kuz'ma
Guest
Guest_2
Позвольте поинтересоваться, - а зачем всё это нужно (где это может пригодиься)?


Вам скорее не пригодится. А нужно это для определенных операций, связанных с БД ORACLE.
25 июн 04, 19:07    [767036]     Ответить | Цитировать Сообщить модератору
 Re: SetItemStatus method (DataWindows)  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
автор
если вы смотрите значения dwi
в debuggerе, то скорее всего это известный баг debuggerа - не показывать правильно некоторые enumerated values.
А если ко всему прочему не валять дурака, а чётко написать для КАКИХ определенных операций, связанных с БД ORACLE вам это нужно, то возможно будет больше пользы для всех участников форума...
25 июн 04, 19:20    [767043]     Ответить | Цитировать Сообщить модератору
 Re: SetItemStatus method (DataWindows)  [new]
Kuz'ma
Member

Откуда:
Сообщений: 3
Странно то, что если это баг с ним никто не сталкивался?.
В Runtime то же самое.

А на счет
автор
не валять дурака

так его никто не валяет, операции такие: INSERT, UPDATE, DELETE.
Вас устроит такой ответ, Филлип?
Хотя это некоторое отклонение от темы ( SetItemStatus method (DataWindows)), вы не находите?
25 июн 04, 20:31    [767101]     Ответить | Цитировать Сообщить модератору
 Re: SetItemStatus method (DataWindows)  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
Чем операции INSERT, UPDATE, DELETE для БД ORACLE, производимые из DataWindows с точки зрения ItemStatus отличаются от тех же против других БД?
Что вы пытаетесь сделать? Гарантировать, что нововставленный ряд в DataWindow будет INSERTан в ORACLE даже если юзер ничего в нём не поменял? Или что-то ещё?
Если вы поясните, что именно вы пытаетесь сделать, вместо того чтобы демонстрировать блуждание в трёх соснах SetItemStatus methodа, то быстрее получите ответ на настоящий вопрос, а не на тот, который вы тут напечатали...
25 июн 04, 20:43    [767112]     Ответить | Цитировать Сообщить модератору
 Re: SetItemStatus method (DataWindows)  [new]
Guest_2
Guest
автор
Вам скорее не пригодится. А нужно это для определенных операций, связанных с БД ORACLE.

То, что не пригодится - это точно.
Но Филипп, абслютно прав, говоря:
автор
Если вы поясните, что именно вы пытаетесь сделать, вместо того чтобы демонстрировать блуждание в трёх соснах SetItemStatus methodа, то быстрее получите ответ на настоящий вопрос, а не на тот, который вы тут напечатали...

К тому же, если честно, то я не вижу никаких страшных багов со стороны PB.
Вы можите совершенно спокойно изменить состояние из new! --> newModified!
Это будет являться основанием для выполнения INSERT'a.
Собственно говоря это же делается в случае если исходная строка в DW имеет состояние new!, а состояние какого-либо поля меняется с notModified! на dataModified!
Кроме того, если уж сильно хочется изменить состояние пустого поля в новой строке на dataModified!, то выполняйте так:
li_retVAl = dw_1.setitemStatus(ll_row, 0, primary!, newModified!)
li_retVAl = dw_1.setitemStatus(ll_row, 0, primary!, dataModified!)
li_retVAl =  dw_1.setItemstatus(ll_row, 1, primary!, dataModified!)
28 июн 04, 07:25    [767941]     Ответить | Цитировать Сообщить модератору
Все форумы / PowerBuilder Ответить