Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/07/2006, 19h59   #1
Invité régulier
 
Inscription : mai 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 56
Points : 7
Points : 7
Par défaut intégrer une fonction dans une requête

rebonjour

je voudrais savoir s'il est possible d'utiliser une fonction dans une requête

en faite, je voudrais faire quelque chose comme ca :

Code :
1
2
 
select .... where nomdemafonction(parametre1, parametre2) = ...
badboys206s16 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2006, 08h24   #2
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 810
Points : 3 011
Points : 3 011
Bonjour,

Peux-tu préciser un peu plus ce que tu cherches à faire ?
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2006, 08h31   #3
Invité régulier
 
Inscription : mai 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 56
Points : 7
Points : 7
ma fonction me donne le max d'un liste de date et dans ma requete je voudrais dire que le max de la liste de date (donc la fonction) doit être < à la date du jour

mais quand je met ma fonction dans ma requete, il me dit que le nom de la fonction n'est pas reconnue
badboys206s16 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2006, 09h59   #4
Membre habitué
 
Inscription : juillet 2006
Messages : 93
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : juillet 2006
Messages : 93
Points : 107
Points : 107
ca devrait etre :

Code :
sql = "select ... where " & nomdemafonction(parametre1, parametre2) & " = ..."
Ntilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2006, 11h28   #5
Invité régulier
 
Inscription : mai 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 56
Points : 7
Points : 7
non ca ne marche pas

il me donne une erreur dans la fonction et pourtant elle marche
badboys206s16 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2006, 16h50   #6
Membre habitué
 
Inscription : juillet 2006
Messages : 93
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : juillet 2006
Messages : 93
Points : 107
Points : 107
excuse j'avais pas vu que c'était des dates.
normalement ca devré aller ca :

Code :
sql = "select ... where #" & nomdemafonction(parametre1, parametre2) & "# < #" & datedujour & "# ..."
Moi personnellement, pour traiter ce genre de cas, je récupère la date et je la mets au format aaaammjj (ex : 20060706), tu peux faire ca avec les mid :

Code :
1
2
3
4
5
 
jour = left(date_jour,2)
mois = mid(date_jour,4,2)
annee = mid(date_jour,7,4)
date_tri = annee & mois & jour
après pour comparer ca va tt seul c'est simplement une comparaison numérique.
Ntilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2006, 17h13   #7
Invité régulier
 
Inscription : mai 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 56
Points : 7
Points : 7
cela me met toujours une erreur dans ma fonction

je te met le code de ma fonction

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
function compte(argent, date)
 
	set cn=server.CreateObject("adodb.connection")
	set rs=server.CreateObject("adodb.recordset")
	cn.Open connstring2
	set rs = cn.execute("EXEC nbr_date " & argent & ", " & date)
 
	if not rs.EOF then
	compte = rs("date")
	else 
	compte= 0
	end if
end function
badboys206s16 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2006, 17h36   #8
Membre habitué
 
Inscription : juillet 2006
Messages : 93
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : juillet 2006
Messages : 93
Points : 107
Points : 107
est ce que ta requete te renvoie quelque chose ?

parce que j'ai vu que tu envoie 0 si la requete est vide, et ca pourrait etre pour ca que la requet plante.

sinon est ce que tu peux afficher ta requete sans l'executer et l'envoyer pour voir ce qui puet la faire planter ?
Ntilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2006, 12h51   #9
Invité régulier
 
Inscription : mai 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 56
Points : 7
Points : 7
ma requête et ma fonction marchent
je les utilise pour afficher des données
badboys206s16 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2006, 14h08   #10
Membre habitué
 
Inscription : juillet 2006
Messages : 93
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : juillet 2006
Messages : 93
Points : 107
Points : 107
est ce que tu peux me donner l'erreur, ca sera plus simple ?
Ntilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2006, 14h19   #11
Invité régulier
 
Inscription : mai 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 56
Points : 7
Points : 7
il marque erreur vers la virgule à cette ligne là :

Code :
1
2
 
set rs = cn.execute("EXEC nbr_date " & argent & ", " & date)
badboys206s16 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2006, 14h31   #12
Membre habitué
 
Inscription : juillet 2006
Messages : 93
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : juillet 2006
Messages : 93
Points : 107
Points : 107
si nbr_date est le nom de ta fonction il manque tes paranthèses :
Code :
1
2
 
("EXEC nbr_date (" & argent & ", " & date & ")")
Ntilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2006, 13h38   #13
Invité régulier
 
Inscription : mai 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 56
Points : 7
Points : 7
cela me met toujours syntaxe incorrect vers la virgule à la ligne que je t'ai montré
badboys206s16 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2006, 13h43   #14
Membre habitué
 
Inscription : juillet 2006
Messages : 93
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : juillet 2006
Messages : 93
Points : 107
Points : 107
Envoie le code de tte ta page (fonctions s'il y a y compris)

ca sera plus simple je pense
Ntilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2006, 13h48   #15
Invité régulier
 
Inscription : mai 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 56
Points : 7
Points : 7
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<%	
function compte_date_envoi(id_source, numero_parution)
 
	set cn=server.CreateObject("adodb.connection")
	set rs=server.CreateObject("adodb.recordset")
	cn.Open connstring2
 
	set rs = cn.execute("EXEC date (" & id_source & ", " & numero_parution & ")")
	if not rs.EOF then
	compte_date_envoi = rs("date_envoi")
	else 
	compte_date_envoi = 0
	end if
end function%>
<%
rs5.open "SELECT count... where " & compte_date_envoi(id_source, numero_parution) & " < getdate() ",cn
do while not rs5.EOF
	Response.Write "<tr><td >" & rs5("pb_import") & "</tr>"
rs5.movenext
loop
Voilà...
badboys206s16 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2006, 13h58   #16
Membre habitué
 
Inscription : juillet 2006
Messages : 93
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : juillet 2006
Messages : 93
Points : 107
Points : 107
un petit truc qui me fait peur déjà, c'est que tu appelles ta fonction "date".

en asp, ce nom est déjà utilisé ca m'étonnerait que tu ais le droit de faire ca.

essaie de changer son nom (je suppose que c'est une fonction que tu as crée ca non ?)

mais je cherche encore...
Ntilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2006, 14h02   #17
Invité régulier
 
Inscription : mai 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 56
Points : 7
Points : 7
oui c'est une fonction que j'ai crée

ok pour le nom j'essai de le changer
badboys206s16 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h31.


 
 
 
 
Partenaires

Hébergement Web