[ASP/SQL] probleme de Select. [Rezolu]

probleme de Select. [Rezolu] [ASP/SQL] - ASP - Programmation

Marsh Posté le 03-11-2003 à 11:13:14    

Bonjour, voila mon probleme : j'ai une base ds laquelle il y a les entrées qu il faut (je suis sur de l'integrité et des données dans la base). Quand je lance le code suivant (en ASP et la connexion se fait a SQL Server) et bien il ne trouve pas l'entrée demandée dans la requete SQL.
(Il n'y a qu une seule entrée qui corresponde a ma requete.)
Je précise que je n'ai aucune erreur de la part d'internet explorer. Si vous aviez une idée ...
le code :
________________________________________________________________
 Set ConnTac = Server.CreateObject("ADODB.Connection" )
 ConnTac.Open "driver={SQL Server};" & " server=(local); uid=sa; pwd=toto; database=GETSI"
 Set RSTac = server.createobject("ADODB.Recordset" )
 SQL="SELECT tac_dateDemande, tac_datePrevue, tac_dateMiseAJour, tac_agence, tac_objet, tac_actionEnCours, tac_intervenantPrevu, tac_dernierIntervenant, tac_etat, tac_typeAction FROM inf_taches WHERE tac_cleUnique LIKE '" & cleunique & "'"
response.write( "SQL :" & SQL & "<br>" )
 RSTac.Open SQL,ConnTac , 0, 1  
  do while not RSTac.eof
   datedemande = RSTac("tac_dateDemande" )
   dateprevue = RSTac("tac_datePrevue" )
   datemiseajour = RSTac("tac_dateMiseAJour" )
   daterealise = RSTac("tac_dateRealise" )
   tempspasse = RSTac("tac_tempsPasse" )
   agence = RSTac("tac_agence" )
   objet = RSTac("tac_objet" )
   actioneneours = RSTac("tac_actionEnCours" )
   intervenantprevu = RSTac("tac_intervenantPrevu" )
   dernierintervenant = RSTac("tac_dernierIntervenant" )
   var_etat = RSTac("tac_etat" )
   var_typeAction = RSTac("tac_typeAction" )
   cleunique = RSTac("tac_cleUnique" )
  RSTac.MOVENEXT
  loop
________________________________________________________________


Message édité par TheTooN le 03-11-2003 à 11:54:18
Reply

Marsh Posté le 03-11-2003 à 11:13:14   

Reply

Marsh Posté le 03-11-2003 à 11:14:38    

message d'erreur exact?
sinon ceci me parait pas très correct:
WHERE tac_cleUnique LIKE '" & cleunique & "'"
 
pourquoi un like? si c'est une clé primaire, utilise plutot le "="
 

Reply

Marsh Posté le 03-11-2003 à 11:16:33    

parce que si je met =, ca passe pas :
Type d'erreur :
ADODB.Recordset (0x800A0CC1)
Impossible de trouver l'objet dans la collection correspondant au nom ou à la référence ordinale demandé.
/getsi.asp, line 71

Reply

Marsh Posté le 03-11-2003 à 11:17:08    

et puis je précise que avec LIKE, je n ai AUCUN message d'erreur

Reply

Marsh Posté le 03-11-2003 à 11:20:03    

essaye un RSTac.MoveFirst avant ton do while
ensuite, ta variable cleunique est-elle un nombre? si c'est le cas il faut enlever les quotes dans ta requête (sinon il va prendre ca comme caractère)


Message édité par urd-sama le 03-11-2003 à 11:20:27
Reply

Marsh Posté le 03-11-2003 à 11:23:37    

ben si je met ton RSTac.MoveFirst, ca me fait une erreur :
Type d'erreur :
ADODB.Recordset (0x800A0BCD)
BOF ou EOF est égal à True ou l'enregistrement actuel a été supprimé. L'opération demandée nécessite un enregistrement actuel.
/getsi.asp, line 67
 
et puis ma cleunique est comme ca : {17C9A8CF-BE05-404B-A05D-FA8AB2817C1A} et si j enleve les quotes, ca fait une erreur :
Type d'erreur :
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver]Erreur de syntaxe ou violation d'accès
/getsi.asp, line 66
 
 

Reply

Marsh Posté le 03-11-2003 à 11:25:41    

la première erreur signifie qu'il  n'a rien trouvé, donc on peut supposer que c'est ton like qui fait foirer
as-tu essayé d'enlever les quote et de mettre = ?

Reply

