Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
REPLACE и UPDATE - В чем разница
|
|||
|---|---|---|---|
|
#18+
Господа вопрос мучает, помогите разрешить. Две записи в чем между ними разница: SELECT Cursor1 SET ORDER TO Pole1 =SEEK(Peremennaia1) REPLACE Pole2 WITH Pole2+Peremennaia2 UPDATE Cursosr1 SET Pole2+Peremennaia2 WHERE Pole1=Peremennaia1 На первый взгляд делают они одно и тоже. Но возможно что я что-то не понимаю. Подскажите пожалуйста. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2003, 20:07 |
|
||
|
REPLACE и UPDATE - В чем разница
|
|||
|---|---|---|---|
|
#18+
Разница в том, что в первом случае будет изменена только текущая строка (первая, у которой Pole1=Peremennaia1). А во втором будут измененты все строки , у которых Pole1=Peremennaia1 Вот между строками REPLACE Pole2 WITH Pole2+Peremennaia2 For Pole1=Peremennaia1 in Cursor1 и UPDATE Cursosr1 SET Pole2+Peremennaia2 WHERE Pole1=Peremennaia1 действительно нет никакой разницы :) Ну разве что вторая более понятна для привыкших к синтаксису SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2003, 20:15 |
|
||
|
REPLACE и UPDATE - В чем разница
|
|||
|---|---|---|---|
|
#18+
Упс... Одна неточность. Команда Replace ... For ... блокирует заголовок таблицы, т.е. пока она выполняется, другие пользователи не могут вносить изменения. А вот Update ... Where ... по очереди блокирует только изменяемые строки, оставляя таблицу доступной для других пользователей. Т.е. первая команда будет работать чуть быстрее при монопольном доступе, а вторую лучше применять при совместной работе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2003, 20:20 |
|
||
|
REPLACE и UPDATE - В чем разница
|
|||
|---|---|---|---|
|
#18+
Replace блокирует заголовок??? Давно не писал под файл-сервер, но вроде replace вообще ничего не блокирует... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2003, 10:54 |
|
||
|
REPLACE и UPDATE - В чем разница
|
|||
|---|---|---|---|
|
#18+
HELP locking, record vs. table Commands that Automatically Lock Records and Tables Command | Scope of lock ...... REPLACE of more than one record | Entire table and all files from aliased fields ...... UPDATE – SQL | Entire table ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2003, 12:04 |
|
||
|
REPLACE и UPDATE - В чем разница
|
|||
|---|---|---|---|
|
#18+
HELP UPDATE Unlike REPLACE, UPDATE - SQL uses record locking when updating multiple records in a table opened for shared access. This reduces record contention in multiuser situations, but may reduce performance. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2003, 12:21 |
|
||
|
REPLACE и UPDATE - В чем разница
|
|||
|---|---|---|---|
|
#18+
to Crip Знаю. Решил подкрепить свои знания ссылкой на официальный источник. Полез в HELP и с удивлением для себя обнаружил UPDATE – SQL | Scope of lock = Entire table 8О MicroSoft, однако. Места надо знать, где читать, а где не читать. Спасибо, Crip, успокоил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2003, 13:21 |
|
||
|
REPLACE и UPDATE - В чем разница
|
|||
|---|---|---|---|
|
#18+
Упс.... А что же тогда значит REPLACE ALL ? Я так думал что она как раз и меняет все записи соответствующие условию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2003, 13:38 |
|
||
|
REPLACE и UPDATE - В чем разница
|
|||
|---|---|---|---|
|
#18+
replace all и replace for эквиваленты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2003, 13:43 |
|
||
|
REPLACE и UPDATE - В чем разница
|
|||
|---|---|---|---|
|
#18+
ой опечатался... replace all for и replace for эквиваленты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2003, 13:44 |
|
||
|
REPLACE и UPDATE - В чем разница
|
|||
|---|---|---|---|
|
#18+
Задурили голову, так UPDATE-SQL Scope of lock только заголовок таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2004, 10:15 |
|
||
|
REPLACE и UPDATE - В чем разница
|
|||
|---|---|---|---|
|
#18+
Нет. UPDATE-SQL блокирует только те записи, которые собственно и модифицируются. Это опечатка документации. Тот случай, когда не следует верить написанному MicroSoft. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2004, 10:24 |
|
||
|
REPLACE и UPDATE - В чем разница
|
|||
|---|---|---|---|
|
#18+
И блокирует их по одной изменяемой (блокирует одну, производит обновление, разблокирует, переходит к следующей )? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2004, 10:43 |
|
||
|
REPLACE и UPDATE - В чем разница
|
|||
|---|---|---|---|
|
#18+
Не проверял. Не представляю, как это можно проверить простым способом. Теоретически, должно быть как ты описал. Но на практике, я не вижу особой разницы будет ли снята блокировка записи в момент перехода к следующей или по окончании модификации всех записей. Ведь все равно подобные команды желательно окружать транзакцией, а транзакция держит все созданные блокировки до окончания транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2004, 11:19 |
|
||
|
REPLACE и UPDATE - В чем разница
|
|||
|---|---|---|---|
|
#18+
Удалось проверить. Действительно, команда UPDATE-SQL блокирует только одну изменяемую запись и только на время внесения изменений. Т.е. при переходе на другую запись блокировка с предыдущей снимается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2004, 09:49 |
|
||
|
REPLACE и UPDATE - В чем разница
|
|||
|---|---|---|---|
|
#18+
Из академического интереса - и как удалось проверить - через триггеры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2004, 19:32 |
|
||
|
REPLACE и UPDATE - В чем разница
|
|||
|---|---|---|---|
|
#18+
Нет. В FoxPro в любой команде допустимо писать пользовательскую функцию. Ну, я и написал. UPDATE MyTab SET Field=Field+MyFunc() WHERE ID<=3 FUNCTION MyFunc ?IsRLocked(1,"MyTab") RETURN '' В таблице MyTab есть ID со значениями меньше 3, причем в это число входит запись с Recno()=1. В результате я получил список значений: .T. .F. Т.е. в момент внесения изменений во вторую запись, первая запись уже НЕ заблокирована. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2004, 19:54 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32446693&tid=1596943]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 325ms |

| 0 / 0 |
