powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / курсоры в рабочих областях
8 сообщений из 8, страница 1 из 1
курсоры в рабочих областях
    #34106173
foxik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго всем дня. Написал такой вот код, чтоб можно было увидеть открытые в данный момент рабочие области:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE CURSOR mycur(q int, nom char( 20 ))
LOCAL lnNombWA

lnNombWA= 1 
DO WHILE NOT (EMPTY(ALIAS(lnNombWA)))
INSERT INTO mycur values( lnNombWA,ALIAS(lnNombWA))
lnNombWA=lnNombWA+ 1 
loop
ENDDO
SELECT mycur
BROWSE


Но почему-то этот код "не видит" курсоров, созданных select"ами из таблиц. Все открытые таблицы исправно заносятся в "mycyr", а курсор только один-собственно сам "mycur". Хотя команды select, use и функция alias по отдельности показывают эти курсоры. Как так?
...
Рейтинг: 0 / 0
курсоры в рабочих областях
    #34106230
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. 32767...
2. loop - ?
3. Зачем?
...
Рейтинг: 0 / 0
курсоры в рабочих областях
    #34106267
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно зачем?
во-первых никто не говорил что используемые рабочие области идут подряд:
Код: plaintext
use mytable in  123 
обычно такие вещи надо видеть только для отладки, для этого есть команда suspend после чего в командном окне пишешь set , причем можно посмотреть любую datasession
...
Рейтинг: 0 / 0
курсоры в рабочих областях
    #34106320
ORAselect
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CREATE CURSOR mycur(q int, nom char(20))
LOCAL lnNombWA,CountAlias
CountAlias = 200 && Или другое значение

lnNombWA=1
DO WHILE lnNombWA<CountAlias
If !Empty(Alias(select(lnNombWA)))
INSERT INTO mycur values(lnNombWA,ALIAS(lnNombWA))
endif
lnNombWA=lnNombWA+1
ENDDO

SELECT mycur
BROWSE

Так попробуй. Только реальное значение алиасов задавай, ведь на самом деле их обычно с десяток - другой
...
Рейтинг: 0 / 0
курсоры в рабочих областях
    #34106321
ORAselect
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ТАК:

SELE select(lnNombWA)
If !Empty(DBF())
INSERT INTO mycur values(lnNombWA,ALIAS(lnNombWA))
endif
...
Рейтинг: 0 / 0
курсоры в рабочих областях
    #34106412
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AUSED() - возвращает массив с номерами и алиасами используемых рабочих областей.

Код: plaintext
1.
2.
3.
4.
5.
LOCAL laUsed( 1 ), lnI
?"Используется рабочих областей", AUSED(laUsed)
FOR lnI =  1  TO ALEN(laUsed, 1 )
	?laUsed[m.lnI, 1 ], laUsed[m.lnI, 2 ]
ENDFOR
...
Рейтинг: 0 / 0
курсоры в рабочих областях
    #34106479
foxik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за Ваши ответы.
Многое разъяснилось. Да, позже я изменил код по примеру тов.ORAselect, установив CountAlias = 20. Получил мешанину. Мне как-то и в голову не пришло, что раб.области могут идти не по порядку. Ведь таблицы открываю через
Код: plaintext
use mytable in  0 
Этот вопрос скорей теоретический, и код этот использую во время отладки.
Приложение делаю любительского уровня, но даже и на таком уровне уже путаюсь в рабочих областях, алиасах и DE'х форм...
...
Рейтинг: 0 / 0
курсоры в рабочих областях
    #34106996
ORAselect
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, именно открываемые DE области и не закрытые по какой-либо причине, по моему примеру можно закрывать. А значение 200 поэтому и предложено, т.к. облати идут не по-порядку.
Успехов!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / курсоры в рабочих областях
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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