Да, я оказывается реализовал не удаление а скрытие строки через фильтр... но в моей логике программы это всё равно что удалить данные, так как они переходят в другой статус. Есть возможность допустим проверить как то кодом, есть ли работающие связи на данную таблицу из вне? Допустим таблицы "event" к таблицу "rev". И если есть, то запретить использования скрытия (в моём случае команду "UPDATE"

Если удалять без скрипта а напрямую программой, при условии что, что-то ссылается на эту таблицу, то при удалении возникает ошибка. Что есть хорошо...
Но когда я удаляю что то скриптом через запрос к примеру
SQLExecute('DELETE FROM revenue WHERE id='+ мероприятие.TableGrid1.sqlValue );
То данные удаляются в любом случае. Вопрос: как сделать так, что бы при удалении через "SQLExecute('DELETE FROM revenue", проверялись связи на таблицу, и если какая то, или определённая таблица ссылается на revenue, то запретить удаление?

103

(2 replies, posted in Russian)

спасибо!

Задача вводить данные в первый Textbox, а во второй автоматически бы подставлялось 15% от этой суммы.

а как правильно удалить записи по трём параметрам сразу? Ну то есть удалить все записи где id_группа=3, age=19. пол М
естественно если 1 или более из параметров не совпадает, то эти записи не трогать

А в коде SQL как она пишется?
UPDATE event SET номер = nomer +1  WHERE id='+назначение_мероприятия.TableGrid1.sqlValue ); не верная запись

1)Возможно ли в dbfilter подставить переменную вместо  строки по которой ищем? Ну что бы допустим переменная была от 1 до 5, и взависимости от того какая у нас переменная, по такой строке и идёт фильтрация. То есть если переменная = 3, то запись выглядит следующим образом
выручка.TableGrid1.dbFilter:= '3="'+idAlltrip1+'"';
если 4 то
выручка.TableGrid1.dbFilter:= '4="'+idAlltrip1+'"'; и так далее
2)и почему при скрипте nomer := ('"'+nomer+'" -1'); на 3 вычитание начинает выдавать ошибку?

108

(29 replies, posted in Russian)

 var
    Web: TWebBrowser;


procedure Form1_OnShow (Sender: string; Action: string);
var
    reg : TRegistry;
begin
    // https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/general-info/ee330730(v=vs.85)
    reg:= TRegistry.Create;
    try
        reg.Access := KEY_ALL_ACCESS;
        reg.RootKey:= HKEY_CURRENT_USER;
        if reg.OpenKey('Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', True) then
        begin
            if not reg.ValueExists(ExtractFileName(Application.ExeName)) then
                   reg.WriteInteger(ExtractFileName(Application.ExeName), 11000); // 10001 - IE10,  11000 - IE11  https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/general-info/ee330730(v=vs.85)
        end;
        reg.CloseKey;
    finally
        reg.Free;
    end;

    Web := TWebBrowser.Create(Form1);
    TWinControl(Web).Parent := Form1.Panel1;
    Web.Align := alClient;
    Web.Width := Form1.Panel1.Width;
    Web.Height := Form1.Panel1.Height;
    Web.Silent := 1;
    Web.Navigate('https://calendar.google.com/calendar/r?cid=c2licHJvZ3Npc3RlbTBAZ21haWwuY29t');
end;
begin

end.

Почему то на некоторых компьютерах не работает. С чем это может быть связанно? Может быть с разрядностью системы?

109

(9 replies, posted in Russian)

zadarma wrote:

Подпись составляется по следующему алгоритму:
массив из передаваемых параметров (GET, POST, PUT, DELETE) сортируется по названию ключа по алфавиту;
из полученного массива формируется строка запроса (например, функция http_build_query в PHP), пример "from=DATEFROM&to=DATETO…";
и далее - соединяется по формуле: строка = имя_метода строка_запроса md5( строка_запроса ), где "имя_метода" - строка запроса, начиная от домена (с указанием версии АПИ), до начала перечисления параметров, например - '/v1/sip/'
полученная строка хешируется по алгоритму sha1 с секретным ключом пользователя: хеш = hash( строка, секретный_ключ )
и далее хеш кодируется в base64 подпись = base64_encode( хеш )

теперь осталось понять что тут написано...

110

(4 replies, posted in Russian)

Возможно и неправильно... но правильный способ пока не могу сообразить. Логика такая. Есть список людей и есть событие которое создаётся от необходимости. В списке допустим 100 человек, а на событие нужно набрать 20. Что бы не запутаться, при добавлении человека на событие, нужно что бы он пропадал из списков людей которых туда можно добавить. Как это реализовать с 1 событием в принципе понятно, создаём какую то ДА/НЕТ переменную, при которой если человек назначается на событие, он перестаёт быть видным в списке тех кто на это событие еще не был назначен. Но как такое сделать с пониманием что событий много, и они постоянно добавляются? В принципе есть идея создать таблицу которая имеет отдельную запись с пониманием id_человек и id_событие, где если такая запись существует, то скрыть id_человек из таблицы. Как это реализовать? Или есть какой то проще способ?

111

(9 replies, posted in Russian)

zadarma wrote:

полученная строка хешируется по алгоритму sha1 с секретным ключом пользователя: хеш = hash( строка, секретный_ключ )
и далее хеш кодируется в base64 подпись = base64_encode( хеш )

а следующий пункт тогда как? sha1 я так понимаю уже нету?

112

(9 replies, posted in Russian)

Да, только там как я понял нужно еще какую то шифрацию делать в md5 и sha1, что бы запрос составить. Там есть инструкцию описания

zadarma wrote:

Подпись составляется по следующему алгоритму:

