System.ArgumentException: Source array was not long enough. Check srcIndex and length, and the array's lower bounds. det är en rätt basic fråga till sql-en och det vi lyckas inte framkalla felet på localhost Det känns som om det är lite "jobbig" kod, eller är det bara jag som är lat när jag skriver? mmmskumt felmeddelande från ms sql alternativt .net 1.1
i executereader
nån som känner igen?Sv: skumt felmeddelande från ms sql alternativt .net 1.1
vår konsult hade ett annat problem som kanske är relaterat problem där han lyckades tråda upp den här lösningen i så många trådar att physical threads-taket på windows servern tog slut :)
gick inte heller att framkalla på localhost
kan det vara så att sqlen trådar sina parameters till en sqlfråga
så att vi när det är hårt tryck förlorar parametrar från .net till server? (om threadpoolen är slut)
det är från vår prismotor så jag är lite tveksam om äh här dårå - sannolikt helt obergpligt för utomstående
Public Overrides Sub CalculatePriceForProduct()
Try
If Me.oQuantityBreak <= 0 Then
Try
MyBase.SendEvents()
Catch ex As Exception
Dim pException As New PandoraExceptionImpl(Me.oRequestItem, base.PandoraContracts.ErrorTypes.R3PriceError, base.PandoraContracts.ErrorStatus.Warning, "Error when sending thread event from qbreak price ", ex)
'MyBase.oObserver.NotifyErrorMessage(pException)
Throw pexception
End Try
Return
End If
Dim loCommand As New SqlCommand
loCommand.CommandType = CommandType.StoredProcedure
#If DEBUG Then
loCommand.CommandText = "sp_get_sellprice"
#Else
loCommand.CommandText = "sp_get_sellprice"
#End If
loCommand.Parameters.Add("@kndnr", Me.oRequestItem.CustomerERPNo).SqlDbType = SqlDbType.Int
loCommand.Parameters.Add("@plant", SqlDbType.VarChar, Me.oRequestItem.DefaultPlant.Length).Value = Me.oRequestItem.DefaultPlant
loCommand.Parameters.Add("@artnr", SqlDbType.VarChar, Me.oRequestItem.Item.ArticleId.Length).Value = Me.oRequestItem.Item.ArticleId
loCommand.Parameters.Add("@qty", Me.oQuantityBreak).SqlDbType = SqlDbType.Int
Try
If Not MyBase.ExecuteReader(loCommand, AddressOf Me.SetFromDRQBreak) Then
Me.oObserver.NotifyTraceValueToItem(base.PandoraContracts.TraceValues.NoQuantityBreakFound, "No QBPrice Found")
Throw New PandoraExceptionImpl(Me.oRequestItem, base.PandoraContracts.ErrorTypes.NoPrice, base.PandoraContracts.ErrorStatus.SmallError, "No quantity break price from R/3 ")
End If
Catch ex As PandoraExceptionImpl
Throw ex 'Catched again further down
Catch ex As Exception
Dim pException As New PandoraExceptionImpl(Me.oRequestItem, base.PandoraContracts.ErrorTypes.R3PriceError, base.PandoraContracts.ErrorStatus.BigError, "Error when getting R/3 qbreak price from db", ex)
Throw pException 'Catched again further down
End Try
Catch ex As PandoraExceptionImpl
MyBase.oObserver.NotifyErrorMessage(ex)
Catch ex As Exception
Dim pException As New PandoraExceptionImpl(Me.oRequestItem, base.PandoraContracts.ErrorTypes.R3PriceError, base.PandoraContracts.ErrorStatus.BigError, "Error when getting R/3 qbreak price from db", ex)
MyBase.oObserver.NotifyErrorMessage(pException)
End Try
MyBase.SendEvents()
End Sub
Sv:skumt felmeddelande från ms sql alternativt .net 1.1
Det _BÖR_ finnas enklare sätt att köra en procedur med 4 argument, som ändå ger en
säker och bra körning...
/mickeSv: skumt felmeddelande från ms sql alternativt .net 1.1
det har en del med trådningen att göra
utan exceptionhandling överallt så kan man inte vara säker på att man inte får trådlåsning elelr vad det kan heta på svenska eftersom prisuträknaren väntar på svar från alla trådarna
sen har han en tendens till överarbetad kod iofs