Forum Użytkownikow Subiekt GT

InsERT GT => Subiekt GT => Wątek zaczęty przez: amazinggirl w Sierpień 03, 2013, 14:42:17

Tytuł: Problem z aktualizacją bazy z wersji 1.28 SP3 do nowszej
Wiadomość wysłana przez: amazinggirl w Sierpień 03, 2013, 14:42:17
Witajcie,

Męczę się z tym już od kilku dni i jednak nie mogę sobie z tym poradzić. Aktualnie mam zainstalowaną wersję 1.28 SP3, lecz jak w temacie chciałbym ją zaktualizować do najnowszej np. 1.32. Wszystko stoi na Win 2012 i bazie 2008 R2.
Próbowałem nawet aktualizować stopniowo, więc z 1.28 SP3 to 1.29, ale cały czas ten sam komunikat. Też myślałem, że może winą jest wersja bazy danych, więc próbowałem wersji 2008, 2008 R2, 2012. Też bezskutecznie. Za każdym razem wszystko wykonywane było z konta administratora.

Dostaję taki oto komunikat:
Aktualizacja podmiotu: AGNEW z wersji: 1.2807 do wersji: 1.2901.10.2574 dnia: 2013-08-03 12:16:16
Zapisywanie informacji o początku konwersji
Zastosowano do podmiotu skrypt: C:\Program Files (x86)\InsERT\InsERT GT\Skrypty\skrypt1.2807_1.2900.enc
Czas: OdczepianieObiektow 00:00:00
Czas: UsuwanieConstraintow:Check,Default 00:00:12
Czas: OdczepianieConstraintow:PK,FK,Unique 00:00:00
Czas: UsuwanieRegul 00:00:00
Czas: UsuwanieDefaultow 00:00:02
Czas: DodawanieDefaultow 00:00:00
Czas: DodawanieRegul 00:00:00
Czas: PorzadkowanieTypowDanych 00:00:01
Czas: OdczepianieIndexow 00:00:00
Czas: PorzadkowanieTabelek 00:00:11
Czas: PorzadkowanieDanychSlownikowych 00:00:00
Czas: __Update 00:00:00
Czas: DodawanieIndexow 00:00:01
Czas: DodawanieConstraintow 00:00:04
Czas: UsuwanieZbednychTypowDanych 00:00:00
Nie powiodło się wykonanie polecenia:
if not exists (select * from dbo.sysobjects where id = object_id(N'vwListaCesji'))
BEGIN
EXEC sp_executesql N' CREATE VIEW [dbo].[vwListaCesji]
WITH ENCRYPTION --sp_setapprole
AS
SELECT
           nzc_Id as Ident,
           nzc_Opis as Opis_cesji,
           Zrodlo.Kontrahent as Kontrahent,
           Wynik.Kontrahent as Płatnik,
           nzc_DataUtworzenia as DataUtworzenia,
           nzc_Kierunek as Kierunek,
           Zrodlo.SumaRozrachunkowZrodlowych as Wartosc_naleznosci,
           Wynik.IleRozrachunkowWynikowych as Ile,
           Wynik.SumaRozrachunkowWynikowych as SumaSplat,
           CASE
           WHEN Wynik.SumaRozrachunkowWynikowych - Zrodlo.SumaRozrachunkowZrodlowych < 0 THEN 2
           WHEN Wynik.SumaRozrachunkowWynikowych - Zrodlo.SumaRozrachunkowZrodlowych = 0 THEN 0
           WHEN Wynik.SumaRozrachunkowWynikowych - Zrodlo.SumaRozrachunkowZrodlowych > 0 THEN 1 END         
           AS Zgodnosc_kwoty,
           CASE
           WHEN Wynik.IleRozrachunkowWynikowych > 1 THEN 1 ELSE 0 END
           AS Ilosc_rozrachunkow
                        from nz_Cesja cs left join   
              (
              select SUM(nzf_WartoscPierwotna) as SumaRozrachunkowZrodlowych,
              kh.kh_Symbol as Kontrahent,
               cr.nzcr_IdCesji as CesjaId
              from nz_CesjaRozrachunki cr left join
              nz__Finanse roz on nzcr_IdRozrachunku = roz.nzf_Id
              left join
              kh__Kontrahent kh on roz.nzf_IdObiektu = kh.kh_Id
              where nzcr_Typ = 1 group by kh.kh_Symbol, nzcr_IdCesji
              ) Zrodlo
              on cs.nzc_Id = Zrodlo.CesjaId
              left join
              (
              select SUM(nzf_WartoscPierwotna) as SumaRozrachunkowWynikowych,
              kh.kh_Symbol as Kontrahent,
               cr.nzcr_IdCesji as CesjaId,
               count(*) as IleRozrachunkowWynikowych
              from nz_CesjaRozrachunki cr left join
              nz__Finanse roz on nzcr_IdRozrachunku = roz.nzf_Id
              left join
              kh__Kontrahent kh on roz.nzf_IdObiektu = kh.kh_Id
              where nzcr_Typ = 2 group by kh.kh_Symbol, nzcr_IdCesji
              ) Wynik
               on cs.nzc_Id = Wynik.CesjaId
