Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Прошу помощь ! / 10 сообщений из 10, страница 1 из 1
15.05.2008, 17:48
    #35315273
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощь !
Здравствуйте !

Не могу понять в чем ошибка
Имею сод на Cache':

Код: plaintext
1.
2.
3.
GlNodes() s ret=$Q(@var) Q:ret=""
          s var=ret
          s P1=@ret
          q ret

VB VISM:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
VisM1.Code = "K var"
        VisM1.ExecFlag =  1 
        VisM1.Code = "s var=^NEW(""0016518"",5)"
        VisM1.ExecFlag =  1 
          
        VisM1.Code = "$$GlNodes^glb"
        VisM1.ExecFlag =  1 
        nod = VisM1.Value
        ret = VisM1.P1
    


Именно переменная var не принимает это значение в Cache !!
VisM1.Code = "s var=^NEW(""0016518"",5)"

С такой ситуацией сталкивался и в МСМ-е

Спасибо !
...
Рейтинг: 0 / 0
15.05.2008, 18:45
    #35315466
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощь !
Конец рабочего ....
ВСЕ НЕПРАВИЛЬНО ИЗЛОЖИЛ !!!!

Нужно чтобы переменная var принимала в Cache
значение :

Код: plaintext
1.
2.
3.
4.
DON>set var="^NEWDON(""0016519"",1)"
 
DON>w $Q(@var)
^NEWDON("0016519", 2 )
DON>
...
Рейтинг: 0 / 0
16.05.2008, 10:36
    #35316219
Maksim UM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощь !
а, часом, не нужно добавить кавычки?
Код: plaintext
1.
VisM1.Code = "s var=""^NEW(""0016518"",5)"""
...
Рейтинг: 0 / 0
16.05.2008, 10:48
    #35316262
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощь !
Тогда уж
Код: plaintext
1.
VisM1.Code = "s var=""^NEW(""""0016518"",5)"""""
наверно
...
Рейтинг: 0 / 0
16.05.2008, 10:49
    #35316267
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощь !
Не, вот так:
Код: plaintext
1.
VisM1.Code = "s var=""^NEW(""""0016518"""",5)"""
...
Рейтинг: 0 / 0
16.05.2008, 10:52
    #35316280
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощь !
Код: plaintext
 GlNodes() s ret=$Q(@var) Q:ret=""
=
Код: plaintext
 VisM1.Code = "$$GlNodes^glb"
?
а может
Код: plaintext
 VisM1.Code = "$$GlNodes^glb()"
...
Рейтинг: 0 / 0
16.05.2008, 11:24
    #35316413
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощь !
Так-же и я пробовал разных вариантов - вазвращает "пусто"

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
VisM1.Code = "K var"
        VisM1.Code = "s var=""^NEW(""""0016518"""",5)"""
        VisM1.ExecFlag =  1 
        MsgBox VisM1.Value
        VisM1.Code = "$$GlNodes^glb()"
        VisM1.ExecFlag =  1 
        nod = VisM1.Value
        If nod <> "" Then
        ret = VisM1.P1
    
 
 Info = Replace(Piece(Piece(nod, "(",  2 ), ")",  1 ), ",", "\")
 Info1 = Info & "\" & ret ' Это отдельная (единичная) строка !!!!
...
Рейтинг: 0 / 0
16.05.2008, 12:00
    #35316584
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощь !
Можно глупый вопрос: что вы делате и что хотите получить?

Что вы хоите получить строкой
VisM1.Code = "s var=^NEW(""0016518"",5)"
(var получает значение этого глобала, а не его имя)

Что хотите от
VisM1.Code = "$$GlNodes^glb"
Вы уверены, что эта программа запустится?

nod = VisM1.Value
Откуда берется VisM1.Value?
Я в висм запускаю через Execute, а не code/execFlag
Но даже если висм позволяет вычислять значения параметров, то скорее всего execflag для вычисления значения будет другим

По сути дела вы пытаетесь взять имя глобала из глобала ^NEW(""0016518"",5), и по полученному значению (а что там лежит в этом глобале- непонятно) - взять следующий в порядке сортировки.

А еще я рекомендую использовать Vism1.Execute вместо Code/ExecFlag - меньше писанины
...
Рейтинг: 0 / 0
16.05.2008, 14:38
    #35317269
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощь !
Просто при помощи ($Query) в переменную запихиваю следующий индекс, потом, зная индекс
в другую переменную ставлю содержимое
Разбираю это все и создаю таблицу .mdb (Access)

Вопрос вообще-то решил сам (MSM-Activate)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Sod(Ret)
    Set var=Ret
    q
    ; 
glb() ;
     Set ret=$Query(@var) Quit:ret=""
	  Set var=ret
      Quit ret
 		 ;

Просто еще запускаю код

Код: plaintext
m.Do "Sod^glb", Trim(txtBar.Text)

(так работает без проблемб а вот Xecute-нет)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
con.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\db1.mdb;Uid=Admin;Pwd=;"""
With rs
    .ActiveConnection = con
    .LockType = adLockBatchOptimistic
    .CursorLocation = adUseClient
    .CursorType = adOpenDynamic
    .Open "select * from NEWDON3"
End With
        MousePointer = vbHourglass
        
'**********************************************
        m.Do "Sod^glb", Trim(txtBar.Text)
        nod = m.Do("glb^glb")
        If nod <> "" Then
        ret = m.Xecute("w " & nod & "")
 
 Info = Replace(Piece(Piece(nod, "(",  2 ), ")",  1 ), ",", "\")
 Info1 = Info & "\" & ret 
 .....
.......
 
...
Рейтинг: 0 / 0
16.05.2008, 14:38
    #35317273
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прошу помощь !
Спасибо Всем !!!
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Прошу помощь ! / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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