Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2012.05.20;
Скачать: [xml.tar.bz2];

Вниз

обновление данных при multi-user работе   Найти похожие ветки 

 
Компромисс ©   (2012-01-10 14:38) [160]


> почему удален? ссылка изменена, а новая в выбранный фильтр
> не попадает. да и вообще это может быть временное изменение.
>


Ок, в таком случае обновление не нужно. Возможно, временно не нужно.


 
Ega23 ©   (2012-01-10 14:40) [161]


>  но вот как то я ее не воспринимаю как программу по работе
> с субд


Ну скажем так, это небольшая часть программы.
И там я, дабы не менять архитектуру, тупо на таймер повесил выборку записей, время которых больше максимального в последней выборки. Кстати, тоже ещё те пляски с бубном были с MSSQL и его 0, 3 и 7 дискретами в миллисекундах.


 
Компромисс ©   (2012-01-10 14:42) [162]

Ega23 ©   (10.01.12 14:33) [158]

Речь про многопользорвательские программы. Сидишь, читаешь анекдоты в Notepad, в это время начальник удаляет у тебя соответствующий файл. В идеале, Notepad должен написать "Файл был удален пользователем "Big Boss"  с комментарием "Живо работать!" :)


 
sniknik ©   (2012-01-10 14:48) [163]

> в это время начальник удаляет у тебя соответствующий файл.
не у тебя, а в сети/базе откуда ты его взял. а к тебе это изменение типа "автоприлетело".


 
Ega23 ©   (2012-01-10 14:51) [164]


> Речь про многопользорвательские программы. Сидишь, читаешь
> анекдоты в Notepad, в это время начальник удаляет у тебя
> соответствующий файл. В идеале, Notepad должен написать
> "Файл был удален пользователем "Big Boss"  с комментарием
> "Живо работать!" :)
>


В идеале просмотр анекдота в Notepad логически равнозначен созданию отчёта по данному анекдоту. Который, ваще-та, должен блокироваться от изменений на это время.


 
Компромисс ©   (2012-01-10 15:01) [165]

sniknik ©   (10.01.12 14:48) [163]

Он его взял из файловой системы. Из нее и автоприлетит уведомление об удалении файла. Кстати, Notepad++ замечает, что файл был удален и спрашивает, продолжить ли его просмотр или закрыть...

Ega23 ©   (10.01.12 14:51) [164]

Значит, твоя аналогия неверна...


 
sniknik ©   (2012-01-10 15:03) [166]

> Который, ваще-та, должен блокироваться от изменений на это время.
это при нормальной работе, с которой "автообновление" (полное, без ограничивающих условий) конфликтует. т.е. либо либо. а если - тут делаем, тут не делаем, а тут рыбу заворачивали, то это уже должно быть подробно описано. желаемая логика.


 
sniknik ©   (2012-01-10 15:04) [167]

> Кстати, Notepad++ замечает, что файл был удален и спрашивает, продолжить ли его просмотр или закрыть...
локально? а если из сети открыть?


 
Ega23 ©   (2012-01-10 15:04) [168]


> Кстати, Notepad++ замечает, что файл был удален и спрашивает,
>  продолжить ли его просмотр или закрыть...


Вопрос: когда он это замечает?


 
Компромисс ©   (2012-01-10 15:04) [169]

Вообще предлагаю закончить спор следующим: лучше иметь программу, которая позволяет пользователю настроить автообновление. Потому как программа, которая этого не позволяет, получается из первой путем chAutoRefresh.visible := false и chAutoRefresh.checked := false :)


 
sniknik ©   (2012-01-10 15:07) [170]

> Вопрос: когда он это замечает?
да это в общем то не сложно, система оповещает о событиях/изменениях в локальных файлах... (на дельфимастере даже статья с примерами есть, могу найти)


 
Ega23 ©   (2012-01-10 15:08) [171]

Не надо подменять понятия "автонажимание на Refresh" и обновление по событию.
Это совершенно разные вещи.


 
Компромисс ©   (2012-01-10 15:08) [172]

sniknik ©   (10.01.12 15:03) [166]

Так я ж и говорю - смотрим ТЗ и делаем, что там написано.

sniknik ©   (10.01.12 15:04) [167]

Не знаю, не могу проверить. Просить коллегу удалить файл не хочется.

Ega23 ©   (10.01.12 15:04) [168]

При переключении (Application.onActivate) на него точно делает. Когда еще делает, не знаю, потому как для удаления файла я должен deactivate notepad++, а потом срабатывает onActivate и см. выше...


 
Компромисс ©   (2012-01-10 15:09) [173]

sniknik ©   (10.01.12 15:07) [170]

Оповещение выскакивает только в том случае, если notepad++ является активным приложением.


 
Ega23 ©   (2012-01-10 15:10) [174]


> да это в общем то не сложно, система оповещает о событиях/изменениях
> в локальных файлах... (на дельфимастере даже статья с примерами
> есть, могу найти)


Не в этом дело. Окошко возникает в момент активизации окна нотепада. До этого он как висел на другом мониторе (в моём случае), так и висел, хоть всё поудаляй а потом насоздавай заново но уже с другим содержимым.


 
Компромисс ©   (2012-01-10 15:10) [175]

Ega23 ©   (10.01.12 15:08) [171]

Да, согласен. AutoUpdate лучше подходит наверное.


 
sniknik ©   (2012-01-10 15:12) [176]

