cs_remy34
Messages postés27Date d'inscriptionlundi 3 octobre 2005StatutMembreDernière intervention28 mars 2006
-
23 mars 2006 à 09:24
cs_remy34
Messages postés27Date d'inscriptionlundi 3 octobre 2005StatutMembreDernière intervention28 mars 2006
-
27 mars 2006 à 08:31
Bonjour je voudrais en fait rajouter les champs d'un formulaire lors de la validation de celui ci mais je n'y arrive pas voici mon code:
Sub Envoyer( )
' Déclaration de mes variables
Dim LE_DSN
Dim MaConnexion
Dim ServerAddress
Dim DBName
Dim UID
Dim Password
' IP ou Nom du serveur mySQL
ServerAddress = "172.27.16.90"
' Nom de la base de données
DBName = "Prog_Effectif"
' Login pour la base
UID = "root"
' Mot de passe pour la base
Password = "root"
' Ici on construit la chaine de connexion ODBC
LE_DSN = "driver=MySQL ODBC 3.51 Driver;server=" & ServerAddress & ";db=" & DBName & ";user id=" & UID & ";pwd=" & Password & ";option=16386"
' Paramètre de connexion + connexion
Set MaConnexion = Server.CreateObject("ADODB.Connection")
MaConnexion.ConnectionTimeout = 30
MaConnexion.CommandTimeout = 30
la date je l'écrit comme cela car je ne sais pas nonplus récupérer la date
Le problème c'est que quand je vérifie ma page le navigateur me met cet erreur:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E31)
[MySQL][ODBC 3.51 Driver][mysqld-5.0.19-nt]Out of range value adjusted for column 'QTYM' at row 1
/projet/FormulaireMEC.asp, line 93
rvblog
Messages postés792Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention12 juin 20127 25 mars 2006 à 00:48
Salut Remy,
d'abord, parce que je t'aimes bien, je te le dis :
j'espère que ce n'est pas une vraie IP, et un vrai login, sinon, tu vas apprendres à tes dépends à restaurer une base de données qu'un inconnnu a foutu en l'air (je ne connais que des gentils ici, mais c'est quand même internet!)
pour la date,si tu veux la date du jour de l'insert tu écris :
VDate = Date()
Sinon, tu peux aussi l'avoir dans le form, et la traiter comme le reste (request.form).
Je ne t'apprend rien si je te dis que, vraissemblablement, la valeur qui est insérée dans la colonne QTYM est en dehors de la plage permise. Suivant le provider, il peut y avoir diverses raisons (je n'ai jamais essayé OLE DB sur MySQL), mais ça peut être simplement la taille de la chaine (si c'est une chaine), la taillle de la valeur par rapport au type attendu (si c'est un numérique), ...Il te faut le schéma de cette table (types et tailles des champs) pour évaluer ce que tu peux y rentrer, et éventuellement mettre en place des traitements de validité des données (genre, si la chaine fais len=25, je la tronque à 15, ou si le nombre de machins est plus grand que 47, on insère pas...)
Ce que tu peux faire, c'est temporairement désactiver l'exécution de la requete, et l'afficher pour te faire une idée de ce que tu envoies, des fois, c'est en voyant qu'on comprend. Ca donnerait (en rouge ce que je touches) :
' Ici on construit la chaine de connexion ODBC
LE_DSN = "driver=MySQL ODBC 3.51 Driver;server=" & ServerAddress & ";db=" & DBName & ";user id=" & UID & ";pwd=" & Password & ";option=16386"
response.Write LE_DSN
If False then
' Paramètre de connexion + connexion
Set MaConnexion = Server.CreateObject("ADODB.Connection")
MaConnexion.ConnectionTimeout = 30
MaConnexion.CommandTimeout = 30
il se peut que rien ne s'affiche, car je vois pas tout ton code, et il y a peut-être une instruction qui arrive après ce code, et qui response.redirect(blabla), qu'il faudrait aussi désactiver (temporairement)
à+
rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>