Need help ! Zarbi bleme avec Base de données [ASP] - ASP - Programmation
Marsh Posté le 03-12-2002 à 14:26:48
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...
Marsh Posté le 03-12-2002 à 14:33:59
Bah tu ne donnes aucune ligne de ton code, c pas hyper évident de t'aider avec si peu d'infos
Marsh Posté le 03-12-2002 à 14:43:53
A la demande générale :
Code :
|
et sur la page, je vois le fameux "EOF" s'afficher...
Marsh Posté le 03-12-2002 à 14:55:02
je pense erruer d'innatention :
SELECT * Result FROM Produits
soit tu mets *soit tu mets result...mais pas les deux
Marsh Posté le 03-12-2002 à 15:06:14
Vi erreur lors du copier-coller
thx ! tu as l'oeil!!
Rien d'autres sinon pour faire avancer le schmilblick ?
Marsh Posté le 03-12-2002 à 15:21:26
est ce un erreur de copie coller aussi avec le count(*) result???
Marsh Posté le 03-12-2002 à 15:26:52
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" ))
Marsh Posté le 03-12-2002 à 15:45:31
Sous Oracle :
Code :
|
marche tout aussi bien que :
Code :
|
et
Code :
|
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 :
|
Marsh Posté le 03-12-2002 à 15:56:30
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à
Marsh Posté le 03-12-2002 à 16:02:15
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 ????
Marsh Posté le 03-12-2002 à 16:13:22
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
Marsh Posté le 03-12-2002 à 16:14:29
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 |
remplace par
Citation : |
Marsh Posté le 03-12-2002 à 16:25:43
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.
|
je viens de voir ca, encore une erreur d'inattention, c'est corrigé
Marsh Posté le 03-12-2002 à 16:28:30
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 :
|
et l'ensemble de mes recordsets sont avec adOpenDynamic...
Encore une idée ????
Marsh Posté le 03-12-2002 à 16:30:31
et en chgt le nom du recordset dans la deuxiemme requete??
Marsh Posté le 03-12-2002 à 16:42:24
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.
Marsh Posté le 03-12-2002 à 16:47:35
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
Marsh Posté le 03-12-2002 à 16:47:51
NOUVELLE OBSERVATION !!!
Code :
|
Ca me donne un "EOF"...
et...
Code :
|
Ca me donne un "EOF"...
OR...
Code :
|
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
Marsh Posté le 04-12-2002 à 09:49:59
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
Marsh Posté le 04-12-2002 à 10:05:00
Peut etre un pb de typage de données justement ( enfin de conversion dans ce cas là )
Marsh Posté le 04-12-2002 à 10:55:16
SI le fait de typer la donnée dans la requete fonctionne il ne reste (peut etre ) que ca !!!
Désolé
Marsh Posté le 04-12-2002 à 11:22:04
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
Marsh Posté le 03-12-2002 à 11:30:27
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 :
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.