powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как присвоить null колонке dw неизвестного типа ? pb9
13 сообщений из 13, страница 1 из 1
Как присвоить null колонке dw неизвестного типа ? pb9
    #36088577
Посоветуйте
Как присвоить null колонке dw неизвестного типа ? pb9
В смысле поэлегантнее без перебора всех возможных типов колонок

Спасибо
...
Рейтинг: 0 / 0
Как присвоить null колонке dw неизвестного типа ? pb9
    #36089847
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
any mynullany
SetNull(mynullany)
dw_whatever.SetItem(row, whatevercolumn, mynullany)
...
Рейтинг: 0 / 0
Как присвоить null колонке dw неизвестного типа ? pb9
    #36089951
maxATC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп
Код: plaintext
1.
2.
any mynullany
SetNull(mynullany)
dw_whatever.SetItem(row, whatevercolumn, mynullany)


Any не прокатывает, всё равно надо приводить mynullany к типу whatevercolumn.
...
Рейтинг: 0 / 0
Как присвоить null колонке dw неизвестного типа ? pb9
    #36089953
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Филипп
А точно никаких проблем с типами не будет?
То что не ругнется это понятно, а то может все-таки длинным путем пойти - определить тип колонки и null соответствующего типа?
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Как присвоить null колонке dw неизвестного типа ? pb9
    #36090013
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxATC,

Возможно с SetItem (несмотря на то что он определён как integer dwcontrol.SetItem ( long row, integer/string column, any value )), может и не пройдёт, но с dot notation пройдёт точно.
...
Рейтинг: 0 / 0
Как присвоить null колонке dw неизвестного типа ? pb9
    #36090049
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил проверить, что за проблема, т.к. сам раньше не сталкивался с этим.
И действительно, в PB9, через SetItem значение не меняется, а через Dot notation - "Type mismatch accessing external object property ".
Т.е. проблема существует.
...
Рейтинг: 0 / 0
Как присвоить null колонке dw неизвестного типа ? pb9
    #36090059
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда так (если анальность мешает тип определить):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
long kounter, rows
any nulls[]
rows = dw_1.Rowcount( )
nulls =  dw_1.object.last_name.primary
for kounter =  1  to rows	
	SetNull(nulls[kounter]) 
NEXT
dw_1.object.last_name.primary = nulls
...
Рейтинг: 0 / 0
Как присвоить null колонке dw неизвестного типа ? pb9
    #36090075
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФилиппТогда так (если анальность мешает тип определить):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
long kounter, rows
any nulls[]
rows = dw_1.Rowcount( )
nulls =  dw_1.object.last_name.primary
for kounter =  1  to rows	
	SetNull(nulls[kounter]) 
NEXT
dw_1.object.last_name.primary = nulls


Да, это работает.
...
Рейтинг: 0 / 0
Как присвоить null колонке dw неизвестного типа ? pb9
    #36090077
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и понятно, что в общем случае (при нежелании хардкодать dot notation), можно так:
Код: plaintext
1.
2.
3.
4.
integer colid //определяется из имени колонки через describe (или приходит как аргумент dwo.id)
any tobenull
tobenull = dw_whatever.object.data[row, colid] 
SetNull(tobenull)
dw_whatever.object.data[row, colid] = tobenull
...
Рейтинг: 0 / 0
Как присвоить null колонке dw неизвестного типа ? pb9
    #36090081
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если сократить до минимума то так:
Код: plaintext
1.
2.
3.
4.
Any la_null
la_null = dw_1.Object.col[row]
SetNull(la_null)
dw_1.Object.col[row] = la_null // SetItem тоже работает
...
Рейтинг: 0 / 0
Как присвоить null колонке dw неизвестного типа ? pb9
    #36090082
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyЕсли сократить до минимума то так:

О, Филипп уже и сам все сократил :)
...
Рейтинг: 0 / 0
Как присвоить null колонке dw неизвестного типа ? pb9
    #36090084
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И убрал хардкодинг имени колонки :-))
...
Рейтинг: 0 / 0
Как присвоить null колонке dw неизвестного типа ? pb9
    #36091382
Спасибо - работает.

Не додумался сам в any пихнуть данные колонки
чтоб она тип запомнила а потом null-ить

Коллективный разум - СИЛА!
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как присвоить null колонке dw неизвестного типа ? pb9
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]