testowa baza danych na kluczu klienckim

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET

Moderator: mikey

Dorota
Posty: 70
Rejestracja: 12 maja 2010, 12:17
Rola: Administrator CDN XL

testowa baza danych na kluczu klienckim

Post autor: Dorota »

Cześć,

wygenerowałam sobie baze testową na moim kluczu HASP partnerskim.
Podpięłam bazę na serwer klienta. Klient ma swój HASP kliencki. Baza danych u niego nie działa: konflikt kluczy
Czy ktoś wie gdzie siedzi informacja o kluczu HASP? Jak to podmienić żeby baza wygenerowana u mnie działała na kluczu klienta?
Zastanawiam się czy w ogóle da się coś takiego zrobić bo podobno klucz kliencki daje możliwość wygenerowania i obsługi tylko jednej bazy danych (i ewentualnych jej kopii)

Yuber
Posty: 934
Rejestracja: 12 sty 2009, 12:03
Rola: Administrator CDN XL
Wersja: 2016
Lokalizacja: Kraków

Re: testowa baza danych na kluczu klienckim

Post autor: Yuber »

Jeśli chodzi o klucz kliencki to tak jest możliwe wygenerowanie tylko bazy pod ten klucz. Można też obsługiwać dowolną ilość kopii tej bazy danych.
Co do klucza partnerskiego nie wiem jak to działa, bo nigdy nie miałem z nim do czynienia ale wiem, że partner który nas obsługiwał przychodził z własnym kluczem i korzystał z naszej bazy danych (ale nie było to generowanie bazy danych z klucza pobierał tylko licencje).

elmiq
Posty: 1025
Rejestracja: 23 sie 2010, 10:04
Rola: Administrator CDN XL
Lokalizacja: Warszawa

Re: testowa baza danych na kluczu klienckim

Post autor: elmiq »

Każda wygenerowana baza = GIDFirma. Do tego dochodzi np. tabela SystemCDN. Najlepiej wygenerować bazę na kluczu klienta, wziąć backup do siebie i konfigurować na kluczu partnerskim, niemniej jednak, da się to przerobić.

Pozdrawiam,
Mateusz
Mateusz Świerkosz

http://elmiq.blogspot.com/

Dorota
Posty: 70
Rejestracja: 12 maja 2010, 12:17
Rola: Administrator CDN XL

Re: testowa baza danych na kluczu klienckim

Post autor: Dorota »

elmiq pisze:Każda wygenerowana baza = GIDFirma. Do tego dochodzi np. tabela SystemCDN. Najlepiej wygenerować bazę na kluczu klienta, wziąć backup do siebie i konfigurować na kluczu partnerskim, niemniej jednak, da się to przerobić.

Pozdrawiam,
Mateusz
Jeżeli jest świeża baza to jak najbardziej można zastosować Twoje rozwiązanie. Ja może naświetlę o co chodzi i po co mi to potrzebne :)
Na bazie klienta nie działa funkcjonalność planu produkcyjnego (jakiś błąd na bazie, wymaga to głębszej analizy). Klient chciałby narzędzie planu potestować sobie "na już" u siebie. Wniosek z tego taki że musiałabym mu udostępnić bazę testową ale nie utworzoną z jego backupu bo tam plan nie działa. Na jego kluczu kolejnej bazy nie mogę wygenerować...mogę to zrobić na swoim kluczu partnerskim tyle że baza wygenerowana na moim kluczu nie działa u nich. Stąd pytanie o to w którym miejscu podmienić wpisy żeby system oszukać. Ma ktoś jakiś pomysł?

elmiq
Posty: 1025
Rejestracja: 23 sie 2010, 10:04
Rola: Administrator CDN XL
Lokalizacja: Warszawa

Re: testowa baza danych na kluczu klienckim

Post autor: elmiq »

Hej,

Musisz zrobić to tak: Odtwarzasz u klienta backup bazy wygenerowanej na kluczu partnerskim, a następnie aktualizujesz tabelę CDN.SystemCDN (konkretnie rekordy o SYS_ID IN (0,1,2), ponieważ one wchodzą w skład sumy kontrolnej) na podstawie bazy wygenerowanej na kluczu klienckim. Po czymś takim baza już się uruchomi, ale zostają jeszcze wpisy z GIDFirma, które możesz znaleźć np. tak:

Kod: Zaznacz cały

SELECT T.name AS Tabela, 
       I.rows AS Wiersze 
FROM   sys.tables AS T
       INNER JOIN sys.sysindexes AS I 
               ON T.object_id = I.id 
                  AND I.indid < 2 
                  AND EXISTS (SELECT 1 FROM sys.columns c WHERE c.name LIKE '%GIDFirma%' AND c.object_id = T.object_id)
WHERE I.rows > 0
ORDER  BY I.rows DESC 
Jest to o tyle ważne, że trzeba te rekordy zaktualizować na odpowiedni numer GIDFirma, aby system funkcjonował prawidłowo.

Pozdrawiam,
Mateusz
Mateusz Świerkosz

http://elmiq.blogspot.com/