> Вообще предлагаю закончить спор следующим: лучше иметь программу, ...
которая которая работает правильно вопреки желаниям клиента... и если автообновление не нужно/лишнее/в разрез логике, а клиент тем не менее "хочет", то нафиг такого клиента! и это не шутка, проще послать "замудрого" клиента насмотревшегося фантастики в детективах, чем после терять из-за него деньги.


 
sniknik ©   (2012-01-10 15:15) [177]

> До этого он как висел на другом мониторе (в моём случае), так и висел, хоть всё поудаляй а потом насоздавай заново но уже с другим содержимым.
так это не автоапдейт, это событийный, т.е. типа закончили редактировать документ, сохранили и по нему обновляется список заголовков документов. это ВЕЗДЕ есть.


 
Ega23 ©   (2012-01-10 15:17) [178]


> Когда еще делает, не знаю, потому как для удаления файла
> я должен deactivate notepad++, а потом срабатывает onActivate
> и см. выше...
>


Ну вот тебе простой код:

unit Unit31;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, StdCtrls;

type
 TForm31 = class(TForm)
   Timer1: TTimer;
   Label1: TLabel;
   Button1: TButton;
   procedure Timer1Timer(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form31: TForm31;

implementation

{$R *.dfm}

procedure TForm31.Button1Click(Sender: TObject);
begin
 Timer1.Enabled := True;
end;

procedure TForm31.Timer1Timer(Sender: TObject);
begin
 Timer1.Enabled := False;
 if DeleteFile("E:\1.txt") then
   Label1.Caption := "OK"
 else
   Label1.Caption := "Fail";
end;

end.


Очень показательно твоё "автообновление".


 
Компромисс ©   (2012-01-10 15:52) [179]

Ega23 ©   (10.01.12 15:17) [178]

Это к чему? Я уже 3 раза писал, что всё определеятся пожеланиями заказчика. Веришь, что есть способ реализовать автообновление notepad++ таким образом, чтобы он не требовал onActivate для оповещения?

ЗЫ. У меня на компе давно нет Delphi. Точнее, на этом и не было никогда.


 
Ega23 ©   (2012-01-10 16:00) [180]


> Веришь, что есть способ реализовать автообновление notepad++
> таким образом, чтобы он не требовал onActivate для оповещения?


Верю. Есть. Но почему-то признано разработчиками не нужным.
Можно (и более того - нужно!) следующее "автообновление" сделать:
1. Перед редактированием записи вытаскиваем самые актуальные данные по ней на данный момент.
2. После изменения записи (успешного, неуспешного - без разницы) - обновление общей выборки.
3. При активации окна - соответственно.
4. Ну и кнопка "Обновить" в целом.
А вот по таймеру... Лично я - категорически против.


 
Компромисс ©   (2012-01-10 16:21) [181]

Ega23 ©   (10.01.12 16:00) [180]

Нет у меня таймера. И notepad++ он тоже не нужен. Я и сам против таймеров (за редким исключением)


 
знайка   (2012-01-10 16:23) [182]


> А вот по таймеру... Лично я - категорически против.

А что с таймером не так?


 
Ega23 ©   (2012-01-10 16:32) [183]


> А что с таймером не так?


Лишняя нагрузка на сервер.


 
Anatoly Podgoretsky ©   (2012-01-10 21:38) [184]

> vuk  (10.01.2012 11:27:52)  [112]

И если увидит то где, допустим была 10 позиция, три записи до были удалены и
одна вставлена.


 
Anatoly Podgoretsky ©   (2012-01-10 22:30) [185]

> знайка  (10.01.2012 13:09:07)  [127]

Ну и нафига ты привел, ничего общего с обычной работой, да и строк всего
восемь, а не 400 000
И всеравно неприятно смотреть на эту свистопляску


 
Anatoly Podgoretsky ©   (2012-01-10 23:35) [186]

> Ega23  (10.01.2012 14:33:38)  [158]

Более того, ты можешь устроить пакость, сохранить его снова :-)


 
Anatoly Podgoretsky ©   (2012-01-10 23:39) [187]

> Ega23  (10.01.2012 14:40:41)  [161]

> 0, 3 и 7 дискретами

Да это серьезная проблема


 
Ega23 ©   (2012-01-11 01:41) [188]


> Anatoly Podgoretsky ©   (10.01.12 23:39) [187]
>
> > 0, 3 и 7 дискретами
>
> Да это серьезная проблема


Был в жутком шоке, когда на это напоролся. Даже не подозревал, что такое возможно. С тех пор крайне щепетильно к вопросам времени отношусь.



Страницы: 1 2 3 4 5 вся ветка

Форум: "Прочее";
Текущий архив: 2012.05.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.78 MB
Время: 0.031 c
15-1326702784
картман
2012-01-16 12:33
2012.05.20
массив случайных чисел заданной суммы


15-1326364010
Псарь
2012-01-12 14:26
2012.05.20
Ну и в чем тут подвох?


15-1326421412
Андрей_1
2012-01-13 06:23
2012.05.20
Delphi 6 и Windows 7


15-1320098450
Бездомный
2011-11-01 01:00
2012.05.20
Драйвер виртуальной звуковой карты


1-1291970624
mnj
2010-12-10 11:43
2012.05.20
Выбор точек, веток и и х движение в TChart





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский