Форум: "Прочее";
Текущий архив: 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