Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Супермаг Плюс (Супермаг 2000)

Как узнать номер ключа, прописанный в базе супермага ? : Супермаг Плюс (Супермаг 2000)

22.11.2024 22:53


11.05.2022 12:09
В какой-то табличке хранится, или есть какая функция ?

Или в sssysinfo , в Licenses зашит(зашифрован) ?
11.05.2022 12:51
Я в свое время навскидку ковырнул, увидел его только в файле лицензии.
То есть номер в файле и номер воткнутого ключа, видимо, являются солью для шифрования.
То есть какую лицензию ты загрузил, в большей части и не узнаешь. Кстати, в большинстве случаев это и не имеет смысла - лучше перезагрузить файл полностью.
Если очень хочется разобраться - начни разбирать пакет Office.
11.05.2022 13:42
Если сервер СМ не работает, то проще лицензию на ключ перезалить в базу.
Если сервер СМ работает, то из кода можно получить параметры лицензии.
Процедуры в Core в основном требуют запущенный сервер, чтобы какая-то отработала без него, нужно расковыривать и переписывать под себя.
В старых базах было так, в новых могло поменяться.
SQL код:
DECLARE
  res NUMBER;
  SERIALNUM NUMBER;
  WSMAXCOUNT NUMBER;
  EXPDATE DATE;
BEGIN
    IF SUPERMAG.CORE.GETPROC IS NULL THEN
       res := Supermag.Core.StartSMApp();
    END IF;
    SUPERMAG.CORE.GETLICENSEINFO(SERIALNUM, WSMAXCOUNT, EXPDATE);
--    DBMS_OUTPUT.PUT_LINE('SERIALNUM='|| SERIALNUM ||', WSMAXCOUNT='|| WSMAXCOUNT ||', EXPDATE='|| EXPDATE);
END; 
Кстати тема подобная: Количество лицензий запросом
11.05.2022 15:05
Да вот хотел обойтись без сервера супермага, остались базы закрытых магазинов, ключи переходили из одного в другой, хотел восстановить цепочку передач ключей, ну и для статистики...
CORE тоже смотрел, PROCEDURE PARSELICRECORD( LICRECORDDECODED IN VARCHAR2 ), но вот где взять LICRECORDDECODED - непонятно, это явно не Licenses из sssysinfo , судя по названию, как-то предварительно декодированная строка лицензии..
11.05.2022 16:46
Цитата:
Starter где взять LICRECORDDECODED - непонятно, это явно не Licenses из sssysinfo
Это расшифрованная Licenses. Ее процесс сервера выдает.
При большой необходимости можно вытащить и на неподходящем ключе, по крайней мере на старом тестовом 1025.1 сработало.
Типа такого:
- в базе пакет core заменяется на "ломаный", с измененной
SQL код:
PROCEDURE PARSELICRECORD( LICRECORDDECODED IN VARCHAR2 )
    IS
      BADRECORD EXCEPTION;
      R SSSYSINFO.PARAMVALUE%TYPE;
      R1 SSSYSINFO.PARAMVALUE%TYPE;
      TAG PLS_INTEGER;
      WSCOUNT PLS_INTEGER;
      SERIALNUM NUMBER;
      EXPTIME DATE;
      POS PLS_INTEGER;
      POS1 PLS_INTEGER;
    BEGIN
LOGEVENT( LICRECORDDECODED );
... 
- в сервер СМ вписывается имя нужной БД
- база в сервере запускается
- идем в sseventlog и смотрим расшифрованную строку вида "1988*1DBTEST/2/731131195/31.07.20101.025.1" и далее ругань на неверную лицензию. Вот 731131195 это серийник базы.

Но у вас вроде нет такой большой необходимости.
Часовой пояс GMT +3, время: 22:53.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.