Eh bien, j'interroge ma base de données, une table appelée bookBilling, pour obtenir une valeur sous la colonne de billingID.Classic ASP Erreur de base de données
Dans ma première requête, j'obtiens l'identifiant client d'une table en fonction de la valeur que le cookie contient. Dans ma deuxième requête, je prends cette valeur custID et je cherche à obtenir l'ID de facturation associé.
query = "SELECT custID FROM bookSession WHERE session='"&theCookie&"'"
'--Connect to DB'
Set objConn = ConnectDB()
'--Query to DB'
Set objRS = objConn.Execute(query)
custID = objRS.Fields("custID")
query = "SELECT billingID FROM bookBilling WHERE custID="&custID&""
objConn.Execute(query)
Voici où cela devient un problème. J'ai essayé d'utiliser cette option pour obtenir la valeur:
billingID = objRS.Fields("billingID")
Quand cela ne fonctionne pas, j'imprimé la requête de mon navigateur pour vous assurer qu'il a travaillé et il est revenu bien, je l'ai vérifié dans SQL Server Management Studio pour faire sûr. Après cela, j'ai décidé de jouer avec un peu et j'ai trouvé que l'utilisation de "0" comme référence fonctionne puisque c'est le premier élément de ma table. Donc, cela a fonctionné, je sais que mon en-tête de colonne de table est correct, je l'ai regardé et utilisé dans d'autres requêtes avant. Est-ce que quelqu'un sait pourquoi cela pourrait arriver? Est-ce le résultat de ne pas effacer ma connexion ou de la fermer après?
Merci
Si vous utilisez un programme comme Access pour vos bases de données, vous pouvez laisser écrire vos requêtes SELECT pour vous, ce qui est très facile quand il s'agit d'un grand nombre de jointures. :) – Kablam
Je ne vois pas comment le manque d'un ID de facturation a quelque chose à voir avec cela. Dans ce cas, vous devez toujours gérer un EOF dans votre code existant. Si cela vous concerne vraiment, utilisez une jointure gauche plutôt qu'une jointure interne et utilisez la fonction SQL Coalesce() pour gérer le résultat NULL. –