Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Странности со сложением строк. / 11 сообщений из 11, страница 1 из 1
06.10.2006, 10:54
    #34036830
Дремучий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности со сложением строк.
Собственно это не проблема, но что-то очень странное.

Если использую
Код: plaintext
1.
ls_modify = ls_ColName + '.protect=' + string( ll_protect )
ls_temp = dw_1.modify( ls_modify )
То получаю ошибку. Причина ошибки в строке ls_modify. По совершенно непонятной для меня причине она формируется не в виде "{Имя_столбца}.protect=1", а в виде "{Имя_столбца}{имя_объекта}1"!!!

Я понимаю, что поверить в это практически невозможно (если бы я не видел это своими глазами в отладчике, то вряд ли бы поверил), но так и есть.

Когда же я изменил на:
Код: plaintext
1.
2.
3.
ls_modify = ls_ColName
ls_modify += '.protect='
ls_modify += string( ll_protect )
ls_temp = dw_1.modify( ls_modify )
То получил в ls_modify на выходе, что и ожидал: "{Имя_столбца}.protect=1"

Собственно вопрос - что это? И как это можно понимать???

PB 9.0 Build 5507.
...
Рейтинг: 0 / 0
06.10.2006, 11:02
    #34036873
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности со сложением строк.
Может все-таки:
{Имя_столбца}.protect='1'
...
Рейтинг: 0 / 0
06.10.2006, 11:35
    #34037016
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности со сложением строк.
ДремучийСобственно это не проблема, но что-то очень странное.

Если использую
Код: plaintext
1.
ls_modify = ls_ColName + '.protect=' + string( ll_protect )
ls_temp = dw_1.modify( ls_modify )
То получаю ошибку. Причина ошибки в строке ls_modify. По совершенно непонятной для меня причине она формируется не в виде "{Имя_столбца}.protect=1", а в виде "{Имя_столбца}{имя_объекта}1"!!!

Я понимаю, что поверить в это практически невозможно (если бы я не видел это своими глазами в отладчике, то вряд ли бы поверил), но так и есть.

PB 9.0 Build 5507.

А запостите сюда PBL с минимальным примером где это повторяется.

Full rebuild устраняет проблему?
Переход на другой билд PB?
...
Рейтинг: 0 / 0
06.10.2006, 12:00
    #34037122
Дремучий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности со сложением строк.
2 spas2001
spas2001Может все-таки:
{Имя_столбца}.protect='1'
Нет. Как раз "{Имя_столбца}.protect=1". Даже специально в отладчике сейчас посмотрел. Именно как я указал. И это сейчас работает.

Anatoly Moskovsky
Anatoly Moskovsky А запостите сюда PBL с минимальным примером где это повторяется.

Full rebuild устраняет проблему?
Переход на другой билд PB?
У меня подобная проблема повторилась дважды (в разных местах). Но во второй раз я уже знал в чем дело и "разбил" строку. В одном случае странный кусок находится внутри одного из событий, а в другом внутри маленькой функции.

Full rebuild пробовал в первую очередь - не помогло.
Другие билды не пробовал. Собственно возможности экспериментировать нет.

Могу выложить функцию, но не уверен, что это что-то скажет:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
/*
	long of_set_protect (string as_column_name, boolean ab_switch)
	Параметры:	as_column_name[]				- название колонки
					ab_switch						- флаг
	
	Назначение:	Установить свойство protect для указанного поля в DS (ids_where_simple)
	Примечание:	
	Возвращает:	SUCCESS (1)		- успешно
					FAILURE (-1)	- ошибка
	Дата:			04.10.2006
*/
long		ll_return_code = FAILURE
long		ll_protect
string	ls_modify
string	ls_result

if ab_switch then
	ll_protect = inv_const.il_protected
else
	ll_protect = inv_const.il_not_protected
end if

ls_modify = trim( as_column_name )
ls_modify += '.protect='
ls_modify += string( ll_protect )

ls_result = ids_where_simple.modify( ls_modify )

if ls_result = '' then ll_return_code = SUCCESS

return ll_return_code
Это текущий рабочий вариант. Но если "склеить" вычисление ls_modify, то получаю бред. Только что проверил в отладчике.
...
Рейтинг: 0 / 0
06.10.2006, 13:44
    #34037561
savosin_sergey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности со сложением строк.
утилита DWSyntax утверждает, что надо синтакс такой:
Код: plaintext
<DW Control Name>.Modify("<Columnname>.Protect='<0 - False, 1 - True>'")
или
Код: plaintext
<DW Control Name>.Object.<Columnname>.Protect='<0 - False, 1 - True>'

то есть, с кавычками
...
Рейтинг: 0 / 0
06.10.2006, 13:46
    #34037580
savosin_sergey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности со сложением строк.
хотя я понял, что вопрос был не в этом
...
Рейтинг: 0 / 0
06.10.2006, 15:04
    #34038018
Дремучий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности со сложением строк.
savosin_sergeyутилита DWSyntax утверждает, что надо синтакс такой:

За что купил, за то и продаю. См. картинку.


Хм.. сейчас хотел так же выложить картинку с бредом... не смог повторить! Прямо "генеральский эффект" какой-то. :(
...
Рейтинг: 0 / 0
06.10.2006, 15:11
    #34038047
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности со сложением строк.
savosin_sergeyутилита DWSyntax утверждает, что надо синтакс такой:
Код: plaintext
<DW Control Name>.Modify("<Columnname>.Protect='<0 - False, 1 - True>'")
или
Код: plaintext
<DW Control Name>.Object.<Columnname>.Protect='<0 - False, 1 - True>'

то есть, с кавычками

Насколько я помню, если значение свойства по смыслу число, то его можно записывать и в кавычках и без них.
...
Рейтинг: 0 / 0
06.10.2006, 16:04
    #34038259
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности со сложением строк.
Когда как
Я же не утверждал, что все это из-за кавычек
Только в некоторых случаях из-за этого не работало
...
Рейтинг: 0 / 0
06.10.2006, 16:07
    #34038274
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности со сложением строк.
Совершенно тупой случай был - создалась колонка большими буквами, разницы не должно быть никакой - глючило по страшному
...
Рейтинг: 0 / 0
06.10.2006, 16:11
    #34038300
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности со сложением строк.
В ls_error точно ничего нет?
А то на картинке не видно
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Странности со сложением строк. / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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