Erreur sur une requête paramétrée

Résolu
cs_guillem69 Messages postés 2 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 7 octobre 2004 - 6 oct. 2004 à 17:50
cs_guillem69 Messages postés 2 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 7 octobre 2004 - 7 oct. 2004 à 14:33
Bonjour,

A l'execution de ma requête, je tombe sur le message d'erreur :
"Microsoft OLE DB Provider for ODBC Drivers error '80040e21'
[Microsoft][ODBC SQL Server Driver]Fonctionnalité optionnelle non implémentée"
Et je n'arrive pas à voir ou se situe le problème.
Quelqu'un a t-il une idée?

Voici mon code :
strDSN = "driver={SQL Server};server=;uid=;pwd=;database=Test"
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open strDSN

'Crée une instance de l'objet Command et utilise la propriété ActiveConnection pour attacher la connexion à l'objet Command
Set cm= Server.CreateObject("ADODB.Command")
Set cm.ActiveConnection = cn
Set objRst = Server.CreateObject("ADODB.Recordset")

'Définition de la requête SQL
cm.CommandText = "SELECT * FROM CoursDevise WHERE ( idDevise= ? AND DateDebut = ?)"
cm.Prepared = True

'Définit les informations de configuration sur les paramètres de la requête
cm.Parameters.Append cm.CreateParameter("idDevise",adChar,adParamInput,10)
cm.Parameters.Append cm.CreateParameter("DateDebut",adDate,adParamInput)

'Affectation d'une valeur aux paramètres
cm("idDevise") = 1
cm("DateDebut") = CDate("09/08/2004")

'Execution de la requete
Set objRst = cm.Execute

2 réponses

cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
6 oct. 2004 à 18:59
Pourquoi en ODBC ?
Tu travailles en .NET sur de l'SQL Server, utilise donc le driver managé fourni avec .NET en OLEDB

Pour ta requette je me demande s'il n'y a pas des @ normalement (utilisant des SP perso, je ne travaille jamais en requette conditionnée de la sorte).

Du type :

cm.CommandText = "SELECT * FROM CoursDevise WHERE ( idDevise= @idDevise AND DateDebut = @DateDebut)"
cm.Prepared = True

'Définit les informations de configuration sur les paramètres de la requête
cm.Parameters.Append cm.CreateParameter("@idDevise",adChar,adParamInput,10)
cm.Parameters.Append cm.CreateParameter("@DateDebut",adDate,adParamInput)

Mais déja change de provider SQL, l'ODBC est très limité et je pense que ton message correspond au fait qu'il ne supporte pas cette méthode.

Romelard Fabrice (Alias F___)
3
cs_guillem69 Messages postés 2 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 7 octobre 2004
7 oct. 2004 à 14:33
Bonjour,

En effet, le problème venait du fournisseur de données.
Je suis passé en OLEDB et mon problème est résolu : provider=SQLOLEDB.1;datasource=maBDD;Initial Catalog=Test

Juste pour info, mon code est en ASP tout cours.

Merci du coup de main

Guillaume
0