[ASP] decimale output parameter (van een stored procedure)

Pagina: 1
Acties:

  • codemann
  • Registratie: Oktober 2002
  • Laatst online: 31-01 15:04
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 :

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.

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 30-01 09:44

Jaspertje

Max & Milo.. lief

wat geeft je Parameters("@DomainPrice") terug zonder de CDBl eromheen?

[ Voor 10% gewijzigd door Jaspertje op 22-06-2006 14:27 ]


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Probeer eens de NumericScale van de parameter te setten.

Today's subliminal thought is:


  • codemann
  • Registratie: Oktober 2002
  • Laatst online: 31-01 15:04
Bedankt!
.NumericScale was inderdaad wat ik nodig had.

Als je denkt dat je de juiste dingen aan het setten bent kan je er lang langs kijken _/-\o_