Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Update
|
|||
|---|---|---|---|
|
#18+
Здравствуйте все. У меня прога на Delphi, база на dbc-dbf. Пишу хранимую процедуру . Мне нужно сделать UPDATE table1 по данным table2. На MS SQL Servere это понятно: Код: plaintext 1. Но как это в VFP. Ведь там можно подставить вместе table2.pole2 только значение. REPLACE тоже не подходит. Цикл не хотелось бы использовать. Может есть другие варианты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2003, 13:51 |
|
||
|
Update
|
|||
|---|---|---|---|
|
#18+
Как раз таки здесь именно REPLACE и подходит. Код: plaintext 1. 2. 3. Здесь я предполагаю, что в таблице Table2 есть индекс по полю Pole1 с именем "Pole1". Разумеется, обе таблицы должны быть открыты к моменту выполнения команды REPLACE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2003, 13:59 |
|
||
|
Update
|
|||
|---|---|---|---|
|
#18+
Я не стал использовать индексы. Понятно seek можно заменить. Но все же это плохо по моему. Опять же Delete ... сначала, потом INSERT ... тоже плохо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2003, 14:27 |
|
||
|
Update
|
|||
|---|---|---|---|
|
#18+
Самый универсальный способ это через цикл (SCAN...ENDSCAN). А если уж совсем приперло именно одной командой и без индекса, тогда так: Код: plaintext 1. 2. 3. Для функции LOOKUP() индекс не обязателен. Однако это означает, что такая команда будет выполняться медленно (очень долго). Кроме того, даже при неудачном поиске LOOKUP() все-равно вернет значение поля, поэтому стоит проверка на EMPTY(). Соответсвенно, возвращаемое поле не должно содержать пустые значения (лучше возвращать значение ключевого поля) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2003, 15:11 |
|
||
|
Update
|
|||
|---|---|---|---|
|
#18+
Спасибо Владимир Похоже со времен 2.6 мало что изменилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2003, 18:00 |
|
||
|
Update
|
|||
|---|---|---|---|
|
#18+
В смысле команд семейства Select-SQL действительно. Хотя и тут есть кое-какой прогресс. Просто команда UPDATE-SQL никогда не считалась основным механизмом для модификации данных. Рассматривалась скорее как некий "довесок". Хотя в 8 версии, например сделали возможность в команде INSERT-SQL делать выборку из подзапроса (т.е. возможность вставить сразу несколько записей), возможно модифицируют и UPDATE-SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2003, 18:13 |
|
||
|
Update
|
|||
|---|---|---|---|
|
#18+
2pako Зря изменилось многое... Update From правда так и не появился... Правда без индексов он у вас все равно бы медленно выполнялся... Да и скорость мало думаю отличалась бы от replace(update) + seek Кстати если возможен монопольный доступ,то иногда бывает удобен такой вариант Код: plaintext 1. 2. 3. 4. С последующим копированием t3 в t1. Правда сразу накладывается условие уникальности поля f2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2003, 18:17 |
|
||
|
Update
|
|||
|---|---|---|---|
|
#18+
2pako Ну, если ты настаиваешь ;) Создай в своей БД view Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Обновление будет выглядеть, как ты и просил - без Scan и без Replace Код: plaintext 1. 2. P.S. Как и во времена 2.6 индексы существенно ускорят выполнение запроса. Это действительно с тех пор мало изменилось P.P.S. А что, команды FPD использовать вера не позволяет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2003, 23:31 |
|
||
|
Update
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы. Конечно в вопросе код должен был быть Код: plaintext 1. Я знаю, что индексы значительно ускоряют запросы. Писал на 2.6 в АСУПе одного завода. Там куча данных и индексы важны. А здесь данных на компах сравнительно немного, но они на 300 компах по стране. Главный сервак MS SQL Server. И между ними репликация. Поэтому не хочется индексы, view и т.д. Чтобы можно было управлять обменом на локальных машинах, я пишу хранимую процедуру в DBC-файлах, и при необходимости, в начале обмена перекачиваю его, и с него уже выполняется обмен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2003, 10:16 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=414&tid=1597940]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 274ms |
| total: | 426ms |

| 0 / 0 |