Awatar użytkownika
wacek
Posty: 709
Rejestracja: 27 paź 2008, 18:04
Rola: Administrator CDN XL
Lokalizacja: Łódzkie

Re: testowa baza danych na kluczu klienckim

Post autor: wacek »

Kiedyś coś podobnego miałem, utworzyłem nową bazę i potem do niej insertowałem kilkadziesiąt tabel z istniejącej i właśnie zapomniałem o "firmie".
Ja podmieniłem wartości we wszystkich kolumnach w których jest słowo "firma" a nie tylko w tych co jest "GIDFirma".
Baza działa już 3 lata.

Kod z którego korzystałem:

Kod: Zaznacz cały

DECLARE @Tabela VARCHAR(100),@Kolumna VARCHAR(100), @SQL VARCHAR(8000)

DECLARE Firma CURSOR FOR
                        SELECT C.TABLE_SCHEMA+'.'+C.TABLE_NAME,C.COLUMN_NAME
                        FROM INFORMATION_SCHEMA.TABLES T
                        JOIN INFORMATION_SCHEMA.COLUMNS C ON T.TABLE_NAME=C.TABLE_NAME
                        WHERE T.TABLE_SCHEMA='CDN'
						AND T.TABLE_TYPE='BASE TABLE'
						AND C.COLUMN_NAME LIKE '%firma%'
						AND C.TABLE_NAME NOT IN ('DtsWyplatyKwoty','PIKKwoty')
OPEN Firma
FETCH NEXT FROM Firma INTO @Tabela,@Kolumna
WHILE (@@FETCH_STATUS=0)
BEGIN
SET @SQL='UPDATE F SET F.'+CAST(@Kolumna AS VARCHAR(100))+'=12345 /*Nowy*/
          FROM '+CAST(@Tabela AS VARCHAR(100))+' F
          WHERE F.'+CAST(@Kolumna AS VARCHAR(100))+'=67890 /*Stary*/'
PRINT(@SQL)
EXEC(@SQL)
FETCH NEXT FROM Firma INTO @Tabela,@Kolumna
END
CLOSE Firma
DEALLOCATE Firma
Pozdrawiam,
Robert

select convert(varchar(100),0x637a6173616d69207069737aea2074752067b375706f7479203a29)

elmiq
Posty: 1025
Rejestracja: 23 sie 2010, 10:04
Rola: Administrator CDN XL
Lokalizacja: Warszawa

Re: testowa baza danych na kluczu klienckim

Post autor: elmiq »

Jeszcze można dopisać coś takiego, aby nie próbować robić pustych update:

Kod: Zaznacz cały

AND EXISTS (
				  SELECT TT.name AS Tabela, 
       I.rows AS Wiersze 
FROM   sys.tables AS TT
       INNER JOIN sys.sysindexes AS I 
               ON TT.object_id = I.id 
                  AND I.indid < 2 
                  AND EXISTS (SELECT 1 FROM sys.columns c WHERE c.name LIKE '%Firma%' AND c.object_id = TT.object_id)
WHERE I.rows > 0 AND T.TABLE_NAME = TT.name
)
, ale to i tak nie załatwia sprawy, ponieważ na liście znajdą się kolumny takie jak Knt_BnkFirma, których aktualizować nie trzeba, więc tak czy tak musisz przefiltrować część tych pozycji ręcznie. Niemniej jednak wykorzystaj kod Roberta i tylko trochę go zmodyfikuj, bo rzeczywiście część rzeczy (np. AVISTA) jest dodana już na starcie i należy zmienić powiązania, a kolumny z samym GIDFirma, jak podałem we wcześniejszym poście tego nie zapewniają.

Pozdrawiam,
Mateusz
Mateusz Świerkosz

http://elmiq.blogspot.com/

Awatar użytkownika
wacek
Posty: 709
Rejestracja: 27 paź 2008, 18:04
Rola: Administrator CDN XL
Lokalizacja: Łódzkie

Re: testowa baza danych na kluczu klienckim

Post autor: wacek »

Mateusz, w kodzie jest where="strary numer firmy", jak knt_bnkfirma ma 0 czyli jak jest to w standardzie to go nie zamieni na "nowy numer firmy", to samo tyczy innych kolumn.
Pozdrawiam,
Robert

select convert(varchar(100),0x637a6173616d69207069737aea2074752067b375706f7479203a29)

elmiq
Posty: 1025
Rejestracja: 23 sie 2010, 10:04
Rola: Administrator CDN XL
Lokalizacja: Warszawa

Re: testowa baza danych na kluczu klienckim

Post autor: elmiq »

Rzeczywiście, nie zescrollowałem do samego update i nie wiedziałem. W takim razie suma kontrolna + twoje zapytanie i jest po sprawie :)

Pozdrawiam,
Mateusz
Mateusz Świerkosz

http://elmiq.blogspot.com/

Dorota
Posty: 70
Rejestracja: 12 maja 2010, 12:17
Rola: Administrator CDN XL

Re: testowa baza danych na kluczu klienckim

Post autor: Dorota »

Dziękuję :) Wszystko działa :)

ODPOWIEDZ