Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2548 connectés 

  FORUM HardWare.fr
  Programmation
  ASP

  [ASP] Need help ! Zarbi bleme avec Base de données

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ASP] Need help ! Zarbi bleme avec Base de données

n°259603
ZyGoR
Posté le 03-12-2002 à 11:30:27  profilanswer
 

Salut
 
Tout d'abord je présente les outils que j'utilise avant le problème :
- IIS 5
- Windoz 2000 SERVER dernier Service Pack
- MySQL 4.0.2
 
A ce stade, tout marche bien, les scripts ASP travaillent en parfaite harmonie avec MySQL et affiche tous mes résultats correctement (j'en ai ch... mais c'est ok maitenant :) ).
 
Seulement, on m'annonce qu'on laisse tomber MySQL et que l'on prend ORACLE à la place (Argh!!).
 
Et c'est reparti pour du taff pour cette migration...
 
Les outils utilisés maintenant sont les mêmes sauf pour la base de données :  
- ORACLE version 8.0.5 (un peu vieu mais obligé de faire avec)
- Un pilote OBDC for Oracle pour la communication entre Oracle et ASP.
 
La base Oracle tourne correctement, et mes scripts fonctionnent presque bien... je m'explique :

  • Si je fais une requête du genre "Select count(*) from ma_table", le script ASP affiche correctement le résultat.
  • En revanche si je fais un "Select * from ma_table", impossible de récuperer la liste résultant de cette requête (EOF sur mon objet RecordSet mais aucune erreur générée...). :??:  :??:  


Pourquoi il m'est impossible d'afficher un tel résultat ??  
Si tu connais un peu ORACLE, dis moi tout :) (trucs à configurer sur Oracle que je n'aurais pas fait ?)
Si tu maîtrises les Scripts ASP et surtout la configuration pour se connecter et "naviguer" dans une base de données
(curseur, connectionString ...).
 
Voila, la je sèche vraiment et je recherche désepérement des informations pouvant comprendre et résoudre mon problème.
 
Merci de m'avoir lu et de me laisser tes réflexions sur mon big souci.
 
 

mood
Publicité
Posté le 03-12-2002 à 11:30:27  profilanswer
 

n°259722
ZyGoR
Posté le 03-12-2002 à 14:26:48  profilanswer
 

Snif !
 
Si je résume :
 
Une requete du type : "SELECT COUNT(*) FROM Ma_table" dans une page ASP me renvoit un résultat (différent de 0)
 
Une requête du type : "SELECT * FROM Ma_table" dans une page ASP me renvoit un End Of File (vide, rien, nogo koi...). KESKIVAPA ??
 
Allez, plizz laches toi !! Help me...


Message édité par ZyGoR le 03-12-2002 à 14:27:14
n°259724
grosmethos
Posté le 03-12-2002 à 14:28:46  profilanswer
 

peut tu mettres quelque lignes de code..des fois que :)

n°259730
JeFFreYY
Posté le 03-12-2002 à 14:33:59  profilanswer
 

Bah tu ne donnes aucune ligne de ton code, c pas hyper évident de t'aider avec si peu d'infos  ;)  

n°259736
ZyGoR
Posté le 03-12-2002 à 14:43:53  profilanswer
 

A la demande générale :) :

