2009-12-28 6 views
1

J'ai un code similaire àADO Recordset question de la valeur décimale

Dim A, B, C 
Set rs = Server.CreateObject("ADODB.Recordset") 
strSql = "Exec [dbo].[some_sp] IND" 
rs.open strSql,CN,3,3 

Do While Not rs.EOF 

'these columns are returned as decimal(10,2) format 
A = rs("col1") 
B = rs("col2") 

rs.MoveNext 
Loop 

C = A + B 'i get type mismatch error here 

Et je response.write pour vérifier les valeurs A, B ils sont au format entier et non décimal

Dois-je reformater le jeu d'enregistrements pour définir des valeurs décimales? Et ce qui pourrait être un problème possible pour la discordance de type car toutes les valeurs sont entières (même si elles sont décimales)?

+0

Réponse: Utilisé A = CDbl (rs ("col1")) B = CDbl (rs ("col2")) –

Répondre

3

Les variables dans ASP/VBScript ne sont que des types variant, vous devrez peut-être convertir les valeurs explicitement. Cependant, je suppose que l'une de vos lignes n'a pas de valeur numérique pour col1 ou col2. Savez-vous quelles sont les valeurs de ces erreurs lorsque vous obtenez l'erreur d'incompatibilité de type?

+0

De même, la procédure peut-elle jamais retourner une valeur NULL? – Sparky

+0

oui j'ai fait response.write pour toutes ces valeurs ici est le résultat 73, 0, 1, 0, 0, 0, 6 Je veux qu'ils soient décimaux avant d'ajouter, mais ils sont en nombre entier –

+2

je l'ai compris. J'ai utilisé CDbl et cela fonctionne (Cdec ne fonctionnera pas) –

Questions connexes