Re: Помогите начинающему.

From
Vladimir Ilyashenko (2:5080/1003)
To
Mike Kutuzov
Date
2006-02-19T23:03:44Z
Area
SU.DBMS.SQL
From: "Vladimir Ilyashenko" <fido7@front.ru>
Reply-To: "Vladimir Ilyashenko" <fido7@front.ru>

               Здравствуй, Mike !

"_19_" _февраля_ 2006 г. Mike написал в <fido7.su.dbms.sql>  на тему:
*"Помогите начинающему."*

[Пропущено]
VI>> UPDATE TAB1
VI>> SET TAB1.с =
VI>> (SELECT TAB2.y
VI>> FROM TAB2
VI>> WHERE  TAB2.x = TAB1.b) ;

MK> Вот это прошло бы в правильной реализации SQL.
[Пропущено]

Извини, но не понял, что такое "правильная реализация"? Что-то надо
доустановить на комп или проапгрейдить? Или имелась в виду согласованность с
ANSI?

MK> Учти: если у тебя в TAB1 уже есть строки с заполненными C и с B, для
MK> которых нет парных X в TAB2, в них пропишется NULL.

Это - то как раз то, что мне надо - полное обновление всех значений, и
удаление отсутствующих. Но за совет - спасибо, я этого приема не знал.

[Пропущено]
VI>> Ответ: "В операции должен использоваться обновляемый запрос."

MK> AFAIR в Access-е есть для такого специфический синтаксис (он и
MK> называется "обновляемый запрос"), который нормальные БД не понимают.
MK> Попробуй построить прямо в Access-е нужный запрос графически и
MK> поглядеть, какой SQL он изобразит. Под рукой сейчас Access-а нет,
MK> поэтому детальным "маршрутом" не помогу.

Пока что и этого не смог.

[Пропущено]
MK> Если на Access-е свет клином не сошелся - уходи с него. Если сошелся -
MK> изучай и используй его кривости.

Увы:(
"Экономическо - прикладная" программа использует DAO (технологию
Microsoft Jet) для доступа к данным. Вобщем-то все можно выполнить
встроенными стандартными функциями, но когда база для DAO большая (TAB1
более 10 000 строк, TAB2 более 100 000), при выводе больших таблиц
начинаются тормоза. Поэтому и приходится "хитрить", применяя SQL-запросы в
"тонких" местах.

          Всего тебе наилучшего, Mike!
_                                                        Владимир.         _
/VERBA VOLANT, SCRIPTA MANENT/ <слова улетают, написанное остается>


--- ifmail v.2.15dev5
 * Origin: Private (2:5080/1003@fidonet)
SEEN-BY: 46/50 50/12 278/169 450/1024 452/25 154 2432/260 4615/21 5000/5000
SEEN-BY: 5001/100 5010/2 53 5011/13 5012/30 46 5015/28 5019/31 5020/545 715
SEEN-BY: 5020/760 1641 2238 4441 5021/29 5025/3 5026/10 5027/12 5028/61
SEEN-BY: 5029/45 60 5030/115 5035/38 5041/4 5042/21 5045/7 5049/19 164 5053/16
SEEN-BY: 5054/1 8 9 28 35 37 45 50 63 67 5058/999 5059/9 5070/156 5071/22
SEEN-BY: 5077/70 5078/20 5080/68 147 239 1003 5085/13 87 5093/4 5095/20
SEEN-BY: 5097/31 64 6000/1 12 6028/1 6055/2 6083/12
PATH: 5080/1003 5020/545 5054/1 37