массив из передаваемых параметров (GET, POST, PUT, DELETE) сортируется по названию ключа по алфавиту;
из полученного массива формируется строка запроса (например, функция http_build_query в PHP), пример "from=DATEFROM&to=DATETO…";
и далее - соединяется по формуле: строка = имя_метода строка_запроса md5( строка_запроса ), где "имя_метода" - строка запроса, начиная от домена (с указанием версии АПИ), до начала перечисления параметров, например - '/v1/sip/'
полученная строка хешируется по алгоритму sha1 с секретным ключом пользователя: хеш = hash( строка, секретный_ключ )
и далее хеш кодируется в base64 подпись = base64_encode( хеш )

и я запутался как его составить. Ну или его уже на языке Python уже описали как сделать по ссылке ранее предоставленной. Но я не знаю как это применить в mvdb
Естественоо ключ или секрет я получил в своём личном кабинете, но как теперь это применить...

113

(9 replies, posted in Russian)

1)Есть ли возможность как то объединяться с виртуальной АТС? Там есть пример кода для Python, как она генерирует запрос по API через GET. Сложно ли это?
Ссылка на API
https://zadarma.com/ru/support/api/#
ССылка на код генерации запроса
https://github.com/zadarma/user-api-py- … rma/api.py
2)Правильно ли я понял, что скрипт от php, который там представлен, то он ставится уже прямиком на сервер, и получается что допустим если кто то сделал мне звонок, то API посылает на мой MySQL запрос на создание допустим записи о новом звонке и я уже в MVDB в таблицах его уже могу увидеть, и перезвонить к примеру или как то пересохранить информацию о нём

114

(7 replies, posted in Russian)

WHERE event.id_trip=trip.id Вместо trip.id если поставить переменную IdName, правила какие то существуют?

115

(7 replies, posted in Russian)

Спасибо, а переменная в вычисляемом поле как выглядит? Допустим если написано так
Round(
(SELECT IFNULL(SUM(event.технический_текстбокс), 0)   
FROM event                   
WHERE event.id_trip=trip.id))   
То в конце вместо trip.id её в какие то скобки брать? или как правильно

116

(4 replies, posted in Russian)

Возникла необходимость создания зеркальной таблицы с людьми в одностороннем порядке
Допустим есть 2 параметра Имя и Фамилия, при открытие формы должно происходить сравнение во второй таблице, и если она видит что первая таблица имеет запись которой нет во второй, то она её создаёт. Причем если происходят изменения во второй таблице, то в обратном смысле это уже не работает. То есть изменения не в Имени и фамилии, а в других строках которые не влияют на зеркальность не несут никаких действий. Это возможно?

117

(7 replies, posted in Russian)

а где в этом условие поиск наименьшей даты из таблицы? То есть id = id таблицы с наименьшим значением "поле_с_расстоянием"

118

(7 replies, posted in Russian)

Есть таблица с городами, где есть город, дата мероприятия, и расстояние до него. Возможно ли сделать TextBox под таблицей, который бы всегда показывал расстояние до города, у которого дата мероприятия самая ближайшая?

119

(1 replies, posted in Russian)

Как сделать кнопку на форме, которая будет исполнять скрипт, и больше уже не будет доступна, даже если форму закроют или перезапустят программу? Я так понимаю можно её как то привязать на ДА/НЕТ, и если кнопку хоть раз нажимали, то ставится чекбокс в положение да, и больше невозможно нажатие. Кнопка не горит. Какой скрипт тут нужен?

120

(34 replies, posted in Russian)

newusr wrote:
DriveSoft wrote:
newusr wrote:

Добрый день.
1. можно ли в таблицу пользователей добавить столбец "выполнен вход" или что-то подобное, чтобы было видно какие пользователи подключены в данный момент;
2. можно ли сделать чтобы пользователь при первом входе сам задавал себе пароль?
у меня реализовано это всё скриптом.

1. Спасибо за идею, подумаю над этим, т.к. реализация не совсем простая в данном случае.
2. В ближайщих версиях это можно будет реализовать простым скриптом, т.к. планируется добавить в скрипты объект UserObject, который позволит реализовать это.

... 3. И чтобы можно было настроить (разрешить/запретить) множественный вход пользователя. То есть запретить/разрешить пользователю с одним логином входить с разных клиентов или уведомлять пользователя, что вход с таким логином уже выполнен.

4. раз уж жара такая пошла)) Если бы еще статистика велась о первом и последнем входе за день, что бы можно было контралировать во сколько началась работа и закончилась у пользователя. Но это мечты...

121

(3 replies, posted in Russian)

нашёл вот такую статью, она актуальна для MVD?
https://habr.com/ru/post/305378/
...
хотя нет, кажется это просто гугл таблица а не календарь, но если я правильно понял идея тоже интересная. Можно сохранять информацию в MySQL и в тоже время делать отчёт в реальном времени куда нить в гугл таблицу которую можно будет увидеть с любого устройства. Так сказать мини база данных онлайн... опять же, если я правильно понял...

122

(3 replies, posted in Russian)

Есть ли возможность увидеть элементарный пример как создать событие в гугл календаре из MVD? просто не разу не встречался с HTTPGet и HTTPPost и не понимаю как подключаться из MVD к Google календарю через API

123

(3 replies, posted in Russian)

А есть возможность как то связывать свою MySQL или MVD c google календарём или задачником? Да вообще хоть с любым онлайн задачником. Смысл в том что бы ставить задачи в программе и они каким то образом могли всплывать на телефоне

124

(34 replies, posted in Russian)

супер!
PS. в архиве папка называется "setup 5.0 beta"

Thank you derek, this is what I need