[ASP] Erreur ADODB.Recorset

Erreur ADODB.Recorset [ASP] - VB/VBA/VBS - Programmation

Marsh Posté le 13-05-2003 à 15:35:35    

Salut,  
 
Je suis débutante en ASP ...  
J'ai un ptit soucis avec la création d'un recordset.  
Je travaille avec SQL Server j'ai vérifié tous les droits sont ok.  
Le dns est ok la connexion marche.  
Lorsque je lance ma page j'ai un erreur :  
"ADODB.Recordset (0x800A0BB9)  
Les arguments sont de type incorrect, en dehors des limites autorisées ou en conflit les uns avec les autres."  
 
Voici mon code qui pose problème (les variables sont toutes initialisées) :  
 
set conn = Server.CreateObject("ADODB.Connection" )  
conn.Open ODBC_NAME, ODBC_USER, ODBC_PASSWORD  
 
set rs1 = Server.CreateObject("ADODB.RecordSet" )  
rs1.Open "CLIENT" , conn, adOpenKeyset, adLockPessimistic, adCmdTable  
 
rs1.close  
conn.close  
 
Si quelqu'un à une idée ...  
Merci d'avance

Reply

Marsh Posté le 13-05-2003 à 15:35:35   

Reply

Marsh Posté le 13-05-2003 à 15:39:44    

1) n'utilise pas les constantes ADODB, l'ASP ne les reconnait pas. Il faut donc utiliser leurs valeurs. (le mieu c'est de rien mettre, les valeurs par défaut vont très bien)
 
2) rs1.open "CLIENT", ...
 
-> "SELECT * FROM CLIENT" à la place de "CLIENT"
 
 
Donc la ligne devient au final :
 
rs1.open "SELECT * FROM CLIENT", conn


Message édité par MagicBuzz le 13-05-2003 à 15:41:11
Reply

Marsh Posté le 13-05-2003 à 15:44:27    

merci beaucoup mais ça n'est pas passé je viens de le tester en mettant le select à la place de CLIENT il me fait toujours la même erreur.

Reply

Marsh Posté le 13-05-2003 à 15:53:25    

t'as bien viré les ", adOpenKeyset, adLockPessimistic, adCmdTable" ?

Reply

Marsh Posté le 13-05-2003 à 15:59:05    

alors j'ai tout viré  
mais le truc c'est que si je met pas ces paramètres (adLockPessimistic ...etc) je peux pas faire de adnew parce que par défaut tout est en lecture seule.  
voilà l'erreur qu'il me sort si j'enlève tout et que j'essaie de faire le addnew :
 
"Le jeu d'enregistrements suivant ne prend pas en charge la mise à jour. Il s'agit peut-être d'une limitation du fournisseur ou du type de verrou sélectionné."
 

Reply

Marsh Posté le 13-05-2003 à 16:00:55    

Il ne faut jamais faire de addnew depuis l'ASP.
 
Utilise des requêtes :
 
conn.execute "INSERT ..."

Reply

Marsh Posté le 13-05-2003 à 16:03:09    

d'accord je vais essayer comme ça je te remercie beaucoup de ton aide je te tiens au courant   :D

Reply

Marsh Posté le 13-05-2003 à 16:53:35    

bon ça passe pas mais je garantie pas que ma requete soit juste (j'en ai jamais fait en ASP) :??:  
sql = "INSERT INTO client VALUES '" & nv_nom & "','" & nv_prenom & "','" & nv_adresse & "'"
conn.execute (sql)
 
-> erreur :
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]Ligne 1 : syntaxe incorrecte vers ''. Ligne 25 (c celle de la requete)

Reply

Marsh Posté le 13-05-2003 à 16:58:58    

Alors.
 
1° truc : INSERT INTO latable (champ1, champ2, champ3) VALUES (val1, val2, val3)
 
En effet, il n'est pas recommandé d'ommètre la liste des champs. Deplus, il ne faut pas omètre les ( ) - c'est ça en fait ton problème -
 
2° truc : euh... En fait j'en vois pas... Ah ! Si ! Pour les valeurs : "... '" & replace(val, "'", "''" ) & "' ..."
 
Car s'il y a une quote dans un des champs, ça va planter.


Message édité par MagicBuzz le 13-05-2003 à 16:59:39
Reply

