Beste medeTweakers,
Ik zit hier serieus te vloeken op een klein deel van mijn script. Ik krijg van een Stored Procedure een decimale waarde terug. Ik heb dit getest met het volgende kleine scriptje via SQL Query Analyzer :
De 2 prijzen worden mooi decimaal getoond.
Maar in ASP krijg ik dit onmogelijk als een decimale waarde terug. Hij blijft er een integer van maken. Ik heb de volgende code
Maak je geen zorgen over de waardes die ik meegeef, deze zijn allemaal correct. Maar hij geeft bijvoorbeeld in plaats van 9.99 een 10 voor iDomainPrice.
Iemand enig idee waar dit aan kan liggen? Ik heb me al letterlijk zot gegoogled, en mijn code lijkt me correct te zijn.
Ik zit hier serieus te vloeken op een klein deel van mijn script. Ik krijg van een Stored Procedure een decimale waarde terug. Ik heb dit getest met het volgende kleine scriptje via SQL Query Analyzer :
SQL:
1
2
3
4
5
6
7
| DECLARE @DomainPrice decimal(10,2) DECLARE @DomainPriceDiscount decimal(10,2) DECLARE @DiscountReason nvarchar(255) EXEC sp_GetInvoiceDomainPrice 4287, 3594, 1, @DomainPrice OUTPUT, @DomainPriceDiscount OUTPUT, @DiscountReason OUTPUT SELECT @DomainPrice, @DomainPriceDiscount, @DiscountReason |
De 2 prijzen worden mooi decimaal getoond.
Maar in ASP krijg ik dit onmogelijk als een decimale waarde terug. Hij blijft er een integer van maken. Ik heb de volgende code
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| Set cmdSP = Server.CreateObject("ADODB.Command") With cmdSP .ActiveConnection = oConn .CommandText = "sp_GetInvoiceDomainPrice" .CommandType = adCmdStoredProc .Parameters.Append .CreateParameter("@InvoiceID", adInteger, adParamInput, , rsDB("INVOICE_ID")) .Parameters.Append .CreateParameter("@DomainID", adInteger, adParamInput, , rsDB("DOMAIN_ID")) .Parameters.Append .CreateParameter("@LanguageID", adInteger, adParamInput, , 1) .Parameters.Append .CreateParameter("@DomainPrice", adDecimal, adParamOutput, 10) .Parameters("@DomainPrice").Size = 10 .Parameters("@DomainPrice").Precision = 2 .Parameters.Append .CreateParameter("@DomainPriceDiscount", adDecimal, adParamOutput, 10) .Parameters("@DomainPriceDiscount").Size = 10 .Parameters("@DomainPriceDiscount").Precision = 2 .Parameters.Append .CreateParameter("@DiscountReason", adVarChar, adParamOutput, 250) .Execute, , adExecuteNoRecords iDomainPrice = CDbl(.Parameters("@DomainPrice")) iDomainPriceDiscount = .Parameters("@DomainPriceDiscount") sDiscountReason = .Parameters("@DiscountReason") End With Set cmdSP = Nothing |
Maak je geen zorgen over de waardes die ik meegeef, deze zijn allemaal correct. Maar hij geeft bijvoorbeeld in plaats van 9.99 een 10 voor iDomainPrice.
Iemand enig idee waar dit aan kan liggen? Ik heb me al letterlijk zot gegoogled, en mijn code lijkt me correct te zijn.