Обращение к таблице открытой в другой рабочей области | |
---|---|
S Alex Автор Сообщений: 3 Дата регистрации: 04.10.2018 |
Пишу процедуру для большого проекта и нужно обращаться к таблицам через алиас.
Пишу такой код:
Command contains unrecognized phrase/keyword. Помогите пожалуйста. |
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
Какая совершенно оригинальная задача... Зачем/почему sys(2015)? Из-за боязни пересечения имен? Делаете все в одной сессии данных? Использовать предназначенные для преодоления этой проблемы средства не хотите потому, что не знаете про них? Или религия не позволяет? ------------------ Лень - это неосознанная мудрость. |
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
S Alex Автор Сообщений: 3 Дата регистрации: 04.10.2018 |
Да, задача простая. Проект закрытый, какие имена там использованы неизвестно, а мне нужно просто написать процедуру выгрузки в другую таблицу вот я и использовал SYS(2015). К сожалению, другого способа обратится к полю таблицы открытой в другой области как "имя таблицы"."имя поля" или "имя таблицы"->"имя поля" не нашел. |
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
Еще раз - что запрещает использовать средства, предназначенные для избежания конфликта имен? Цитата:А вас не про это спрашивали. См. предыдущую цитату. Кстати, показанный вами код легко переделывается в не требующий обращения к данным способом имя_таблицы.имя_поля ------------------ Лень - это неосознанная мудрость. |
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
Сергей777 Сообщений: 8 Дата регистрации: 26.05.2015 |
Лучше так :
USE Table1.DBF IN 0 ALIAS t1 USE Table2.DBF IN 0 ALIAS t2 ZAP IN t2 SELECT t1 SCAN APPEND BLANK IN t2 REPLACE fio WITH t1.fio IN t2 ENDSCAN |
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
Сергей777 Сообщений: 8 Дата регистрации: 26.05.2015 |
Если алиасы заданы переменными, то так :
REPLACE fio WITH &t1..fio IN (m.t2) или REPLACE fio WITH Eval(m.t1 + '.fio') IN (m.t2) |
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
Ну и, разумеется, без макроподстановки жизнь не мила... А обращение имя_таблицы.имя_поля, хоть и через макро, и через почти макро, единственное возможное...
------------------ Лень - это неосознанная мудрость. Исправлено 1 раз(а). Последнее : ssa, 04.10.18 15:49 |
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
Сергей777 Сообщений: 8 Дата регистрации: 26.05.2015 |
Не совсем понял, если имя_таблицы задано переменной, как можно ещё изобразить ?
|
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
Вариант замены 1:
------------------ Лень - это неосознанная мудрость. Исправлено 1 раз(а). Последнее : ssa, 04.10.18 16:21 |
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
Да-да, думать надо только всегда в одну и ту же сторону - в лоб. Искать способы БЕЗ указания ВМЕСТЕ в одной структуре алиас.поле - категорически запрещается. ------------------ Лень - это неосознанная мудрость. |
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
Сергей777 Сообщений: 8 Дата регистрации: 26.05.2015 |
Да, круто, наверное, этого хватит.
|
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
Taran Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
|
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
------------------ Лень - это неосознанная мудрость. |
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
S Alex Автор Сообщений: 3 Дата регистрации: 04.10.2018 |
Спасибо Всем за помощь. Вопрос решен.
|
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
Как? Как обычно через макро? ------------------ Лень - это неосознанная мудрость. |
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Сергей, неужели тебя это действительно всё ещё волнует
Ты сделал всё что мог - далее уже выбор автора темы. ------------------ WBR, Igor |
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
akvvohinc Сообщений: 4218 Откуда: Москва Дата регистрации: 11.11.2008 |
Вы считаете, что функция SYS(2015) более надежна, чем любой придуманный вами произвольный буквенно-цифровой набор аналогичной длины? Думаю, что даже произвольный алиас длиной 4-5 вполне надежен, чтобы не встретиться в "большом проекте". Придумайте свою систему коротких алиас-имен - очень маловероятно, что она совпадет с чьей-то: USE Table1.DBF IN 0 ALIAS МОЯ01 USE Table2.DBF IN 0 ALIAS МОЯ02 И тогда при необходимости таких REPLACE не придется пользоваться макро или EVAL(). |
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Кто мешает использовать класс Session (или Form с PrivateDataSession - если в данной подзадаче нужна какая-никакая "визуализация процесса" или взаимодействие с пользователем) и вообще забить на то какие алиасы используются в этом антикварном проекте?
------------------ WBR, Igor |
Re: Обращение к таблице открытой в другой рабочей области | |
---|---|
akvvohinc Сообщений: 4218 Откуда: Москва Дата регистрации: 11.11.2008 |
Никто. Но раз объяснение использования SYS(2015) было таким, каким оно было, то можно предположить, что класс Session никогда не использовался (а осваивать его ради такой задачи и я бы не стал). Возможно также, что нам представлена лишь часть "айсберга", а в процедуре используются и вызовы некоторых компонент, работающих с таблицами общей сессии. Иначе и SYS(2015) не нужен - Фокс сам откроет таблицу с некоторым алиасом, отличным от любого уже имеющегося в текущей сессии, который можно сохранить в переменной, если уж это казалось нужным:
Исправлено 1 раз(а). Последнее : akvvohinc, 07.10.18 16:52 |
© 2000-2024 Fox Club  |