Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PowerBuilder Новый топик    Ответить
 Метод InsertRow()  [new]
G
Guest
Добрый день.
Работаю с базой Oracle. Проблема - с методом InsertRow(). Метод правильно инициализирует поля значениями, задаными в базе по умолчанию. На экране я вижу их. Но реально, когда получаешь значение колонки DW в переменную, там оказывается пустое значение, т.е.

int i,val
i=dw.InsertRow(0)
val=dw.Object.col[i]
Значение val оказывается равным null, а на экране dw.Object.col[i] равна 0.
И, если пользователь не меняет эту колронку и в базу отправляется значение по умолчанию, а колонка не допускает пустых значений, то выдаётся соответствующая ошибка: колонка col не может принимать значение null.

Объясните, пжт, где, в таком случае, хранятся проинициализированные значения для вновь добавленной строки, которые я вижу на экране. Метод AcceptText() не помогает.
Спасибо.
6 апр 11, 10:27    [10477452]     Ответить | Цитировать Сообщить модератору
 Re: Метод InsertRow()  [new]
PaulJB
Member

Откуда: Киев
Сообщений: 737
В списке Updateable Columns Эта колонка отмечена?
6 апр 11, 12:35    [10478521]     Ответить | Цитировать Сообщить модератору
 Re: Метод InsertRow()  [new]
VanoR
Member

Откуда: оттуда
Сообщений: 711
Update properties датавинды нужно смотреть
если не поможет, то тупо триггер на таблицу повесить
6 апр 11, 12:39    [10478554]     Ответить | Цитировать Сообщить модератору
 Re: Метод InsertRow()  [new]
G
Guest
Да, в списке updatable columns эта колонка отмечена. Потому то она и попадает в команду update, которая и выдаёт ошибку. Иначе бы, если бы в update-е не было этой колонки, база бы сама вставила значение по умолчанию.
6 апр 11, 12:52    [10478693]     Ответить | Цитировать Сообщить модератору
 Re: Метод InsertRow()  [new]
Shtuckenshnuder
Member

Откуда: г. Киев
Сообщений: 75
>>задаными в базе по умолчанию

В базе или в DW? Если в базе, то не нужно включать колонку в UPDATE.
Попробуй поставить значения по умолчанию в свойствах колонки DW. То, что ты видишь на экране, скорее всего свойства Format
6 апр 11, 13:04    [10478810]     Ответить | Цитировать Сообщить модератору
 Re: Метод InsertRow()  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6610
Shtuckenshnuder
>>задаными в базе по умолчанию

В базе или в DW? Если в базе, то не нужно включать колонку в UPDATE.

Это абсолютно некорректный совет.
Все изменяемые колонки должны быть включены для update.
6 апр 11, 13:16    [10478920]     Ответить | Цитировать Сообщить модератору
 Re: Метод InsertRow()  [new]
Shtuckenshnuder
Member

Откуда: г. Киев
Сообщений: 75
Это я к тому сказал, что если в БД установлено значение по умолчанию, то оно будет устанавливаться только в том случае если колонка не включена в UPDATE.
А вообще разработчик сам решает, нужно изменять колонку или нет. Это не есть тема данного обсуждения...
6 апр 11, 13:30    [10479016]     Ответить | Цитировать Сообщить модератору
 Re: Метод InsertRow()  [new]
PaulJB
Member

Откуда: Киев
Сообщений: 737
Какой формат (значение свойства Format) отображения колонки Col в DW и тип ее редактора ?
6 апр 11, 13:43    [10479115]     Ответить | Цитировать Сообщить модератору
 Re: Метод InsertRow()  [new]
G
Guest
Спасибо за помощь. Похоже, эти значения действительно не хранятся в буферах, а просто отображаются на экране.
6 апр 11, 15:45    [10480245]     Ответить | Цитировать Сообщить модератору
 Re: Метод InsertRow()  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6610
G
Спасибо за помощь. Похоже, эти значения действительно не хранятся в буферах, а просто отображаются на экране.

Нет. Если значение из столбца отображается, то оно есть в буфере.
Что за "эти значения" ? Где вы их задаете?
6 апр 11, 16:21    [10480599]     Ответить | Цитировать Сообщить модератору
 Re: Метод InsertRow()  [new]
PaulJB
Member

Откуда: Киев
Сообщений: 737
У вопрошающего, возможно, в формате отображения для колонки установлено "отображать 0 для значений NULL", ибо про содержимое колонки он судит по отображению на экране.
6 апр 11, 16:42    [10480797]     Ответить | Цитировать Сообщить модератору
Все форумы / PowerBuilder Ответить