' END
Błąd 0x80040E14: Incorrect syntax near '3'.
Incorrect syntax near '3'.Incorrect syntax near 'Zrodlo'.Incorrect syntax near 'Wynik'.Aktualizacja podmiotu nie powiodła się: 0x80040e14: Incorrect syntax near '3'.

Wklejałem to zapytanie do wykonania, lecz nie mogło się wykonać - nie ma co się dziwić bo w bazie nie ma tabelki "nz_Cesja", ale nie mam pojęcia dlaczego.

Miał ktoś może podobny problem? Byłbym wdzięczny za każdą sugestię, która pozwoliłaby rozwiązać ten problem.

EDIT:
Z ciekawości utworzyłem nowy pusty podmiot w 1.28 SP3 i próbowałem aktualizacji do 1.29 - ta sama sytuacja.
Tytuł: Odp: Problem z aktualizacją bazy z wersji 1.28 SP3 do nowszej
Wiadomość wysłana przez: zuko w Czerwiec 22, 2016, 22:13:20
Jak zauwazyles problem jest z plikiem skrypt1.2807_1.2900.enc. Ktos cudownie zakodowal tam polska literę w slowie Płatnik (Wynik.Kontrahent as Płatnik). Podczas dekodowanie zaszyfrowanego pliku zmiast Płatnik jest P³atnik  - stad komunikat wskazujacy na Incorrect syntax near '3'. Najprostszy fix to utworzyc tabele nz_Cesja, nz_CesjaRozrachunki, nastepnie widok vwListaCesji. Niestety w pliku skrypt1.2807_1.2900.enc o ile tworzenie widoku objete jest
if not exists (select * from dbo.sysobjects where id = object_id(N'vwListaCesji'))o tyle tworzenie tabel juz nie, dlatego nalezy usunac tabele nz_Cesja, nz_CesjaRozrachunki i pozwolic subiektowi je ponownie utworzyc.

CREATE TABLE nz_Cesja (
[nzc_Id] [int]  NOT NULL ,
[nzc_Opis] [TOpis]  NULL ,
[nzc_DataUtworzenia] [datetime]  NOT NULL ,
[nzc_Wartosc] [money]  NOT NULL ,
[nzc_Kierunek] [int]  NOT NULL
) ON [PRIMARY]

go

CREATE TABLE nz_CesjaRozrachunki (
[nzcr_Id] [int]  NOT NULL ,
[nzcr_IdRozrachunku] [int]  NOT NULL ,
[nzcr_IdCesji] [int]  NOT NULL ,
[nzcr_Typ] [int]  NOT NULL
) ON [PRIMARY]

CREATE VIEW [dbo].[vwListaCesji]
WITH ENCRYPTION --sp_setapprole
AS
SELECT
           nzc_Id as Ident,
           nzc_Opis as Opis_cesji,
           Zrodlo.Kontrahent as Kontrahent,
           Wynik.Kontrahent as Platnik,
           nzc_DataUtworzenia as DataUtworzenia,
           nzc_Kierunek as Kierunek,
           Zrodlo.SumaRozrachunkowZrodlowych as Wartosc_naleznosci,
           Wynik.IleRozrachunkowWynikowych as Ile,
           Wynik.SumaRozrachunkowWynikowych as SumaSplat,

           CASE
           WHEN Wynik.SumaRozrachunkowWynikowych - Zrodlo.SumaRozrachunkowZrodlowych < 0 THEN 2
           WHEN Wynik.SumaRozrachunkowWynikowych - Zrodlo.SumaRozrachunkowZrodlowych = 0 THEN 0
           WHEN Wynik.SumaRozrachunkowWynikowych - Zrodlo.SumaRozrachunkowZrodlowych > 0 THEN 1 END         
           AS Zgodnosc_kwoty,
           CASE
           WHEN Wynik.IleRozrachunkowWynikowych > 1 THEN 1 ELSE 0 END
           AS Ilosc_rozrachunkow

                        from nz_Cesja cs left join   
              (
              select SUM(nzf_WartoscPierwotna) as SumaRozrachunkowZrodlowych,
              kh.kh_Symbol as Kontrahent,
               cr.nzcr_IdCesji as CesjaId
              from nz_CesjaRozrachunki cr left join
              nz__Finanse roz on nzcr_IdRozrachunku = roz.nzf_Id
              left join
              kh__Kontrahent kh on roz.nzf_IdObiektu = kh.kh_Id
              where nzcr_Typ = 1 group by kh.kh_Symbol, nzcr_IdCesji
              ) Zrodlo
              on cs.nzc_Id = Zrodlo.CesjaId
             
              left join
              (
              select SUM(nzf_WartoscPierwotna) as SumaRozrachunkowWynikowych,
              kh.kh_Symbol as Kontrahent,
               cr.nzcr_IdCesji as CesjaId,
               count(*) as IleRozrachunkowWynikowych
              from nz_CesjaRozrachunki cr left join
              nz__Finanse roz on nzcr_IdRozrachunku = roz.nzf_Id
              left join
              kh__Kontrahent kh on roz.nzf_IdObiektu = kh.kh_Id
              where nzcr_Typ = 2 group by kh.kh_Symbol, nzcr_IdCesji
              ) Wynik
               on cs.nzc_Id = Wynik.CesjaId

drop TABLE nz_Cesja
drop TABLE nz_CesjaRozrachunki

Teraz uruchom aktualizacje. Powodzenia.
Tytuł: Odp: Problem z aktualizacją bazy z wersji 1.28 SP3 do nowszej
Wiadomość wysłana przez: Chris w Czerwiec 22, 2016, 23:37:26
Problem z 2013 roku, a Ty dzisiaj odpisujesz?
Tytuł: Problem z aktualizacją bazy z wersji 1.28 SP3 do nowszej
Wiadomość wysłana przez: birds22 w Czerwiec 23, 2016, 07:11:53
A może ktoś jeszcze czeka?  ;)
Tytuł: Odp: Problem z aktualizacją bazy z wersji 1.28 SP3 do nowszej
Wiadomość wysłana przez: candy w Czerwiec 23, 2016, 09:33:09
Tyle że, o ile dobrze pamiętam, ten problem został usunięty w kolejnych mechanizmach konwersji i obecnie raczej nie ma problemów z przejściem 1.28SP3 na wyższe wersje.
Tytuł: Odp: Problem z aktualizacją bazy z wersji 1.28 SP3 do nowszej
Wiadomość wysłana przez: dkozlowski w Czerwiec 23, 2016, 09:39:49
Nie ma tego problemu, podnosiłem kilka podmiotów ze starszych wersji (zawsze "na raz" do najnowszej wersji).
Tytuł: Odp: Problem z aktualizacją bazy z wersji 1.28 SP3 do nowszej
Wiadomość wysłana przez: zuko w Czerwiec 23, 2016, 12:56:21
Problem stary, jednak dalej mozna sie na niego natknac :-) Wczoraj wlasnie walczylem z konwersja bardzo starej bazy (z 1.25 do 1.42). Nie analizowalem juz tego, ale w przeciwienstwie do innych konwersji ktore przeprowadzalem, ten SQL Server stal na angielskim windowsie.
Tytuł: Odp: Problem z aktualizacją bazy z wersji 1.28 SP3 do nowszej
Wiadomość wysłana przez: zuko w Czerwiec 24, 2016, 14:55:49
W ktorejs wersji pliku skrypt1.2807_1.2900.enc dodano na poczatku DROP VIEW vwListaCesji, tak wiec ostatecznym rozwiazaniem jest utworzenie 2 tabel oraz widoku opisnaych w poprzednim poscie, oraz nastepnie utworzenie tiggera na bazie danych:
 
CREATE trigger mytemptrigger on database
for DROP_VIEW
as
begin
if not exists (select * from dbo.sysobjects where id = object_id(N'vwListaCesji'))
BEGIN
EXEC sp_executesql N' CREATE VIEW [dbo].[vwListaCesji]
WITH ENCRYPTION --sp_setapprole
AS
SELECT
           nzc_Id as Ident,
           nzc_Opis as Opis_cesji,
           Zrodlo.Kontrahent as Kontrahent,
           Wynik.Kontrahent as Płatnik,
           nzc_DataUtworzenia as DataUtworzenia,
           nzc_Kierunek as Kierunek,
           Zrodlo.SumaRozrachunkowZrodlowych as Wartosc_naleznosci,
           Wynik.IleRozrachunkowWynikowych as Ile,
           Wynik.SumaRozrachunkowWynikowych as SumaSplat,
           CASE
           WHEN Wynik.SumaRozrachunkowWynikowych - Zrodlo.SumaRozrachunkowZrodlowych < 0 THEN 2
           WHEN Wynik.SumaRozrachunkowWynikowych - Zrodlo.SumaRozrachunkowZrodlowych = 0 THEN 0
           WHEN Wynik.SumaRozrachunkowWynikowych - Zrodlo.SumaRozrachunkowZrodlowych > 0 THEN 1 END         
           AS Zgodnosc_kwoty,
           CASE
           WHEN Wynik.IleRozrachunkowWynikowych > 1 THEN 1 ELSE 0 END
           AS Ilosc_rozrachunkow from nz_Cesja cs left join   
              (
              select SUM(nzf_WartoscPierwotna) as SumaRozrachunkowZrodlowych,
              kh.kh_Symbol as Kontrahent,
               cr.nzcr_IdCesji as CesjaId
              from nz_CesjaRozrachunki cr left join
              nz__Finanse roz on nzcr_IdRozrachunku = roz.nzf_Id
              left join
              kh__Kontrahent kh on roz.nzf_IdObiektu = kh.kh_Id
              where nzcr_Typ = 1 group by kh.kh_Symbol, nzcr_IdCesji
              ) Zrodlo
              on cs.nzc_Id = Zrodlo.CesjaId
              left join
              (
              select SUM(nzf_WartoscPierwotna) as SumaRozrachunkowWynikowych,
              kh.kh_Symbol as Kontrahent,
               cr.nzcr_IdCesji as CesjaId,
               count(*) as IleRozrachunkowWynikowych
              from nz_CesjaRozrachunki cr left join
              nz__Finanse roz on nzcr_IdRozrachunku = roz.nzf_Id
              left join
              kh__Kontrahent kh on roz.nzf_IdObiektu = kh.kh_Id
              where nzcr_Typ = 2 group by kh.kh_Symbol, nzcr_IdCesji
              ) Wynik
               on cs.nzc_Id = Wynik.CesjaId
'
end
end

Dopiero teraz konwersja przeszla na wszystkich srodowiskach klienta.

Trigger oczywiscie nalezy usunac po zakonczeniu aktualizacji.