Marsh Posté le 13-05-2003 à 17:31:59    

ok bon ça fonctionne presque il ne me fait plus aucune erreur c'est déjà ça ensuite pour ce qui est de l'insert il faudrait que je cré des variables globales qui puissent être initialisées dans ma page HTML et traitées par ma page ASP.
Ya une méthode pour faire ça ?

Reply

Marsh Posté le 13-05-2003 à 17:31:59   

Reply

Marsh Posté le 13-05-2003 à 18:22:35    

Peux-tu être plus explicite ?
 
Je ne comprends pas ce que tu veux faire.

Reply

Marsh Posté le 14-05-2003 à 09:17:23    

En fait, depuis ma page HTML je remplie des zones de texte. Je souhaite mettre le contenu de mes zones de textes dans ma base de données.
Pour cela j'ai créé une autre page en ASP dans laquelle j'effectue mon INSERT.
Ce que je voudrais savoir c'est comment une fois les valeurs de la page HTML récupérées comment les rendre accessibles dans ma page ASP. En résumé je souhaiterai créer des variables globales qui seraient accessibles aussi bien dans ma page HTML que dans ma page ASP.
Je sais que j'aurai pu tout faire sur la même page mais je souhaite apprendre à faire ce genre de manipulation c'est pour cela que j'ai choisi cette méthode.
 
Merci beaucoup pour ton aide.

Reply

Marsh Posté le 14-05-2003 à 11:19:53    

Fait un formulaire, avec comme action ta page qui fait l'insert, et comme méthode "post".
 
Tu récupères alors les valeurs saisies par request.form("nom_du_champ" )

Reply

Marsh Posté le 14-05-2003 à 11:31:43    

oui ça je l'ai fait mais apparemment les request.form("nom du champ" ) ne se transmettent pas d'une page à l'autre.
 
dans ma page HTLM :
<form method="post" name="form4" action = creation.asp>
dans ma page ASP ("creation.asp" ):
nv_nom = Request.form("nom" )
Le problème c'est que j'ai l'impression que dans ma page ASP il va chercher le form de ma page ASP et pas le form de ma page HTML donc la valeur de Request.form("nom" ) est "".
 
J'essaye de tout mettre dans la meme page (dans ma page HTML).
J'arrive même pas à lancer une procédure VBSCRIPT toute simple sur le clic d'un bouton donc c'est pas gagné :)
 
Merci

Reply

Marsh Posté le 14-05-2003 à 11:38:25    

Dans ton form, crée un champ <input type="text" name="nom">
 
C'est la valeur de ce champ qui sera contenue dans request.form("nom" )

Reply

Marsh Posté le 14-05-2003 à 11:46:55    

voila mon code HTML:
<form method="post" name="form4" action = creation.asp>
  <input name="nom" type="text" id="nom">
  <input name="prenom" type="text" id="prenom">
  <input name="adresse" type="text" id="adresse" size="50">
  <input name="Ajouter" type="submit" id="Ajouter" value="Ajouter" >  
</form>
mais ça marche toujours pas.
 
sinon comment faire pour appeler ma procédure VBSCRIPT sur le click de mon bouton "Ajouter"
j'ai testé :  
<input name="Ajouter" type="submit" id="Ajouter" onclick = <% proc %>>
<input name="Ajouter" type="submit" id="Ajouter" onclick = "<% proc %>">
mais rien a faire ça passe pas non plus :/

Reply

Marsh Posté le 14-05-2003 à 11:50:26    

les request dans ma page ASP :
 
nv_nom = Request.form("nom" )
nv_prenom = Request.form("prenom" )
nv_adresse = Request.form("adresse" )
   
voilà

Reply

Marsh Posté le 14-05-2003 à 11:58:21    

Non.
 
Depuis l'HTML tu peux rien faire.
 
Principe :
 
page "form.asp" qui contient uniquement le forumlaire (sans aucun traîtement)
sa balise form fait référence à "add.asp" (le action du form) qui lui ne s'occupe que de faire le insert, puis de faire un redirect sur le form ou sur une liste mise à jour en fonction du succès ou non de l'insert.

Reply

Marsh Posté le 14-05-2003 à 14:30:54    

ok c'est bon tout fonctionne
je te remercie beaucoup de ton aide et pour tout les conseils
A bientot peut etre  
 :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed