J'aimerai qu'un "pro" de l'optimisation puisse me regularisé et optimisé ce code... Pas nécessaire de tout passer a la loupe, mais si vous trouvé des methode + simple et moin gourmante, bien me le faire savoir. L'optimisation ce trouverai en nécessité dans le code ou ce trouve la boucle de sélection pour chaque image (a partir de la ligne 119), Merci d'avance pour votre coup de main !!!
dim Browse_Graphic_File_Name
dim Browse_Graphic_File_Description
dim Browse_Graphic_File_Type
dim Browse_Graphic_File_Name_id
dim Browse_Graphic_File_Description_id
dim Browse_Graphic_File_Type_id
'récuperation du formulaire (4 champs)
Browse_Graphic_File_Name = Request.form("Browse_Graphic_File_Name") 'champs 1
Browse_Graphic_File_Description = Request.form("Browse_Graphic_File_Description") 'champs 2
Browse_Graphic_File_Type = Request.form("Browse_Graphic_File_Type") 'champs 3
Browse_Graphic_File_Name_id = "44" 'valeur static pour le champ 1, désigner le type du champs (voir table ELEMENT)
Browse_Graphic_File_Description_id = "43" 'valeur static pour le champ 2, désigner le type du champs (voir table ELEMENT)
Browse_Graphic_File_Type_id = "45" 'valeur static pour le champ 3, désigner le type du champs (voir table ELEMENT)
'*****************************************************
' connection pour recuperation et editer la table
' METD_EDIT_CITATION selon les nouvelle enregistrement
' de l'usager, permettre d'avoir une table pour ré-édition
'****************************************************
Connection_M3Cat strCon
dim strMETD_EDIT_BROWSEGRAPHICS
strMETD_EDIT_BROWSEGRAPHICS = "SELECT * FROM METS_EDIT_BROWSEGRAPHICS"
dim RS_METD_EDIT_BROWSEGRAPHICS
Set RS_METD_EDIT_BROWSEGRAPHICS = Server.CreateObject("ADODB.Recordset")
RS_METD_EDIT_BROWSEGRAPHICS.CursorType = 2
RS_METD_EDIT_BROWSEGRAPHICS.LockType = 3
'ouverture de la bd selon la requete et infos de la bd
RS_METD_EDIT_BROWSEGRAPHICS.Open strMETD_EDIT_BROWSEGRAPHICS, strCon
'var pour éditer la table METS_EDIT_BROWSEGRAPHICS
dim Browse_Graphic_File_Name_Edit
dim Browse_Graphic_File_Description_Edit
dim Browse_Graphic_File_Type_Edit
Browse_Graphic_File_Name_Edit = Browse_Graphic_File_Name
Browse_Graphic_File_Description_Edit = Browse_Graphic_File_Description
Browse_Graphic_File_Type_Edit = Browse_Graphic_File_Type
'édition de la table
RS_METD_EDIT_BROWSEGRAPHICS("Browse_Graphic_File_Name") = Originator_Edit
RS_METD_EDIT_BROWSEGRAPHICS("Browse_Graphic_File_Description") = Browse_Graphic_File_Description_Edit
RS_METD_EDIT_BROWSEGRAPHICS("Browse_Graphic_File_Type") = Browse_Graphic_File_Type
RS_METD_EDIT_BROWSEGRAPHICS.Update
RS_METD_EDIT_BROWSEGRAPHICS.Close
set RS_METD_EDIT_BROWSEGRAPHICS = nothing
'****************************************************
' fin recuperation
'****************************************************
'nom de la collection (ex.: ESM 2003)
metadata_name_collection = session("NameServerMeta")
'Exprésion réguliere qui permet de capter, si il y a lieu les espace remplacer par un %20
'dans le request.QueryString émis dans la page de collection
'sinon recherche de la collection erroné
set regExp = new regExp
regExp.Pattern = "[%20]"
regExp.Global = true
regExp.IgnoreCase = false
strClean = regExp.replace(metadata_name_collection, " ")
'*****************************************************
' connection pour recuperation dans la table DATASET
' de la valeur DATS_ID de la collection selon le nom
' de la collection. Plusieurs collections sont insérés dans la
' meme table dataset, mais chacune ayant un id différent.
' Attacher lr id à chaque nouvelle enregistrement (formulaire)
'****************************************************
Connection_M3Cat strCon
strSqlNameCollection = "SELECT DATS_ID, DATS_NAME FROM DATASET WHERE DATS_NAME = '"& metadata_name_collection &"'"
Set RS_DATASET = Server.CreateObject("ADODB.Recordset")
RS_DATASET.CursorType = 1
RS_DATASET.LockType = 1
'ouverture de la bd selon la requete et infos de la bd
RS_DATASET.Open strSqlNameCollection, strCon
DATS_COLLECTION_ID = RS_DATASET("DATS_ID")
RS_DATASET.Close
set RS_DATASET = nothing
'****************************************************
' fin recuperation
'****************************************************
'*****************************************************
' connection pour recuperation, dans la table DATASET,
' de chaque image ayant un PARENT_DATS_ID (id de la collection trouvé + haut)
' égal a la celui de la collection DATS_ID
'****************************************************
strSqlDataset = "SELECT * FROM DATASET WHERE PARENT_DATS_ID = "& DATS_COLLECTION_ID
Set RS_DATASET_2 = Server.CreateObject("ADODB.Recordset")
RS_DATASET_2.CursorType = 1
RS_DATASET_2.LockType = 1
RS_DATASET_2.Open strSqlDataset, strCon
'*****************************************************
' fin de la connection mais utilisation + bas
'****************************************************
'*****************************************************
'*****************************************************
'*****************************************************
' OPTIMISATION NÉCESSAIRE CAR PLUS DE 1700 IMAGES ET +
' A VÉRIFIER MULTIPLIER PAR LE NOMBRE DE CHAMPS DU
' FORMULAIRE, CE QUI DONNE 5100 REQUETTE A LA QUEUE,
'POSSIBILITER DUN FORMULAIRE AYANT 14 CHAMPS DONC...
'*****************************************************
'*****************************************************
'*****************************************************
'*****************************************************
' connection pour ajout ou edition de la table METD_VALUE
' doit passer chaque image et verifier si la donner
' est présente, si oui editer, sinon ajouter
'****************************************************
Set RS_METD_VALUE = Server.CreateObject("ADODB.Recordset")
RS_METD_VALUE.CursorType = 3
RS_METD_VALUE.LockType = 3
'*****************************************************
' boucle qui sélectionne chaque image de la table dataset
' ayant le PARENT_DATS_ID de la collection, insere
' les valeur du formulaire et ce pour chaque image,
'*****************************************************
do while not RS_DATASET_2.EOF 'recherche de chaque image dans la bd (au dessus de 1600 images a passé a la queue)
DATASET_NAME = RS_DATASET_2("DATS_NAME")
METD_VALUE_DATS_ID = RS_DATASET_2("DATS_ID")
NameForm = ""
Form_Metd_Id = ""
'récupere tous les champs du formulaire (ici 3)
'et ajoute un enregistrement dans la
'table METD_VALUE pour chaque champs
for i = 1 to 3
select case i
case "1" 'champs 1
NameForm = Browse_Graphic_File_Name
Form_Metd_Id = Browse_Graphic_File_Name_id
case "2" 'champs 2
NameForm = Browse_Graphic_File_Description
Form_Metd_Id = Browse_Graphic_File_Description_id
case "3" 'champs 3
NameForm = Browse_Graphic_File_Type
Form_Metd_Id = Browse_Graphic_File_Type_id
case else 'aucun champs (erreur)
NameForm = ""
Form_Metd_Id = ""
End Select
'*****************************************************
' connection pour add OU edit dans la table METD_VALUE
' et ce pour chaque image étant relié à la collection
' requete sql qui vérifie si un enregistrement est présent
' selon un Id et un valeur si oui edit sinon ajoute
'****************************************************
strSqlMetdValue = "SELECT * From METD_VALUE where METD_ID = "& Form_Metd_Id &" and DATS_ID = "& METD_VALUE_DATS_ID
RS_METD_VALUE.Open strSqlMetdValue, strCon
'Édition si l'enregistrement à été trouvé dans la bd
if RS_METD_VALUE.RecordCount <> "-1" and RS_METD_VALUE.RecordCount > "0" then
RS_METD_VALUE("METD_Value") = NameForm 'valeur du champs entrer par l'usager
'RS_METD_VALUE("PARNT_METD_VALUE_ID") = "0" 'valeur par default pour le moment
'RS_METD_VALUE("METD_OCC") = "1" 'valeur par default pour le moment
RS_METD_VALUE("METD_ID") = Form_Metd_Id 'insère le type déterminant la valeur insérer
'RS_METD_VALUE("PARAM_ID") = "0" 'valeur par default pour le moment
RS_METD_VALUE("DATS_ID") = METD_VALUE_DATS_ID 'attacher l'id de l'image
'Ajout si l'enrtegistrement n'a pas été trouvé dans la bd
else
RS_METD_VALUE.addnew 'ajouter un enregistrement dans la table METD_VALUE
RS_METD_VALUE("METD_Value") = NameForm 'valeur du champs entrer par l'usager
RS_METD_VALUE("PARNT_METD_VALUE_ID") = "0" 'valeur par default pour le moment
RS_METD_VALUE("METD_OCC") = "1" 'valeur par default pour le moment
RS_METD_VALUE("METD_ID") = Form_Metd_Id 'insère le type déterminant la valeur insérer
RS_METD_VALUE("PARAM_ID") = "0" 'valeur par default pour le moment
RS_METD_VALUE("DATS_ID") = METD_VALUE_DATS_ID 'attacher l'id de l'image
end if
RS_METD_VALUE.update 'updater la table METD_VALUE
RS_METD_VALUE.close 'fermer la table METD_VALUE
next 'passer au prochain champs du formulaire
RS_DATASET_2.movenext 'passer a la prochaine image
loop 'refaire la procedure pour la prochaine image trouvé dans la table DATASET
'end if
set RS_METD_VALUE = nothing 'vider la table METD_VALUE
RS_DATASET_2.close 'fermer la table DATASET
set RS_DATASET_2 = nothing 'vider la table DATASET