Code :
  1. <%
  2. Dim resultat
  3. ' Connection
  4. Set objCnn = Server.CreateObject ("ADODB.Connection" )
  5. objCnn.Open ("DSN=ORACLE;UID=PROOT;PWD=**********" )
  6. ' Recordset 1
  7. Set objRst = Server.CreateObject ("ADODB.Recordset" )
  8. objRst.CursorType = adOpenDynamic
  9. objRst.ActiveConnection = objCnn
  10. ' Requete One : on veut un seul résultat (une sortie) donc Count(*) par exemple
  11. sqlQuery = "SELECT Count(*) Result FROM Produits"
  12. objRst.Open sqlQuery
  13. resultat = objRst("Result" )
  14. sqlRst.close
  15. ' Affichage Resultat de la requete One
  16. response.write resultat
  17. ''''''''''''''''''''''''''''''''''
  18. ' Requete Two : on veut une liste de résultats car plusieurs lignes dans la table
  19. sqlQuery = "SELECT * FROM Produits"
  20. objRst.Open sqlQuery
  21. ' test
  22. IF objRst.EOF then response.write "EOF"
  23. sqlRst.close
  24. %>


 
et sur la page, je vois le fameux "EOF" s'afficher...


Message édité par ZyGoR le 03-12-2002 à 16:23:50
n°259745
grosmethos
Posté le 03-12-2002 à 14:55:02  profilanswer
 

je pense erruer d'innatention :
SELECT * Result FROM Produits
 
soit tu mets *soit tu mets result...mais pas les deux :)

n°259754
ZyGoR
Posté le 03-12-2002 à 15:06:14  profilanswer
 

Vi erreur lors du copier-coller :p
 
thx ! tu as l'oeil!!
Rien d'autres sinon pour faire avancer le schmilblick ?

n°259770
grosmethos
Posté le 03-12-2002 à 15:21:26  profilanswer
 

est ce un erreur de copie coller aussi avec le count(*) result???

n°259778
grosmethos
Posté le 03-12-2002 à 15:26:52  profilanswer
 

d'ailleur quand tu fait fais un affichage du count je suis etonné que tu ais quelque chose avec le objRst("Result" ) car le count ne retourne pas un champ Result donc ce serait plutot un objRst.Fields(0).value ou objRst("Result" ) .Fields(1).value je suis plus trop ou ça commence d'ailleur..
 
idealement c'est de creer un alias pour ta donnée :
select count(Result) as compteur from Produits
et dans l'asp:
response.write(objRst("compteur" ))

n°259795
ZyGoR
Posté le 03-12-2002 à 15:45:31  profilanswer
 

Sous Oracle :  

Code :
  1. "SELECT count(*) compteur FROM..."


marche tout aussi bien que :

Code :
  1. "SELECT count(*) as compteur FROM..."


et

Code :
  1. response.write objRst("compteur" )


 
affiche un résultat non vide (et non nul)!!  
 
Le problème n'est pas la à vrai dire, c'est plutot dans la requete TWO et l'affichage du "EOF" sur ma page...

Code :
  1. sqlQuery = "SELECT * FROM Produits"
  2. objRst.Open sqlQuery
  3. ' test
  4. IF objRst.EOF then response.write "EOF"
  5. sqlQuery.close

mood
Publicité
Posté le 03-12-2002 à 15:45:31  profilanswer
 

n°259808
grosmethos
Posté le 03-12-2002 à 15:56:30  profilanswer
 

ok mais je connais pas du tout oracle..desolé
 
Peut etre est ce le fait que tu utilise 2 fois le meme nom pour ton objet recordset...alors que tu ne ledetruit pas apres utilisation du avec ton count
essaye soit de changer de nom, soit de faire un objRs.movefirst
sqlQuery = "SELECT * FROM Produits"  
objRst.Open sqlQuery  
objRst.MoveFirst

 
Je pense que ton pb est là  :bounce:

n°259814
ZyGoR
Posté le 03-12-2002 à 16:02:15  profilanswer
 

Là tu m'as touché gars :)
 
J'ai deja tester le fameux : objRst.MoveFirst
en pensant que le curseur devait être en bas...
L'affichage = "Erreur Interne du serveur" sans autre explication...
SAVEUDIRKOICA ???? :)

n°259834
grosmethos
Posté le 03-12-2002 à 16:13:22  profilanswer
 

as tu inclu le fichiers abovbs.inc qui contient la valeur du curseur pour adOpenDynamic ...En fait il est possible que ton curseur refuse de remonter à cause ds prporités attribuées.
essaye cette ligne a la place de ta  
 
objRst.CursorType = 3
Il me semble qu'avec la valeur 3 on peut descendre et remonter
 
si non change le nom du recordset dans le deuximme requete pour voir deja si c'est une histore de curseur

n°259836
Lord II
PIB2000
Posté le 03-12-2002 à 16:14:29  profilanswer
 

Moi je pense que le probleme se situe au niveau de la fermeture du recordset ( il me semble que tu ferme la requete.
 

Citation :

objRst.Open sqlQuery
   resultat = objRst("Result" )
  sqlQuery.close


 
remplace par
 

Citation :


objRst.Open sqlQuery
resultat = objRst(0)
if objRst.state=1 then objRst.close


Message édité par Lord II le 03-12-2002 à 16:14:55

---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°259844
ZyGoR
Posté le 03-12-2002 à 16:25:43  profilanswer
 

lord ii a écrit a écrit :

Moi je pense que le probleme se situe au niveau de la fermeture du recordset ( il me semble que tu ferme la requete.
 

Citation :

objRst.Open sqlQuery
   resultat = objRst("Result" )
  sqlQuery.close


 
remplace par
 

Citation :


objRst.Open sqlQuery
resultat = objRst(0)
if objRst.state=1 then objRst.close






 
je viens de voir ca, encore une erreur d'inattention, c'est corrigé

n°259848
ZyGoR
Posté le 03-12-2002 à 16:28:30  profilanswer
 

grosmethos a écrit a écrit :

as tu inclu le fichiers abovbs.inc qui contient la valeur du curseur pour adOpenDynamic ...En fait il est possible que ton curseur refuse de remonter à cause ds prporités attribuées.
essaye cette ligne a la place de ta  
 
objRst.CursorType = 3
Il me semble qu'avec la valeur 3 on peut descendre et remonter
 
si non change le nom du recordset dans le deuximme requete pour voir deja si c'est une histore de curseur




 
j'ai inclus le fichier abovbs.inc qui contient :

Code :
  1. '---- CursorTypeEnum Values ----
  2. Const adOpenForwardOnly = 0
  3. Const adOpenKeyset = 1
  4. Const adOpenDynamic = 2
  5. Const adOpenStatic = 3


 
et l'ensemble de mes recordsets sont avec adOpenDynamic...
 
Encore une idée ????

n°259851
grosmethos
Posté le 03-12-2002 à 16:30:31  profilanswer
 

et en chgt le nom du recordset dans la deuxiemme requete??

n°259868
ZyGoR
Posté le 03-12-2002 à 16:42:24  profilanswer
 

grosmethos a écrit a écrit :

et en chgt le nom du recordset dans la deuxiemme requete??




 
Snif, j'y ai cru à ce changement.. mais non, je vois toujours un "EOF" à l'écran.
 

n°259886
grosmethos
Posté le 03-12-2002 à 16:47:35  profilanswer
 

Remplac ton code 2eme requete par ça!!!
 
Set objRst2 = Server.CreateObject ("ADODB.Recordset" )
  objRst2.CursorType = adOpenDynamic
  objRst2.ActiveConnection = objCnn
 
sqlQuery = "SELECT * FROM Produits"  
objRst2.Open sqlQuery  
 
' test  
IF objRst2.EOF then response.write "EOF"  
else  
do while not objRs2.Eof
response.write(objRs2("Result" ))
objRs2.MoveNext
Loop

 

n°259888
ZyGoR
Posté le 03-12-2002 à 16:47:51  profilanswer
 

NOUVELLE OBSERVATION !!!
 

Code :
  1. sqlQuery = "SELECT * FROM Produits"
  2. objRst.Open sqlQuery
  3. ' test
  4. IF objRst.EOF then response.write "EOF"
  5. sqlRst.close


Ca me donne un "EOF"...
 
et...
 

Code :
  1. sqlQuery = "SELECT ID FROM Produits"
  2. objRst.Open sqlQuery
  3. ' test
  4. IF objRst.EOF then response.write "EOF"
  5. sqlRst.close


Ca me donne un "EOF"...
 
OR...

Code :
  1. sqlQuery = "SELECT Nom FROM Produits"
  2. objRst.Open sqlQuery
  3. ' test
  4. IF objRst.EOF then response.write "EOF"
  5. sqlRst.close


Je n'ai plus EOF !!!!
 
Bilan de mon observation : le champ ID est un NUMBER sous ORACLE et dès que j'ai un champ de type NUMBER quelque part dans une requete SQL (Il en suffit d'un!!), ca me donne un EOF.
 
Pourquoi caaaaa..... snif

n°260421
ZyGoR
Posté le 04-12-2002 à 09:49:59  profilanswer
 

Pourquoi une colonne de type NUMBER sous Oracle empeche-t-elle d'envoyer des résultats sur ma page web ????
 
J'ai vraiment pas envie de modifier toutes mes requêtes de mes scripts ASP.
ie :  
"SELECT ID_Number FROM Ma_Table" avec ID_Number de type NUMBER, me renvoie un End of File.
"SELECT TO_CHAR(ID_Number) FROM Ma_Table" me renvoie bien une liste de données.
 
Pas d'idée ? plizzz
 
thx d'avance

n°260432
Lord II
PIB2000
Posté le 04-12-2002 à 10:05:00  profilanswer
 

Peut etre un pb de typage de données justement ( enfin de conversion dans ce cas là )


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°260441
ZyGoR
Posté le 04-12-2002 à 10:16:14  profilanswer
 

Vi et je fais quoi alors ?? :)

n°260468
Lord II
PIB2000
Posté le 04-12-2002 à 10:55:16  profilanswer
 

SI le fait de typer la donnée dans la requete fonctionne il ne reste (peut etre ) que ca !!!
 
 
Désolé :jap:  :jap:


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°260505
ZyGoR
Posté le 04-12-2002 à 11:22:04  profilanswer
 

Si c'est le cas, alors je veux voir un gars qui a eu ce problème et qui me confirme ce que tu dis.
 
Mais j'y crois pas, c'est vraiment pas logique cette démarche
 
personne d'autres ??? thx

n°260912
ZyGoR
Posté le 04-12-2002 à 16:29:10  profilanswer
 

:hot:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASP

  [ASP] Need help ! Zarbi bleme avec Base de données

 

Sujets relatifs
Connection aux bases de donnees (ADO, DAO) en Visual Basic.Connexion entre une base de donnés Mysql et WSAD ?
[PHP] Présentation de données dans un tableau - A à Zcherche un langage d'analyse pour des bases de données mysql?merci
Comment séparer une variable en 2 parties en ASP[assembleur] Gestion postion souris + Affichage [Need Help] -> Page 2
need beta tester pour mon program (100 ko)[PHP] Ca marche pas..... mais pkoi ? Need help! ;-)
Plus de sujets relatifs à : [ASP] Need help ! Zarbi bleme avec Base de données


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR