for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Лисоводы   всех   стран,  объединяйтесь !!!  

Список Форумов  :: Русский Help
  

Боюсь ошибиться...
Sergey Konoplev

Сообщений: 99
Откуда: Krasnodar
Дата: 13.11.05 19:38:04
С момента появления функции EVALUATE( ), ее советуют применять вместо макроподстановки. Ну и именованное выражение заодно с ней. Вот, например, фраза из Help'a к девятке:
Цитата:
Whenever possible, use EVALUATE( ) or a name expression to replace macro substitution using the & Command. EVALUATE and name expressions execute faster than macro substitution
Но при переводе 81a17e16-a022-413a-a1f7-1332683e7182.htm встретил следующий абзац:
Цитата:
In SQL statements, avoid function calls if possible, especially in statements that will return more than one record, because the statement must be reevaluated (and the functions called again) for each record. If you are creating a SQL statement with variable data, use name expressions or macro substitution in favor of the EVALUATE( ) function. A better strategy yet is to construct the entire statement dynamically, not just individual clauses.
В первом предложении рекомендуют не использовать, если это возможно, функции в командах SQL, а вот во втором именованное выражение вкупе с макроподстановкой противопоставляют функции EVALUATE. Но вот в чью пользу? По смыслу абзаца - в пользу первых двух, а по переводу in favor of (в пользу) - EVALUATE.
А заодно уж покритикуйте, пож., перевод третьего предложения:
Пока, лучшей стратегией является динамическое создание команды без уточнения конкретных предложений.

Боюсь ошибиться...




------------------
С наилучшими пожеланиями, Сергей
Ratings: 0 negative/0 positive

Re: Боюсь ошибиться...
ssa

Сообщений: 12620
Откуда: Москва
Дата: 13.11.05 19:54:57
Кстати, о птичках.

Насчет перевода словосочетания Name expression.

Часто используемый перевод "Именованные выражения", в общем то, в русском языке означает "выражения, имеющие имя". По аналогии с "Именованные параметры" - "параметры, имеющие имя".

Может лучше использовать "выражения имени"? Тем более что они созданы и должны использоваться для замены имен объектов программы.




------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive

Re: Боюсь ошибиться...
GM

Сообщений: 145
Дата: 13.11.05 20:52:50
Hello, ssa!

s> Насчет перевода словосочетания Name expression.
s> Часто используемый перевод "Именованные выражения",

Выражение (конструкция) имени.

s> в общем то, в русском языке означает "выражения, имеющие имя".

Нет, наоборот. Это имя, которое выражется через конструкцию.

s> По аналогии с "Именованные параметры" - "параметры, имеющие имя".

s> Может лучше использовать "выражения имени"?

Да.

s> Тем более что они созданы и должны использоваться для замены
s> имен объектов программы.

Все эти нелепые "именованные выражения" даже по книжкам кочуют... и приходится их употреблять.

With best regards, GM.




------------------
Ratings: 0 negative/0 positive

Re: Боюсь ошибиться...
GM

Сообщений: 145
Дата: 13.11.05 21:01:59
Hello, Sergey!

SK> В первом предложении рекомендуют не использовать, если это возможно, функции в командах SQL,

Откуда это следует, именно для SQL?

With best regards, GM.




------------------
Ratings: 0 negative/0 positive

Re: Боюсь ошибиться...
Лариса

Сообщений: 398
Откуда: Calgary
Дата: 13.11.05 21:09:06
2Sergey Konoplev


Цитата:
If you are creating a SQL statement with variable data, use name expressions or macro substitution in favor of the EVALUATE( ) function.

Да, фраза скользкая. Но если учесть хелп для EVALUATE():
Цитата:
An expression containing EVALUATE( ) cannot be optimized by Rushmore Query Optimization.
Including the EVALUATE( ) function in the WHERE clause of a SQL query can return incorrect data.
то предпочтение отдается name expressions или macro substitution

Теперь
Цитата:
A better strategy yet is to construct the entire statement dynamically, not just individual clauses.
Я бы сказала так:
Пока что, лучшей старегией является динамическое формирование всего SQL выражения, а не только его отдельных операторов/частей.




------------------
Listen and forget. Read and remember. Do and understand.
Ratings: 0 negative/0 positive

Re: Боюсь ошибиться...
Sergey Konoplev

Сообщений: 99
Откуда: Krasnodar
Дата: 13.11.05 22:38:04
GM:
Цитата:
SK> В первом предложении рекомендуют не использовать, если это возможно, функции в командах SQL,
Откуда это следует, именно для SQL?

Я думаю, что вот отсюда:
Цитата:
In SQL statements, avoid function calls if possible, especially in statements that will return more than one record, because the statement must be reevaluated (and the functions called again) for each record.




------------------
С наилучшими пожеланиями, Сергей
Ratings: 0 negative/0 positive

Re: Боюсь ошибиться...
Sergey Konoplev

Сообщений: 99
Откуда: Krasnodar
Дата: 13.11.05 23:01:27
2 SSA и GM: А по мне, что "именованное выражение", что "выражение имени" - одинаково плохо, но к первому я уже привык по help'у VFP3. Кстати, я довольно часто обращаюсь к help'у VFP3 в клинчевых ситуациях. Еще недавно он мне не нравился (пока сам не стал переводить, но сейчас, за неимением другого руссифицированного первоисточника, вроде бы и ничего стал А какие электронные книги использует All при переводе терминов? Лингво-Промпт-Сократ-Конференция - это понятно. Интересуют именно руссифицированные электронные первоисточники. Может быть "толковый словарь", о котором здесь уже длительное время дисскутируют, начать строить именно с такого первоисточника? А может быть вначале help к VFP3 взять за основу? Переводчики перестроились бы в новых статьях, а редакторы помогли бы им подкорректировать старые

2 Лариса: Ок, второе предложение так и переведу; и в третьем поправлю, но здесь как-будто уже обсуждали с месяц назад и решили, что clause - это "предложение", или я что-то упустил?




------------------
С наилучшими пожеланиями, Сергей
Ratings: 0 negative/0 positive

Re: Боюсь ошибиться...
Лариса

Сообщений: 398
Откуда: Calgary
Дата: 13.11.05 23:32:10
Сергей,

Слово "предложение" у меня ассоциируется с командой целиком, а тут речь идет о ее структурных составляющих.
В случае с SELECT SQL это:
Цитата:
WHERE Clause
GROUP BY Clause
HAVING Clause
UNION Clause
ORDER BY Clause
INTO or TO Clause
Что-то у меня душа не лежит называть их "предложениями". Это скорее - "придаточные предложения"



Отредактировано (13.11.05 23:33)


------------------
Listen and forget. Read and remember. Do and understand.
Ratings: 0 negative/0 positive

Re: Боюсь ошибиться...
Igor Korolyov

Сообщений: 34011
Дата: 14.11.05 03:03:28
Hi Sergey!

1) По сути - EVALUATE() это вызов функции - а вызывать функции из SQL
команд - это бить по производительности. Так что действительно рекомендуют
использовать name expression или макро ВМЕСТО Evaluate() - конечно именно в
SQL-е! В других случаях как раз наоборот. Тут наиболее чётко проявляется
суть макро - оно ОДИН раз компилируется, и потом исполняется весьма быстро -
а EVALUATE() - это постоянный вызов функции...
2) Name Expression # Named Expression - это по сути "выражение
заменяющее что-то" - при этом "что-то" - это некоторая логическая часть
команды - причём это НЕ само Clause - а скажем так "операнд" Clause - т.е.
некоторое "значение". Например в
COPY TO table1 TYPE FOX2X AS 866
Name expression может применяться только в позициях table1 и 866 - никакая
другая часть команды не может быть заменена этим самым "выражением".
Хотя согласен, что исторически эту штуку по-русски часто называют
"именованным выражением".
3) Не надо говорить "пока" - оно не катит по смыслу - я думаю что лучше
сказать так:
"Кроме того, (при использовании макроподстановки) лучше формировать
сразу/целиком/полностью всю команду, нежели отдельные её части"
Для уточнения смысла можно вставить такой пример:
* Не очень хорошо  
  SELECT &lcFieldList ;  
      FROM &lcFromList ;  
      WHERE &lcWhereCondition ...  
 * А вот так лучше  
  lcSQL = "SELECT " + m.lcFieldList + ;  
      " FROM " + m.lcFromList + ;  
      " WHERE " m.lcWhereCondition + ...  
  &lcSQL




------------------
WBR, Igor
Ratings: 0 negative/0 positive

Re: Боюсь ошибиться...
Лариса

Сообщений: 398
Откуда: Calgary
Дата: 14.11.05 06:55:59
Игорь,

Цитата:
...
3) Не надо говорить "пока" - оно не катит по смыслу ...

Это "пока" по смыслу топика не катит - это Вы правы. Но дело тут вот в чем:
Тамар Гранор как-то говорила, что это не "лучшая" особенность Фоксовского DataEngine и что FoxTeam это осознает и над этим работает, ну а пока ...
Цитата:
A better strategy yet is to construct the entire statement dynamically, not just individual clauses.

Но я абсолютно не настаиваю. Это я в дополнение к картине.




------------------
Listen and forget. Read and remember. Do and understand.
Ratings: 0 negative/0 positive

Re: Боюсь ошибиться...
karly™

Сообщений: 200
Дата: 14.11.05 11:44:37
Насколько я понимаю в русском языке , правильнее будет "именные", а не "именованные" выражения.

Именное выражение - выражение, относящееся к имени. Синоним для "выражения имени", но imho более подходит первый вариант.
Именованное выражение - выражение, которому присвоено имя. Т.е. смысл несколько другой.




------------------
Ratings: 0 negative/0 positive

Re: Боюсь ошибиться...
Влад Колосов
Автор

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата: 14.11.05 12:31:05
Может, наиболее точно переводить как "выражение_через_имя" или "выражение посредством имени"? То есть имя заменят выражение.
Ratings: 0 negative/0 positive



Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 33 ВладимирС Simple777 WbrErr Sawradym  (Гостей: 29)

23.01.2021 14:18:40 exec: 0.04
Mem: 1.352 Mb

© 2000-2021 Fox Club 
Яндекс.Метрика