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

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

29.03.2024 8:40


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

Или в sssysinfo , в Licenses зашит(зашифрован) ?
11.05.2022 12:51
OlegON
 
Я в свое время навскидку ковырнул, увидел его только в файле лицензии.
То есть номер в файле и номер воткнутого ключа, видимо, являются солью для шифрования.
То есть какую лицензию ты загрузил, в большей части и не узнаешь. Кстати, в большинстве случаев это и не имеет смысла - лучше перезагрузить файл полностью.
Если очень хочется разобраться - начни разбирать пакет Office.
11.05.2022 13:42
vdm
 
Если сервер СМ не работает, то проще лицензию на ключ перезалить в базу.
Если сервер СМ работает, то из кода можно получить параметры лицензии.
Процедуры в 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(SERIALNUMWSMAXCOUNTEXPDATE);
--    
DBMS_OUTPUT.PUT_LINE('SERIALNUM='|| SERIALNUM ||', WSMAXCOUNT='|| WSMAXCOUNT ||', EXPDATE='|| EXPDATE);
END
Кстати тема подобная: Количество лицензий запросом
11.05.2022 15:05
Starter
 
Да вот хотел обойтись без сервера супермага, остались базы закрытых магазинов, ключи переходили из одного в другой, хотел восстановить цепочку передач ключей, ну и для статистики...
CORE тоже смотрел, PROCEDURE PARSELICRECORD( LICRECORDDECODED IN VARCHAR2 ), но вот где взять LICRECORDDECODED - непонятно, это явно не Licenses из sssysinfo , судя по названию, как-то предварительно декодированная строка лицензии..
11.05.2022 16:46
vdm
 
Цитата:
Starter где взять LICRECORDDECODED - непонятно, это явно не Licenses из sssysinfo
Это расшифрованная Licenses. Ее процесс сервера выдает.
При большой необходимости можно вытащить и на неподходящем ключе, по крайней мере на старом тестовом 1025.1 сработало.
Типа такого:
- в базе пакет core заменяется на "ломаный", с измененной
SQL код:
PROCEDURE PARSELICRECORDLICRECORDDECODED 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, время: 08:40.

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