powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / <<$C(0)>>
5 сообщений из 5, страница 1 из 1
<<$C(0)>>
    #35525856
bn1978
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кто нибудь сталкивался?
Если в поле резульсета не оказывается значения, метод GetData забивает его значением "<<$C(0)>>", хуже всего то что его невозможно проверить и заменить на пустую строку, которая в принципе там доолжна быть.
Код: 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.
                 s sql = "SELECT * FROM "_Document_" WHERE ID = "_IDDOC  
                  s DocValues = ..ReturnSQLResultSet(sql) // подстановка значений из документа
                  S columns = DocValues.GetColumnCount()
                  while DocValues.Next(){ 
                  
                        For col =  1 : 1 :columns {
                            s ColName = "["_DocValues.GetColumnName(col)_"]"  
                            if $FIND(Expression,ColName) '= 0 {
    	                        s FieldDate = ""
    	                        s FieldDate = DocValues.GetData(col)
                                         // не работают
    	                        //if FieldDate = "<<$C(0)>>" set FieldDate = ""
                                        //s FieldDate = $G(FieldDate )
                                       // if $FIND(FieldDate,"$C") '=  0   set FieldDate = ""

    	                        s ^aa(col) = FieldDate
	                            if FieldDate = "" { // Если значение отсутствует
	                               S Expression=$TRANSLATE(Expression,ColName," = NULL")
	                            } else{
	                               S Expression=$TRANSLATE(Expression,ColName,FieldDate)
		                        }
                            }
                            
                          } 
                  }

...
Рейтинг: 0 / 0
<<$C(0)>>
    #35526297
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что делает код что то не очень понял

1- сравнивать на NULL вне SQL странно - если поле может быть пустым - используйте ISNULL IFNULL конструкции

2 - GetData вполне может возращать $C(0) ... если в глобале храниться именно $C(0) - советую проверит. Причем для SQL это значение не является NULL или пустой строкой.

Появляется при использовании конктрукций

INSERT INTO SQLUser.Test (Code,Field1) VALUES (1,'')

вместо

INSERT INTO SQLUser.Test (Code,Field1) VALUES (1,NULL)

или

INSERT INTO SQLUser.Test (Code) VALUES (1)
...
Рейтинг: 0 / 0
<<$C(0)>>
    #35526395
bn1978
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Удалось сверить так :

Код: plaintext
1.
if FieldDate = $C( 0 )
...
Рейтинг: 0 / 0
<<$C(0)>>
    #35526505
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это то понятно ... только никакого "метод GetData забивает его значением "<<$C(0)>>"" нет - у вас в глобале $C(0) записан скорее всего.
...
Рейтинг: 0 / 0
<<$C(0)>>
    #35526554
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bn1978
Код: plaintext
1.
2.
              S Expression=$TRANSLATE(Expression,ColName," = NULL")
	 S Expression=$TRANSLATE(Expression,ColName,FieldDate)

Я, честно говоря, не понял эту конструкцию. Или в новых версиях
$TR работает уже не посимвольно?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / <<$C(0)>>
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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