Gelöst Fehler bei Datenbankkonvertierung

USCH

Aktives Mitglied
9. Oktober 2012
20
0
Hallo JTL-Team,
wollte gerade die neue 940 einspielen (auf die aktuelle 923) und bekomme dabei folgenden Fehler:

Unbehandelte Ausnahme #1F707B99CCEE9600 vom Typ System.Data.SqlClient.SqlException in Void OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1[System.Action])
System.Data.SqlClient.SqlException (0x80131904): Fehler beim Konvertieren des varchar-Werts 'test' in den int-Datentyp.
bei System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
bei System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
bei System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
bei System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
bei System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
bei System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
bei System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
bei jtlDatabase.DB.HNeLZKFOLp[T](SqlConnection , Func`1 func)
bei jtlDatabase.DB.executeLongRunningCommandSQL(String cSqlCommand)
bei jtlCore.Classes.Update.SqlUpdater.<>c__DisplayClass2.<UpdateToVersion>b__0()
bei jtlCore.Classes.Update.SqlUpdater.AcW8Gjeu1BupRTGRAP.YfcSe24Jj8(Action , Int32 , String )
bei jtlCore.Classes.Update.SqlUpdater.zxfSBb93IS(IList`1 sqlCommands, String , TaskProgress )
ClientConnectionId:81dc4f7f-8fbe-49fd-871a-d8fa97919930
Fehlernummer (Error Number):245,Status (State):1,Klasse (Class):16
SQL-Fehlerinformationen: [HYPER_W8\JTLWAWI .Net SqlClient Data Provider] Fehler #245 (Klasse 16) in Zeile 1: Fehler beim Konvertieren des varchar-Werts 'test' in den int-Datentyp.
HelpLink.ProdName = Microsoft SQL Server
HelpLink.ProdVer = 11.00.2100
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 245
HelpLink.BaseHelpUrl = Microsoft Deutschland | Geräte und Dienste
HelpLink.LinkId = 20476
CommandText = INSERT INTO tKategorieAttributSprache (kKategorieAttribut, kSprache, cWertVarchar, nWertInt, fWertDecimal, dWertDateTime)
SELECT
dbo.tKategorieAttribut.kKategorieAttribut,
0,
CASE
WHEN dbo.tFeldTyp.nDatenTyp = 2 THEN dbo.tKategorieAttribute.cValue
ELSE NULL
END AS cWertVarchar,
CASE
WHEN dbo.tFeldTyp.nDatenTyp = 0 THEN CAST(dbo.tKategorieAttribute.cValue AS INT)
ELSE NULL
END AS nWertInt,
CASE
WHEN dbo.tFeldTyp.nDatenTyp = 1 THEN CAST(dbo.tKategorieAttribute.cValue AS DECIMAL(28,15))
ELSE NULL
END AS fWertDecimal,
CASE
WHEN dbo.tFeldTyp.nDatenTyp = 3 THEN CAST(dbo.tKategorieAttribute.cValue AS datetime)
ELSE NULL
END AS dWertDateTime
FROM tKategorieAttribut
JOIN tKategorieAttribute ON tKategorieAttribute.kKategorieAttribute = tKategorieAttribut.kAttributAlt
JOIN tAttribut ON dbo.tAttribut.kAttribut = dbo.tKategorieAttribut.kAttribut
JOIN tFeldTyp ON dbo.tFeldTyp.kFeldTyp = dbo.tAttribut.kFeldTyp
Connection-String = DataSource=HYPER_W8\JTLWAWI, InitialCatalog=eazybusiness, UserID=sa

Zeitstempel: 2015-02-26T13:04:58
Locale: German (Germany)
Locale: German (Germany)
Version: 099940
Plattform: Wawi
Versionshash: DCE80225
Prozessname: System.Diagnostics.Process (JTL-wawi)
Physikalischer Speicher: 190189568 / Peak: 298831872
Basispriorität: 8
Prioritätsklasse: Normal
CPU-Zeit (User): 0:00:13,21875
CPU-Zeit (System): 0:00:03,671875
Page-Size (Sytem): 998584 / Peak: 222212096
Page-Size: 112123904 / Peak: 222212096
Offene Handles: 1255

Gruß
Uwe
 

tafechner

Offizieller Service Partner
SPBanner
31. Juli 2010
811
125
Berlin
AW: Fehler bei Datenbankkonvertierung

Hallo, ich hänge mich hier mal mit ran. Wir haben ja als SP eine Test DB mal erhalten die wir instensiv auch bis zur 0.99923 nutzten, seit dem updates wird die leider nicht geupatdet.
Ob von der 0.99923 -> 0.99926 dann auch in den weiteren updates 0.99933; 0.99939u und jetzt 0.99940 immer der gleiche Fehler

Unbehandelte Ausnahme #1F707B99CCEE9600 vom Typ System.Data.SqlClient.SqlException in Void OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1[System.Action])
System.Data.SqlClient.SqlException (0x80131904): Ein Sortierungskonflikt zwischen 'SQL_Latin1_General_CP1_CI_AS' und 'Latin1_General_CI_AS' im equal to-Vorgang kann nicht aufgelöst werden.[/PHP]

Schaut es euch doch nochmal an

Gruss aus Berlin Torsten
 

Anhänge

maik.schwefer

Moderator
Mitarbeiter
1. August 2012
2.548
46
Köln
AW: Fehler bei Datenbankkonvertierung

Hallo,

das sind 2 unterschiedliche Punkte.

@USCH: Das Thema wird mit der 941 behoben sein. Es liegt daran, dass in der alten Version bei Attributen die "ganzzahlen" sind Textwerte gepflegt wurden. Das fliegt "korrekterweise" bei der Migration auf die Nase. Wir werden in der Migration jedoch einbauen, dass diese irregulären Werte gelöscht werden. Zum testen kannst du bis nächste Woche folgendes Statement auf der Datenbank ausführen: DELETE FROM tKategorieAttribute WHERE cValue = 'test' Damit werden alle Kategorieattribute mit den Namen "test" gelöscht. Einer davon ist das Problemkind.

@Torsten: Du Kollationen in der Datenbank stimmen nicht mehr überein. Wir haben dafür im DB-Tool in der 940 einen neuen Punkt unter "Datenbank-Reparatur" (im gleichen Menü wo auch Export, Import etc zu finden ist). Den kannst du mal ausführen auf der Datenbank. Also Datenbank importieren und direkt DB-Reparatur und danach versuchen zu updaten. Bei Problemen schreib mich bitte direkt eben an im Skype.
 

tafechner

Offizieller Service Partner
SPBanner
31. Juli 2010
811
125
Berlin
AW: Fehler bei Datenbankkonvertierung

Hallo,
@Torsten: Du Kollationen in der Datenbank stimmen nicht mehr überein. Wir haben dafür im DB-Tool in der 940 einen neuen Punkt unter "Datenbank-Reparatur" (im gleichen Menü wo auch Export, Import etc zu finden ist). Den kannst du mal ausführen auf der Datenbank. Also Datenbank importieren und direkt DB-Reparatur und danach versuchen zu updaten. Bei Problemen schreib mich bitte direkt eben an im Skype.


Super funktioniert, DB konnte ich nun Problemlos updaten.

Danke für die schnelle Umsetzung von 099939 -> 099940

Gruss aus dem sonnigen Berlin
Torsten
 

Ähnliche Themen