Developpeur PHP veut faire de l'ASP

cs_salma Messages postés 1 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 7 janvier 2003 - 7 janv. 2003 à 15:24
cs_Jackboy Messages postés 757 Date d'inscription vendredi 7 septembre 2001 Statut Membre Dernière intervention 19 juin 2008 - 8 janv. 2003 à 07:18
Bonjour et bonne annee 2003!

Je suis bien rodee en PHP et voila que je me retrouve face a l'ASP.

On me demande de commenter ce code, et j'ai un peu du mal...

<%
table=request("table")
requete="insertSQL"

set conn = Server.CreateObject("ADODB.Connection")
conn.open session("afriDSN")
set rs = Server.CreateObject("ADODB.recordset")

rs.open "SELECT TOP 1 " & table & ".* FROM " & table,conn

dim champs()
dim typechamps()
redim champs(rs.fields.count)
redim typechamps(rs.fields.count)

for i=0 to rs.fields.count-1
champs(i)=rs(i).name
typechamps(i)=rs(i).type
next

sql = "INSERT INTO " & table & " ("
for i=0 to rs.fields.count-1
if lcase(champs(i))<>"no" and request.form(champs(i))<>"" then
sql = sql & lcase(champs(i)) & ","
end if
next
sql=left(sql,len(sql)-1)
sql = sql & ") "

sql = sql & "SELECT "
for i=0 to rs.fields.count-1
if lcase(champs(i))<>"no" and request.form(champs(i))<>"" then
if lcase(champs(i))="date_mod" then
sql = sql & "{ fn Now() }"
else
select case typechamps(i)
case 8,129,130,200,201,202,203
' type chaine
sql = sql & "'"
sql = sql & replace(request.form(champs(i)),"'","''")
sql = sql & "'"
case 133,134,135
' type date
if session("serveurLoc")="local" then
' moteur jet access
sql = sql & "#"
sql = sql & month(request.form(champs(i)))
sql = sql & "/"
sql = sql & day(request.form(champs(i)))
sql = sql & "/"
sql = sql & year(request.form(champs(i)))
sql = sql & "#"
else
' moteur sql server
sql = sql & "CONVERT(DATETIME, '"
sql = sql & year(request.form(champs(i)))
sql = sql & "-"
sql = sql & month(request.form(champs(i)))
sql = sql & "-"
sql = sql & day(request.form(champs(i)))
sql = sql & "', 102)"
end if
case else
' type num, boolean, ...
sql = sql & replace(request.form(champs(i)),"'","''")
end select
end if
sql = sql & ","
end if
next
sql=left(sql,len(sql)-1)

rs.close

conn.execute(sql)
%>

QQN peut m'aider please ???

2 réponses

cs_Mcjo Messages postés 403 Date d'inscription dimanche 12 août 2001 Statut Membre Dernière intervention 3 septembre 2012 2
7 janv. 2003 à 22:25
<%
'recuperation de la variable table (contrairement au php ou la recupe est auto), passer en get ou post
table=request("table")
'affectation de la valeur "insertSQL" a la variable requette
requete="insertSQL"

'creation d'un object serveur ADOB.connection (permet de connecter une bdd
set conn = Server.CreateObject("ADODB.Connection")
'ouverture de la connection dont les parametre on été passer en session le terme session("afriDSN") est une variable de session comme celle qui existe en php
conn.open session("afriDSN")
'declaration de l'objet table
set rs = Server.CreateObject("ADODB.recordset")

'ouverture de la table :
'ouverture simple (2 parametre : chaine sql, nom de la connection a utiliser ici conn
rs.open "SELECT TOP 1 " & table & ".* FROM " & table,conn

'declaration de variable
dim champs()
dim typechamps()
'redimention de variable pour en faire des tableau
'champ est indexé de 0 au nombre de champ ou colonne de la table et typechamp aussi
redim champs(rs.fields.count)
redim typechamps(rs.fields.count)

'on parcour de i à rs.fields.count - 1 les champ etant indexé à partir de 0 donc pour parcourrir tous les champs on va de 0 à nombre de champ - 1
'debut de la boucle
for i=0 to rs.fields.count-1
'on affecter champ(i) (c'est un tableau) le nom du champ i
champs(i)=rs(i).name
'on affecter typechamp(i) (c'est un tableau) le type du champ i (entier, texte, memo, oui/non, ...)
typechamps(i)=rs(i).type
'next signale la fin de boucle
next

'on affecte la chaine de caractere
'"INSERT INTO " et la valeur de table et " (" a la variable sql
sql = "INSERT INTO " & table & " ("
'nouvelle boucle for
for i=0 to rs.fields.count-1
'si la valeur mise en minuscule contenu dans la case i du tableau champ est <> de "no" et que on a recuperer dans le formulaire (request.form) une valeur nom vide pour le ou <select> qui a pour nom la valeur incluse dans la case i de champ
if lcase(champs(i))<>"no" and request.form(champs(i))<>"" then
'alors on sql est egale à sql et la valeur mise en minuscule de la case i de champ
sql = sql & lcase(champs(i)) & ","
'fin si
end if
'fin de la boucle for
next
'bon left tu doit comprendre tout seul et len ca compte le nombre de caractere
sql=left(sql,len(sql)-1)

'bon la aussi
sql = sql & ") "

'la encore
sql = sql & "SELECT "
'couble for
for i=0 to rs.fields.count-1
if lcase(champs(i))<>"no" and request.form(champs(i))<>"" then
if lcase(champs(i))="date_mod" then
sql = sql & "{ fn Now() }"
else
'select case typechamp c commenter
select case typechamps(i)
case 8,129,130,200,201,202,203
' type chaine
sql = sql & "'"
'replace rempleve les ' par des ' ' dans la valeur recuperer du formulaire
sql = sql & replace(request.form(champs(i)),"'","''")
sql = sql & "'"
case 133,134,135
' type date
'ca ca sert a l'ecriture des dates la gestion des dates etant differente entre acces est sqlserver
if session("serveurLoc")="local" then
' moteur jet access
sql = sql & "#"
sql = sql & month(request.form(champs(i)))
sql = sql & "/"
sql = sql & day(request.form(champs(i)))
sql = sql & "/"
sql = sql & year(request.form(champs(i)))
sql = sql & "#"
else
' moteur sql server
sql = sql & "CONVERT(DATETIME, '"
sql = sql & year(request.form(champs(i)))
sql = sql & "-"
sql = sql & month(request.form(champs(i)))
sql = sql & "-"
sql = sql & day(request.form(champs(i)))
sql = sql & "', 102)"
end if
case else
' type num, boolean, ...
sql = sql & replace(request.form(champs(i)),"'","''")
end select
end if
sql = sql & ","
end if
next
sql=left(sql,len(sql)-1)
'fermeture de la table
rs.close
'il manque set rs = nothing pour detruire l'objet
'fermeture de la connection
conn.execute(sql)
'il manque set conn = nothing idem

%>
0
cs_Jackboy Messages postés 757 Date d'inscription vendredi 7 septembre 2001 Statut Membre Dernière intervention 19 juin 2008
8 janv. 2003 à 07:18
Petit qqchose, fairte attention au commentaire, vérifier si tu fais un copier colle à ce que chaque ligne de commentaire commence par '

gentil mcjo
0
Rejoignez-nous