Hallo,
bekommen immer beim Update einen Fehler angezeigt. Jemand eine Idee wodran das liegen kann bzw wie wir das behoben bekommen?
Haben zuvor das Update auf 1.0.7 versucht, jedoch gleicher Fehler. SQL Server 2014 Express.
bekommen immer beim Update einen Fehler angezeigt. Jemand eine Idee wodran das liegen kann bzw wie wir das behoben bekommen?
Haben zuvor das Update auf 1.0.7 versucht, jedoch gleicher Fehler. SQL Server 2014 Express.
Code:
Unbehandelte Ausnahme #22E0748B1A05A713 vom Typ System.Data.SqlClient.SqlException in Void OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1[System.Action])
System.Data.SqlClient.SqlException (0x80131904): FOR XML konnte die Daten für den cArtNr-Knoten nicht serialisieren, weil ein in XML unzulässiges Zeichen (0x0019) enthalten ist. Um diese Daten mithilfe von FOR XML abzurufen, konvertieren Sie sie in den Datentyp 'binary', 'varbinary' oder 'image', und verwenden Sie die BINARY BASE64-Direktive.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at jtlDatabase.DB.zPyGYOOeK3[T](SqlConnection , Func`1 func)
at jtlDatabase.DB.executeLongRunningCommandSQL(String cSqlCommand)
at jtlCore.Classes.Update.SqlUpdater.<>c__DisplayClass2.<UpdateToVersion>b__0()
at jtlCore.Classes.Update.SqlUpdater.Q4QPjZFnqBk6sQZGDD.ivk69SDlS26(Action , Int32 , String )
at jtlCore.Classes.Update.SqlUpdater.sK3zfToiVW(IList`1 sqlCommands, String , TaskProgress )
ClientConnectionId:171b7ac0-2ce7-4864-ac5e-dfebeb3c222e
Error Number:6841,State:1,Class:16
SQL-Fehlerinformationen: [PRIMASERVER\JTLWAWI .Net SqlClient Data Provider] Fehler #6841 (Klasse 16) in Zeile 3: FOR XML konnte die Daten für den cArtNr-Knoten nicht serialisieren, weil ein in XML unzulässiges Zeichen (0x0019) enthalten ist. Um diese Daten mithilfe von FOR XML abzurufen, konvertieren Sie sie in den Datentyp 'binary', 'varbinary' oder 'image', und verwenden Sie die BINARY BASE64-Direktive.
HelpLink.ProdName = Microsoft SQL Server
HelpLink.ProdVer = 12.00.2000
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 6841
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476
CommandText = -- V�ter aus Bestellpositionen zu Freipositionen machen
DECLARE @xBestellpos XML;
SET @xBestellpos = (
SELECT dbo.tbestellpos.kBestellPos, 0 AS kArtikel, dbo.tbestellpos.tBestellung_kBestellung AS kBestellung,
dbo.tbestellpos.fVKPreis, dbo.tbestellpos.fMwSt, dbo.tbestellpos.nAnzahl, dbo.tbestellpos.fRabatt, dbo.tbestellpos.cString,
dbo.tbestellpos.fVKNetto, dbo.tbestellpos.cArtNr, dbo.tbestellpos.nType, dbo.tbestellpos.cHinweis, dbo.tbestellpos.nHatUpload,
dbo.tbestellpos.cUnique, dbo.tbestellpos.kKonfigitem, dbo.tbestellpos.nDropshipping, dbo.tbestellpos.fEKNetto,
dbo.tbestellpos.cOrderItemId, dbo.tbestellpos.cItemID, dbo.tbestellpos.cTransactionID, dbo.tbestellpos.kAmazonBestellungPos,
dbo.tbestellpos.nSort, dbo.tbestellpos.kBestellStueckliste, dbo.tbestellpos.cStringStandard
FROM dbo.tbestellpos
JOIN (
SELECT dbo.tbestellpos.kBestellPos
FROM dbo.tbestellpos
JOIN dbo.tArtikel ON dbo.tbestellpos.tArtikel_kArtikel = dbo.tArtikel.kArtikel
WHERE dbo.tArtikel.nIstVater = 1
) AS Result ON dbo.tbestellpos.kBestellPos = Result.kBestellPos
FOR XML PATH('Bestellpos'), TYPE
);
EXEC spBestellposAendern @xBestellpos = @xBestellpos;
LineNr = 3
Codefragment = SET @xBestellpos = (
Connection-String = DataSource=PRIMASERVER\JTLWAWI, InitialCatalog=eazybusiness, UserID=sa
2016-02-09T15:26:38 DEBUG - [SQL] Dauer: 3ms
2016-02-09T15:26:38 DEBUG - [SQL] CREATE TRIGGER [dbo].[tgr_tWarenLagerPlatz_INSUPDEL]
--
-- Copyright (c) 2012-2016 by JTL Software GmbH
-- Datum: $Date: 2016-02-03 14:34:51 +0100 (Wed, 03 Feb 2016) $
-- Version: $Rev: 39602 $
--
ON [dbo].[tWarenLagerPlatz]
AFTER INSERT, UPDATE, DELETE
AS
SET NOCOUNT ON;
SET ANSI_NULLS ON;
SET ANSI_NULL_DFLT_ON ON;
SET ANSI_PADDING ON;
SET CONCAT_NULL_YIELDS_NULL ON;
SET XACT_ABORT OFF;
BEGIN
--Überprüfen ob Trigger mit Inhalt aufgerufen wird
IF((SELECT COUNT(1) FROM INSERTED FULL JOIN DELETED ON INSERTED.kWarenLagerPlatz = DELETED.kWarenLagerPlatz) = 0)
BEGIN
RETURN
END
--
-- nGesperrt = Alles was auf diesem Platz liegt wird dem verfügbaren Bestand abgezogen. (Siehe spUpdateLagerBestand)
--
IF (UPDATE (nGesperrt))
BEGIN
DECLARE @Artikel AS XML
SET @Artikel = (
SELECT kArtikel AS 'kArtikel'
FROM
(
SELECT tWarenLagerPlatzArtikel.kArtikel
FROM INSERTED
JOIN tWarenLagerPlatzArtikel WITH(NOLOCK) ON INSERTED.kWarenLagerPlatz = tWarenLagerPlatzArtikel.kWarenLagerPlatz
GROUP BY tWarenLagerPlatzArtikel.kArtikel
UNION ALL
SELECT tWarenLagerPlatzArtikel.kArtikel
FROM DELETED
JOIN tWarenLagerPlatzArtikel WITH(NOLOCK) ON DELETED.kWarenLagerPlatz = tWarenLagerPlatzArtikel.kWarenLagerPlatz
GROUP BY tWarenLagerPlatzArtikel.kArtikel
) AS U1
WHERE kArtikel = U1.kArtikel
FOR XML PATH('Artikel'), TYPE
)
EXEC spUpdateLagerBestand @Artikel
END
END
2016-02-09T15:26:38 DEBUG - [SQL] Dauer: 1ms
2016-02-09T15:26:38 DEBUG - [SQL] ---
--- tgr_tWarenLagerPlatzArtikel_DELETE
---
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[tgr_tWarenLagerPlatzArtikel_DELETE]')
AND type IN ( N'TR', N'TA' ))
DROP TRIGGER [tgr_tWarenLagerPlatzArtikel_DELETE]
2016-02-09T15:26:38 DEBUG - [SQL] Dauer: 3ms
2016-02-09T15:26:38 DEBUG - [SQL] CREATE TRIGGER [dbo].[tgr_tWarenLagerPlatzArtikel_DELETE]
--
-- Copyright (c) 2012-2016 by JTL Software GmbH
-- Datum: $Date: 2016-02-03 14:34:51 +0100 (Wed, 03 Feb 2016) $
-- Version: $Rev: 39602 $
--
ON [dbo].[tWarenLagerPlatzArtikel]
AFTER DELETE
AS
SET NOCOUNT ON;
SET ANSI_NULLS ON;
SET ANSI_NULL_DFLT_ON ON;
SET ANSI_PADDING ON;
SET CONCAT_NULL_YIELDS_NULL ON;
SET XACT_ABORT OFF;
BEGIN
--Überprüfen ob Trigger gefüllt aufgerufen wird
IF((SELECT COUNT(1) FROM DELETED) = 0)
BEGIN
RETURN
END
DECLARE @Artikel AS XML
SET @Artikel = (
SELECT kArtikel FROM DELETED
GROUP BY DELETED.kArtikel
FOR XML PATH('Artikel'), TYPE
)
EXEC spUpdateLagerBestand @Artikel
END
2016-02-09T15:26:38 DEBUG - [SQL] Dauer: 0ms
2016-02-09T15:26:38 DEBUG - [SQL] ---
--- tgr_tXSell_Connector_DELETE
---
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[tgr_tXSell_Connector_DELETE]')
AND type IN ( N'TR', N'TA' ))
DROP TRIGGER [tgr_tXSell_Connector_DELETE]
2016-02-09T15:26:38 DEBUG - [SQL] Dauer: 3ms
2016-02-09T15:26:38 DEBUG - [SQL] CREATE TRIGGER [dbo].[tgr_tXSell_Connector_DELETE]
--
-- Copyright (c) 2012-2016 by JTL Software GmbH
-- Datum: $Date: 2016-02-03 14:34:51 +0100 (Wed, 03 Feb 2016) $
-- Version: $Rev: 39602 $
-- Autor: MP
--
ON [dbo].[tXSell]
AFTER DELETE
AS
SET NOCOUNT ON;
SET ANSI_NULLS ON;
SET ANSI_NULL_DFLT_ON ON;
SET ANSI_PADDING ON;
SET CONCAT_NULL_YIELDS_NULL ON;
SET XACT_ABORT OFF;
BEGIN
--Überprüfen ob Trigger gefüllt aufgerufen wird
IF((SELECT COUNT(1) FROM DELETED) = 0)
BEGIN
RETURN;
END;
DECLARE @Komplett AS INT;
--DECLARE @Preis AS INT;
--DECLARE @Bestand AS INT;
SET @Komplett = 1
--SET @Preis = 2
--SET @Bestand = 4
INSERT INTO dbo.tQueue (kShop, kPlattform, cName, kWert, nAction, kOption1, kOption2, nInBearbeitung)
SELECT dbo.tArtikelShop.kShop, 0, 'tXSell', DELETED.kArtikel, 2, 0, 0, 0
FROM DELETED
JOIN dbo.tArtikelShop ON DELETED.kArtikel = dbo.tArtikelShop.kArtikel
LEFT JOIN dbo.tXSell ON DELETED.kArtikel = dbo.tXSell.kArtikel
WHERE dbo.tXSell.kArtikel IS NULL
UPDATE dbo.tArtikelShop
SET dbo.tArtikelShop.cInet = 'Y',
dbo.tArtikelShop.nAktion = @Komplett,
dbo.tArtikelShop.nInBearbeitung = 0
FROM DELETED
JOIN dbo.tArtikelShop ON DELETED.kArtikel = dbo.tArtikelShop.kArtikel
JOIN dbo.tXSell ON DELETED.kArtikel = dbo.tXSell.kArtikel
WHERE dbo.tArtikelShop.cInet = 'N'
OR dbo.tArtikelShop.nAktion & @Komplett = 0
OR dbo.tArtikelShop.nInBearbeitung = 1;
END
2016-02-09T15:26:38 DEBUG - [SQL] Dauer: 1ms
2016-02-09T15:26:38 DEBUG - [SQL] ---
--- tgr_tXSell_Connector_INSERT_UPDATE
---
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[tgr_tXSell_Connector_INSERT_UPDATE]')
AND type IN ( N'TR', N'TA' ))
DROP TRIGGER [tgr_tXSell_Connector_INSERT_UPDATE]
2016-02-09T15:26:38 DEBUG - [SQL] Dauer: 3ms
2016-02-09T15:26:38 DEBUG - [SQL] CREATE TRIGGER [dbo].[tgr_tXSell_Connector_INSERT_UPDATE]
--
-- Copyright (c) 2012-2016 by JTL Software GmbH
-- Datum: $Date: 2016-02-03 14:34:51 +0100 (Wed, 03 Feb 2016) $
-- Version: $Rev: 39602 $
-- Autor: MP
--
ON [dbo].[tXSell]
AFTER UPDATE, INSERT
AS
SET NOCOUNT ON;
SET ANSI_NULLS ON;
SET ANSI_NULL_DFLT_ON ON;
SET ANSI_PADDING ON;
SET CONCAT_NULL_YIELDS_NULL ON;
SET XACT_ABORT OFF;
BEGIN
--Überprüfen ob Trigger gefüllt aufgerufen wird
IF((SELECT COUNT(1) FROM INSERTED) = 0)
BEGIN
RETURN;
END
DECLARE @Komplett AS INT;
--DECLARE @Preis AS INT;
--DECLARE @Bestand AS INT;
SET @Komplett = 1
--SET @Preis = 2
--SET @Bestand = 4
--
-- Artikel vollständig zu Webshops senden, wenn Änderungen vorgenommen wurden
--
UPDATE dbo.tArtikelShop
SET dbo.tArtikelShop.nAktion = dbo.tArtikelShop.nAktion | @Komplett,
dbo.tArtikelShop.cInet = 'Y',
dbo.tArtikelShop.nInBearbeitung = 0
FROM dbo.tArtikelShop
JOIN INSERTED ON dbo.tArtikelShop.kArtikel = INSERTED.kArtikel
WHERE dbo.tArtikelShop.cInet = 'N'
OR dbo.tArtikelShop.nAktion & @Komplett = 0
OR dbo.tArtikelShop.nInBearbeitung = 1;
END
2016-02-09T15:26:38 DEBUG - [SQL] Dauer: 0ms
2016-02-09T15:26:38 DEBUG - [SQL] ---
--- tgr_tZahlung_INSUPDEL
---
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[tgr_tZahlung_INSUPDEL]')
AND type IN ( N'TR', N'TA' ))
DROP TRIGGER [tgr_tZahlung_INSUPDEL]
2016-02-09T15:26:38 DEBUG - [SQL] Dauer: 3ms
2016-02-09T15:26:38 DEBUG - [SQL] CREATE TRIGGER [dbo].[tgr_tZahlung_INSUPDEL]
--
-- Copyright (c) 2012-2016 by JTL Software GmbH
-- Datum: $Date: 2016-02-03 14:34:51 +0100 (Wed, 03 Feb 2016) $
-- Version: $Rev: 39602 $
--
ON [dbo].[tZahlung]
AFTER INSERT, UPDATE, DELETE
AS
SET CONCAT_NULL_YIELDS_NULL ON;
SET ANSI_WARNINGS ON;
SET ANSI_PADDING ON;
SET NOCOUNT ON;
BEGIN
--Überprüfen ob Trigger gefüllt aufgerufen wird
IF((SELECT COUNT(1) FROM INSERTED FULL JOIN DELETED ON INSERTED.kZahlung = DELETED.kZahlung) = 0)
BEGIN
RETURN
END
DECLARE @kZahlungenOhneZahlungsart AS TABLE (kZahlung INT)
DECLARE @xBestellung AS XML
SET @xBestellung = (
SELECT DISTINCT U1.kBestellung FROM
(
SELECT DELETED.kBestellung FROM DELETED
UNION
SELECT INSERTED.kBestellung FROM INSERTED
) AS U1
JOIN dbo.tbestellpos ON dbo.tbestellpos.tBestellung_kBestellung = U1.kBestellung
FOR XML PATH('Bestellung'), TYPE
)
IF(@xBestellung IS NOT NULL)
BEGIN
EXEC spBestellungEckdatenAktualisieren @xBestellungen = @xBestellung, @nKomplettAusgeliefertNichtBerechnen = 1;
END
--
-- Hier wird sichergestellt, dass kZahlungsart nicht 0 ist
-- Dies ist für Ameisenexporte von Rechnungen erforderlich
-- Der Wert 0 als Zahlungsart kann durch Importe aus externen Systemen entstehen
--
INSERT INTO @kZahlungenOhneZahlungsart (kZahlung)
SELECT U1.kZahlung FROM
(
SELECT DELETED.kZahlung, DELETED.kZahlungsart FROM DELETED WHERE ISNULL(DELETED.kZahlungsart, 0) = 0
UNION
SELECT INSERTED.kZahlung, INSERTED.kZahlungsart FROM INSERTED WHERE ISNULL(INSERTED.kZahlungsart, 0) = 0
) AS U1
if(ISNULL((SELECT COUNT(kZahlung) FROM @kZahlungenOhneZahlungsart), 0) > 0)
BEGIN
DECLARE @kStandardZahlungsart INT
SET @kStandardZahlungsart = ISNULL((SELECT TOP 1 tZahlungsart.kZahlungsart FROM tZahlungsart), 0)
--
-- Wenn keine Zahlungsart ermittelt werden kann wird eine Dummy-Zahlungsart angelegt
--
if(@kStandardZahlungsart = 0)
BEGIN
DECLARE @kZahlungsartPK AS TABLE (kZahlungsart INT)
INSERT INTO @kZahlungsartPK(kZahlungsart) EXEC spGetAndUpdatePK 'tZahlungsart'
SET @kStandardZahlungsart = ISNULL((SELECT TOP 1 kZahlungsart FROM @kZahlungsartPK), 0)
INSERT INTO tZahlungsart(kZahlungsart, cName, cPrtString, nLastschrift, cPrtStringVor, cPaymentOption, cKonto, nAusliefernVorZahlung)
VALUES(@kStandardZahlungsart, 'Automatisch angelegt', '', 0, '', '', '', 0)
END
--
-- Zahlungsart setzen wo diese = 0 ist
--
UPDATE tZahlung WITH(ROWLOCK) SET tZahlung.kZahlungsart = ISNULL(tZahlungsart.kZahlungsart, @kStandardZahlungsart)
FROM tZahlung WITH(ROWLOCK)
LEFT JOIN tZahlungsart WITH(NOLOCK) ON LOWER(tZahlung.cName) = LOWER(tZahlungsart.cName)
WHERE tZahlung.kZahlung IN
(
SELECT kZahlung FROM @kZahlungenOhneZahlungsart
)
END
END
2016-02-09T15:26:38 DEBUG - [SQL] Dauer: 3ms
2016-02-09T15:26:38 DEBUG - [SQL] ---
--- tinetbestellpos_DELETE
---
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[tinetbestellpos_DELETE]')
AND type IN ( N'TR', N'TA' ))
DROP TRIGGER [tinetbestellpos_DELETE]
2016-02-09T15:26:38 DEBUG - [SQL] Dauer: 3ms
2016-02-09T15:26:38 DEBUG - [SQL] CREATE TRIGGER [dbo].[tinetbestellpos_DELETE]
--
-- Copyright (c) 2012-2016 by JTL Software GmbH
-- Datum: $Date: 2016-02-03 14:34:51 +0100 (Wed, 03 Feb 2016) $
-- Version: $Rev: 39602 $
--
ON [dbo].[tinetbestellpos]
AFTER DELETE
AS
SET NOCOUNT ON;
SET ANSI_NULLS ON;
SET ANSI_NULL_DFLT_ON ON;
SET ANSI_PADDING ON;
SET CONCAT_NULL_YIELDS_NULL ON;
SET XACT_ABORT OFF;
BEGIN
UPDATE dbo.tArtikelShop
SET dbo.tArtikelShop.cInet = 'Y',
dbo.tArtikelShop.nAktion = 1,
dbo.tArtikelShop.nInBearbeitung = 0
FROM DELETED
JOIN dbo.tArtikelShop ON DELETED.kArikel = dbo.tArtikelShop.kArtikel
AND DELETED.kShop = dbo.tArtikelShop.kShop
WHERE dbo.tArtikelShop.cInet <> 'Y'
AND dbo.tArtikelShop.nAktion = 0;
END;
2016-02-09T15:26:38 DEBUG - [SQL] Dauer: 0ms
2016-02-09T15:26:38 DEBUG - [SQL] ---
--- DatabaseModification
---
TRUNCATE TABLE tLastModified;
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'ebay_xx_sites', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'ebay_xx_versandarten', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'pf_amazon_Mapping_Variationsnamen', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tbenutzer', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tBenutzerFirma', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tbenutzerrechte', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'teinstellungen', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tfirma', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tkonfiggruppesprache', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tKundenGruppe', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tland', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tLogistik', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tOptions', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tprintform', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tSpracheUsed', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tversion', '2000-01-01T00:00:00');
INSERT INTO tLastModified (cTablename, dLastModified) VALUES (N'tWaehrungISO', '2000-01-01T00:00:00');
---
--- tVersion setzen
---
UPDATE [dbo].[tVersion] SET [cVersion] = '1.0.9.1';
2016-02-09T15:26:38 DEBUG - [SQL] Dauer: 2ms
Zeitstempel: 2016-02-09T15:26:42
Locale: German (Germany)
Locale: German (Germany)
Version: 1.0.9.1
Plattform: Wawi
Versionshash: 6BF48CF4
Prozessname: System.Diagnostics.Process (JTL-wawi)
Physikalischer Speicher: 226766848 / Peak: 328355840
Basispriorität: 8
Prioritätsklasse: Normal
CPU-Zeit (User): 0:00:11,6220745
CPU-Zeit (System): 0:00:01,6692107
Page-Size (Sytem): 863736 / Peak: 263753728
Page-Size: 160321536 / Peak: 263753728
Offene Handles: 722