Topic: Ряд вопросов после годового использования.
Во-первых, после полутора лет использования продукта - есть желание поблагодарить за продукт. Как ребенок балуюсь и радуюсь!
Напилил ряд БД для внутренних нужд предприятия и теперь понял, что нужно было делать иначе. Осваиваю MySQL, ищу возможность перехода на него совмещая все этого безобразие. В связи с тем и сем ряд вопросов.
Совместив всех своих баранов я получу форм 50-60, таблиц 30, 12-15 пользователей он-лайн. Интенсивность работы, скажем, не высокая. Я совершенно не представляю как и что должно работать и что такое нагрузка в этом контексте. О чем хоть поверхностно нужно думать, говоря о нагрузке? Что нужно понимать?
В одном из проектов я "смотрел" на пользователей он-лайн. Как в здешних примерах, при входе - запись в таблицу к пользователю и при выходе. Печаль только в том, что при кривом выходе (просто погасили компьютер, или сбой какой) пользователь он-лайн так и висит. Нет возможности как-то еще реализовать эту задачу?
Можно ли завести несколько таймеров с разными интервалами в одном проекте?
Есть ли готовое решение по обновлению программы? На период теста я реализовал так: в одно место в сети выкладываю актуальную версию, в БД запись о версии, в программе надпись с версией. Если они не соответствуют при запуске на главной форме появляется кнопулька "обновить" которая 1. закрывает программу 2. запускает батник, который копирует с заменой все в папке 3. запускает. Работать-то работает, но может как-то "красивее" можно?
Каким-то чудом вычищается БД (тестовая на MySQL) в нуль! Не понимаю, что происходит. Структура вся неизменна, данные исчезают. При каких обстоятельствах выяснить не могу. Может при переключении с SQLite и обратно что-то подобное происходить? Никто не сталкивался?
Как реализовать следующую задачу? Таблица клиенты. В формах где нужен клиент комбобокс. Рядом кнопка поиск. Сложностей не вижу взять данные из заполненного поля, открыть форму "клиенты" и выполнить в ней поиск по заполненному боксу. По двойному клику вернуть "клиента" в комбобокс. Но как быть когда форм, где нужен клиент много? Вариант, который работать будет, но не нравится:
var
sClient: string;
sForm: string = '';
procedure Form1_btSearchClient_OnClick (Sender: string; Action: string);
begin
sForm := 'Form1';
sClient := Form1.cbClient.Text;
frmClients.Show;
frmClients.edSurname.Text := sClient;
frmClients.btSearch.Click;
end;
procedure frmClients_OnShow (Sender: string; Action: string);
begin
frmClients.TableGrid1.dbPopupMenu.Items[0].Enabled := False;
end;
procedure frmClients_TableGrid1_OnCellDoubleClick (Sender: string; Action: string; var Cancel: boolean);
begin
if iForm = '' then frmClients.btEdit.Click;
if iForm = 'Form1' then
begin
Form1.cbClient.dbItemID := frmClients.TableGrid1.dbItemID;
frmClients.Close;
end;
if iForm = 'Form2' then
begin
Form2.cbClient.dbItemID := frmClients.TableGrid1.dbItemID;
frmClients.Close;
end;
...
if iForm = 'Form31' then
begin
Form31.cbClient.dbItemID := frmClients.TableGrid1.dbItemID;
frmClients.Close;
end;
end;
Вижу, в версии 3.* есть ряд полезных вещей. Покупателям 2.* скидок не предусмотрено?