Вы пытаетесь по действию с кнопки, сохранить данные в разные таблицы, что вызывает ошибку. А ошибка гласит: В таблице Clients нет поля id_Service. Такая же ошибка будет с файлом.
Нужно структуру таблицы Клиенты изменить под нужды и сохранять данные в одну таблицу.
51 2017-10-04 06:08:06
Re: кНе работает проект, помогите. (6 replies, posted in Russian)
52 2017-09-21 08:14:52
Re: Запомнить последний введенный логин? (3 replies, posted in Russian)
Отлично, спасибо!
53 2017-09-21 06:35:50
Topic: Запомнить последний введенный логин? (3 replies, posted in Russian)
По аналогии с запоминанием некоторых данных в соседней ветке, решил "запоминать" последний логин. Все работает, за исключением ошибки, когда ключа еще нет. Помогите, пожалуйста, избежать?
procedure frmLogin_OnShow (Sender: string; Action: string);
var
reg: TRegistry;
begin
reg := TRegistry.Create;
reg.Access := KEY_ALL_ACCESS;
reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKey('software\Test_project',true);
frmLogin.cbLogin.dbItemID := reg.ReadInteger('Login');
reg.CloseKey;
reg.Free;
if frmLogin.cbLogin.dbItemID <> -1 then frmLogin.edPassword.SetFocus;
end;
procedure frmLogin_btOk_OnClick (Sender: string; Action: string);
var
reg: TRegistry;
begin
reg := TRegistry.Create;
reg.Access := KEY_ALL_ACCESS;
reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKey('software\Test_project',true);
reg.WriteInteger('Login', idUser);
reg.CloseKey;
reg.Free;
end;
54 2017-09-08 07:59:32
Re: Связь Многие-ко-многим (12 replies, posted in FAQ)
Хотел ознакомиться с проектом, при запуске получил ошибки (вложил) (с я.диска что-то картинки не удалось прилепить). Сам процесс виснет и грузит ЦП на 100%.
Недавно поставил MVDB "сверху" 3.5 на 2.8. Предположил, что в этом может быть причина. Удалил MVDB, поставил заново 3.5. Та же ситуация.
55 2017-09-05 09:53:40
Re: Click скриптом в TableGrid (5 replies, posted in Russian)
Смотря после какого события нужно? Цель указанного скрипта не ясна.
Можно создать кнопку с необходимым действием (полагаю, в данном случае - показать запись), назначить Visible := False, а скриптом инициировать её клик. Form1.Button1.Click.
56 2017-09-05 08:52:51
Re: Click скриптом в TableGrid (5 replies, posted in Russian)
Невидимая кнопка и Form1.Button1.Click не вариант?
57 2017-09-05 04:45:58
Re: Показать запись скриптом? Получить ID уже открытой записи? (6 replies, posted in Russian)
1. Решение нашел через "невидимый клик" ):
procedure frmIndex_lbLogin_OnClick (Sender: string);
begin
frmUser.TableGrid1.dbUpdate;
frmUser.TableGrid1.dbItemID := idUser;
frmUser.btEdit.Click;
end;
2. Пока решение только через грид. Может идеи есть у кого?
58 2017-09-02 06:58:01
Re: Что реализовать в первую очередь? (396 replies, posted in Russian)
1. Трей, трей, трей. Где-то встречал, что не востребовано - по этому в три голоса.
2. Возможность задавать настройки по умолчанию для проекта. Шрифт, размер шрифта, зафиксировать некие элементы формы (т.е. любая форма по умолчанию создается с этим набором элементов).
3. Автоматически настройки логирования. Вкл/выкл, какие "движения".
4. Оооочень не хватает Ctrl+Z.
5. Окна в главном окне.
6. Копирование форм со всем содержимым и свойствами.
7. Скрипт разделить на закладки (по аналогии с закладками форм, но что бы в единый файл сохранялся). Куда легче работать было бы.
59 2017-08-28 14:50:38
Topic: Показать запись скриптом? Получить ID уже открытой записи? (6 replies, posted in Russian)
1. Можно ли показать запись, если id записи лежит в переменной, а клик не в TableGrid?
2. И, можно ли получить id уже открытой записи? Удобно было бы получить именно в уже открытой форме, т.к. из разных форм запись открыть можно и привязываться через кучу TableGrid.dbItemID не удобно.
60 2017-08-28 04:55:23
Topic: Множественная вставка одного пункта меню (1 replies, posted in Russian)
В заголовке весь вопрос. Хочется разделителем меню "прорядить".
mnSpace:=TMenuItem.Create (frmIndex);
mnSpace.Caption:='-';
Скрин прилепил. Пытаясь вставить в разных местах - получаем: Menu inserted twice. Никак обойти нельзя? Только плодить аналогичные пункты меню?
61 2017-08-11 13:12:35
Re: Время в SQLite и MySQL. Сохранение и отображение. (6 replies, posted in Russian)
Спасибо, решено.
62 2017-08-11 12:18:23
Re: Время в SQLite и MySQL. Сохранение и отображение. (6 replies, posted in Russian)
Да, это-то и нужно. Но выбирая сегодняшнюю дату получаем ошибку.
63 2017-08-11 11:13:20
Re: Время в SQLite и MySQL. Сохранение и отображение. (6 replies, posted in Russian)
Спасибо!
Еще касаемо DateTimePicker что бы не плодить темы:
Form1.DateTimePicker1.MinDate := now();
Выбирая сегодняшнюю дату, получаем ошибку: "Date is less than minimum of текущее число". Однако дату ставит. Может как-то иначе изобразить желаемое можно?
64 2017-08-11 08:42:33
Topic: Время в SQLite и MySQL. Сохранение и отображение. (6 replies, posted in Russian)
Хочется не видеть секунды.
Работая с SQLite, при фильтре DateTimePicker = HH:mm, в TableGrid и выводится в таком виде время.
В MySQL время с секундами.
Можно как-то либо сохранять без секунд, либо отображать без секунд?
65 2017-08-01 04:38:45
Topic: Фильтр TableGrid - отобрать клиентов с ДР в ближайшие 30 дней. MySQL. (4 replies, posted in Russian)
В общем, вопрос в теме. С фильтром или скриптом подможите, пожалуйста. Провозился два дня безуспешно...
66 2017-07-31 09:09:40
Topic: Упростить логирование изменения записи. (2 replies, posted in Russian)
Хочется логировать все изменения в записи. Складывать в логи уйму лишний информации не хочется. 11 полей - изменено может быть лишь одно. Как проще отобрать только измененные и записать старое и новое значение?
67 2017-07-24 12:56:47
Re: Ряд вопросов после годового использования. (4 replies, posted in Russian)
И, помогите, пожалуйста, с запросом. В SQLite фильтр TableGrid работал, в MySQL, видимо иначе нужно?
logs.events >= date('now','-1 day')
68 2017-07-21 10:35:11
Re: Ряд вопросов после годового использования. (4 replies, posted in Russian)
Спасибо! Многие вопросы закрылись.
Не совсем понял пример с получением значения в разные формы. Цель - в разные формы получать значение из TableGrid одной другой. Пример приложил. Упростить реализацию задачи нельзя? Для 30 форм скрипт громоздкий.
И еще несколько вопросов.
Можно ли запустить несколько таймеров с разными интервалами для разных целей в одном проекте?
Экспортируя таблицы в SQLiteStudio загрузить их не удается. Есть платные конверторы, с помощью которых выгружается/загружается корректно, но ради одно раза покупать не хочется. Известных бесплатных не сложных решений нет?
Ну и вопрос без ответа:
Вижу, в версии 3.* есть ряд полезных вещей. Покупателям 2.* скидок не предусмотрено?
69 2017-07-15 07:07:42
Topic: Ряд вопросов после годового использования. (4 replies, posted in Russian)
Во-первых, после полутора лет использования продукта - есть желание поблагодарить за продукт. Как ребенок балуюсь и радуюсь!
Напилил ряд БД для внутренних нужд предприятия и теперь понял, что нужно было делать иначе. Осваиваю 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.* скидок не предусмотрено?
70 2017-07-08 06:05:50
Re: [Скрипт] Проверка дубликат записи (13 replies, posted in FAQ)
А я при выходе из поля так проверяю. Это кривой способ?
begin
if sLastActionForm = 'NewRecord' then
if SQLExecute('SELECT count(id) FROM clients WHERE tel = '+frmClientsAdd.edTel.sqlValue) > 0
then
begin
MessageDLG('Данный телефон уже есть в базе!'#13#10'"Ищите женщину!" (с)',mtError, mbOK,0);
frmClientsAdd.btOk.Enabled := False;
end
else
begin
frmClientsAdd.btOk.Enabled := True;
end;
end;
71 2016-05-06 05:03:07
Re: Подскажите со скриптом... (66 replies, posted in Russian)
Тут вопрос в назначении. Задача какая, учитывая, что содержимое боксов равно? Смысл брать ID из второго? А если текст нужен, то проще текстовое поле наполнять значением из бокса и сохранять как текст.
72 2016-05-05 07:01:15
Re: Datetimepicker (1 replies, posted in Russian)
SQLExecute('UPDATE employees SET record_count = '+ IntToStr(iMax) + ', dateready='+ form1.datetimepicker1.sqlDateTime + '"' +' WHERE id='+IntToStr(id));
или sqlDate только для даты,
или sqlTime только для времени.
73 2016-04-23 17:54:59
Re: работа с Grid (11 replies, posted in Russian)
По-моему, решений много. Я в силу своего мизерного опыта добавил бы поле в таблицу (допустим "count") и сделал бы событие на двойной клик по гриду, где
var
sCount: integer;
begin
sCount := SQLExecute('SELECT count FROM таблица WHERE id='+IntToStr(форма.TableGrid1.dbItemID)+1;
SQLExecute('UPDATE таблица SET count='+sCount+' WHERE id='+IntToStr(форма.TableGrid1.dbItemID);
end;
Проверить сейчас возможности нет, да и, уверен, Дмитрий может оптимизировать решение. )
Но... Для начала. Это не может быть качественным показателем интереса. Ошибочный выбор, еще что-то... Тут, правда, по проекту смотреть надо. Может, на какое-то конкретное действие в открывшейся форме лучше бы действие привязал, чтоб погрешность "интереса" уменьшить, если я правильно понимаю. Если там выполняются какие-то действия.
74 2016-04-22 06:41:27
Re: Виртуальная клавиатура (5 replies, posted in Russian)
Помогите, пожалуйста, доработать для полей Memo. Мои эксперименты методом тыка результата не принесли. )
75 2016-04-21 10:12:55
Topic: Позиционирование форм (1 replies, posted in Russian)
Есть потребность главной форме присвоить Form1.FormStyle := fsStayOnTop;
При таком раскладе все формы открывающиеся из неё - открываются за ней. Решение - только для каждой формы при открытии fsStayOnTop? Или есть вариант проще?