Marsh Posté le 03-11-2003 à 11:36:34    

ben ca marche pas, ca me fait une erreur de syntaxe :
 
Type d'erreur :
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver]Erreur de syntaxe ou violation d'accès
/getsi.asp, line 66
 
Je précise que je suis sur que la cleunique existe car j ai fait un response.write(cleunique) qque part histoire d en etre sur.

Reply

Marsh Posté le 03-11-2003 à 11:38:51    

Citation :


SQL="SELECT tac_dateDemande, tac_datePrevue, tac_dateMiseAJour, tac_agence, tac_objet, tac_actionEnCours, tac_intervenantPrevu, tac_dernierIntervenant, tac_etat, tac_typeAction FROM inf_taches WHERE tac_cleUnique = " & cleunique  


c'est bien ceci qui te fait l'erreur?

Reply

Marsh Posté le 03-11-2003 à 11:39:21    

ma string de requete donne ca :
SELECT tac_dateDemande, tac_datePrevue, tac_dateMiseAJour, tac_agence, tac_objet, tac_actionEnCours, tac_intervenantPrevu, tac_dernierIntervenant, tac_etat, tac_typeAction FROM inf_taches WHERE tac_cleUnique LIKE '{17C9A8CF-BE05-404B-A05D-FA8AB2817C1A}'
 
et tu es sur ke le probleme vient de la ?

Reply

Marsh Posté le 03-11-2003 à 11:39:21   

Reply

Marsh Posté le 03-11-2003 à 11:40:25    

Urd-sama a écrit :

Citation :


SQL="SELECT tac_dateDemande, tac_datePrevue, tac_dateMiseAJour, tac_agence, tac_objet, tac_actionEnCours, tac_intervenantPrevu, tac_dernierIntervenant, tac_etat, tac_typeAction FROM inf_taches WHERE tac_cleUnique = " & cleunique  


c'est bien ceci qui te fait l'erreur?


oui :
Type d'erreur :
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver]Erreur de syntaxe ou violation d'accès

Reply

Marsh Posté le 03-11-2003 à 11:42:22    

ah ok, ta cleunique c'est donc ca: {17C9A8CF-BE05-404B-A05D-FA8AB2817C1A}
mets plutot: where tac_cleUnique = '" & cleunique & "'"
et vérifie que la clé est exactement écrit pareille dans la base

Reply

Marsh Posté le 03-11-2003 à 11:46:25    

ben la, j ai carrément écrit en dur toute la requete :
 
SQL="SELECT tac_dateDemande, tac_datePrevue, tac_dateMiseAJour, tac_agence, tac_objet, tac_actionEnCours, tac_intervenantPrevu, tac_dernierIntervenant, tac_etat, tac_typeAction FROM inf_taches WHERE tac_cleUnique={17C9A8CF-BE05-404B-A05D-FA8AB2817C1A}"
 
et ca me fait  
Type d'erreur :
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver]Erreur de syntaxe ou violation d'accès

Reply

Marsh Posté le 03-11-2003 à 11:47:37    

rajoute les '

Reply

Marsh Posté le 03-11-2003 à 11:48:21    

heu en fait, la, visiblement, on a fait toutes les syntaxes pour cette requete mais peut etre que l'erreur vient d autre part non ? (enfin moi je dis ca mais je ne sais pas)

Reply

Marsh Posté le 03-11-2003 à 11:49:11    

Urd-sama a écrit :

rajoute les '


ben cé pas mieux :-/
Type d'erreur :
ADODB.Recordset (0x800A0CC1)
Impossible de trouver l'objet dans la collection correspondant au nom ou à la référence ordinale demandé.

Reply

Marsh Posté le 03-11-2003 à 11:50:00    

Impossible de trouver l'objet dans la collection correspondant au nom ou à la référence ordinale demandé.
cette erreur signifie qu'il ne trouve pas un des champs que tu as précisé dans le select
controle qu'ils sont tous écrit correctement

Reply

Marsh Posté le 03-11-2003 à 11:53:49    

ben que te dire de plus : tout marche, je t aime !!! (excuse moi pour cette replique mais ca venait du fond du coeur).

Reply

Marsh Posté le 03-11-2003 à 11:56:44    

l'erreur était bien un des champs mal écrit?
tant mieux si l'erreur est résolue :)
vais aller miamer l'esprit tranquille

Reply

Marsh Posté le 03-11-2003 à 12:00:49    

bonap'

Reply

Sujets relatifs:

Leave a Replay

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