Accueil > > > [ASP3][ACCESS][SQL]
[ASP3][ACCESS][SQL]
Information sur la source
Description
Voici un petit code de gros fainéant lol: J'utilise l'objet Dico pour pouvoir faire correspondre les clés du dico aux champs de la bases. Pareils pour les valeurs. Je viens du PHP et je suis assez dessus par ce problème: on ne peut pas faire de dictionnaire en matrice!!! Pour le coup avec un SELECT la clé est mondico["nomDuChamp[ligne d'enregistrement]"]. Tout a la fin du code il y a tout les tests avec toutes les possibilités. Le SELECT est le plus dur a comprendre. Les autres sont trés accéssible. Les paramètres de connection sont indiqués. Il y a un paramètre de persistance de connection.
Source
- <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
- <%
- '////////////////////////////////
- '/SQL Tools
- '///////////////////////////////
- Set CurrentConnect=Nothing
- 'Persistence save the current connection to the DB
- '=-1:Not active
- '=0: Init->Connect()
- '=1: Active: use CurrentConnect
- '=2: Active: Use CurrentConnect and Close()
-
- 'Generic ODBC_Connect->Simple connection to ODBC Base
- Function ODBC_Connect(Persistence)
- If Persistence=-1 OR Persistence=0 Then
- Set Connect = Server.CreateObject("ADODB.Connection")
- Connect.Open BaseName
- Set CurrentConnect = Connect
- Else If Persistence=2 OR Persistence=1 Then
- Set Connect = CurrentConnect
- End If
- End If
- Set ODBC_Connect = Connect
- End Function
-
- 'Generic ODBC_Close->Simple Closer connection to ODBC Base: Need Link DB
- Function ODBC_Close(Connect,Persistence)
- If Persistence=-1 OR Persistence=2 Then
- Connect.close
- Set Connect = Nothing
- Set CurrentConnect=Connect
- End If
- Set ODBC_Close = Connect
- End Function
-
- 'Generic Select From DB
- Function ODBC_Select(SQL,Pointer,Persistence)
- 'Response.Write("SQL="&SQL&"<br />")
- 'Variables///////////////////////////////////////
- Dim i:i=0
- Dim TheKey, TheValue, oDict
- 'Configuration of DB link////////////////////////
- Set Connect = ODBC_Connect(Persistence)
- '////////////////////////////////////////////////
- Set RS = Server.CreateObject("ADODB.Recordset")
- Set objDict = createObject("Scripting.Dictionary")
- '////////////////////////////////////////////////
- With RS
- .Open SQL,Connect , 3, 3
- If (.EOF and .BOF) Then
- 'No data
- ODBC_Select=-1
- Else
- Dim MaxRecord : Maxrecord=.RecordCount
- 'Verif MaxRecord////////////////////////////
- If MaxRecord=0 Then
- End If
- 'Response.Write("Maxrecord="&Maxrecord&"<br />")
- 'MAX <Pointer> in DB/////////////////////////
- If Pointer >= MaxRecord Then
- Pointer = MaxRecord-1
- End If
- 'Response.Write("Pointer="&Pointer&"<br />")
- If Pointer >= 0 Then
- .Move(Pointer)
- Else
- .MoveFirst
- End If
- '///////////////////////////////////////////
-
- 'Set Dictionary Data///////////////////////
- Do While Not .EOF
- For each Item in .Fields
- With Item
- TheKey=.name&"["&i&"]"
- TheValue=.value
- 'objDict.Add TheKey, TheValue
- objDict(TheKey)=TheValue
- 'Response.Write(Item.name&" = "&Item.value&"<br />")
- End With
- Next
- i=i+1
- .MoveNext
- Loop
- '///////////////////////////////////////////
- .close
- End If
- End With
- Set Connect = ODBC_Close(Connect,Persistence)
- 'Return/////////////////////////////////////////////
- Set ODBC_Select = objDict
- End Function
-
- 'Generic Insert Dictionary indexed by same Fields Name of DB Into DB
- Sub ODBC_Insert(Tbl,DicVal,Persistence)
- Dim SQL,Rows,Values,i,Key,Val,MaxTab
- Set Connect = ODBC_Connect(Persistence)
-
- Rows=""
- Values="VALUES ("
- SQL="INSERT INTO "&Tbl
- Key=DicVal.Keys
- Val=DicVal.Items
- MaxTab=DicVal.Count-1
-
- For i=0 To MaxTab
- If i<MaxTab Then
- Rows=Rows&Key(i)&", "
- Values=Values&"'"&Val(i)&"',"
- Else
- Rows=Rows&Key(i)
- Values=Values&"'"&Val(i)&"'"
- End If
- Next
-
- SQL=SQL&"("&Rows&") "&Values&")"
- Connect.execute(SQL)
-
- Set Connect = ODBC_Close(Connect,Persistence)
- End Sub
-
- 'Generic Delete Data From DB.
- Sub ODBC_Delete(Tbl,Condition,Persistence)
- Dim SQL
- Set Connect = ODBC_Connect(Persistence)
-
- SQL="DELETE FROM "&Tbl&" WHERE "&Condition
- Connect.execute(SQL)
-
- Set Connect = ODBC_Close(Connect,Persistence)
- End Sub
-
- 'Generic Update Data of DB
- Sub ODBC_Update(Tbl,DicVal,Where,Persistence)
- Dim SQL,Key,Val,MaxTab
-
- Set Connect = ODBC_Connect(Persistence)
-
- SQL="UPDATE "&Tbl&" SET "
- Key=DicVal.Keys
- Val=DicVal.Items
- MaxTab=DicVal.Count-1
-
- For i=0 To MaxTab
- If i<MaxTab Then
- SQL=SQL&Key(i)&"='"&Val(i)&"', "
- Else
- SQL=SQL&Key(i)&"='"&Val(i)&"' WHERE "&Where
- End If
- Next
- Connect.execute(SQL)
-
- Set Connect = ODBC_Close(Connect,Persistence)
- End Sub
-
-
- '////////////////////////////////
- '/TESTS
- '///////////////////////////////
-
-
- '///////////////////////////////
- '/Main
- '///////////////////////////////
-
- 'INSERT
- 'Dim oDict
- 'Set oDict = Server.CreateObject("Scripting.Dictionary")
- 'oDict("Name")="Eva"
- 'Call ODBC_Insert(aTable,oDict,-1)
-
- 'DELETE
- 'Dim Condition:Condition="id=34"
- 'Call ODBC_Delete(aTable,Condition,-1)
-
- 'UPDATE
- 'Dim Where:Where="id=42"
- 'Set oDict = Server.CreateObject("Scripting.Dictionary")
- 'oDict("Name")="Bob"
- 'Call ODBC_Update(aTable,oDict,Where,-1)
-
- 'BASIC SELECT
- 'Dim Requete:Requete="SELECT TOP 3 Name, id FROM aTable ORDER BY id"
- 'Set oDict=ODBC_Select(Requete,-1)
- 'Key=oDict.Keys
- 'Val=oDict.Items
- 'MaxTab=oDict.Count-1
-
- 'For i=0 To MaxTab
- ' Response.Write(Key(i)&"="&Val(i)&"<br />")
- 'Next
-
- 'ALL TYPE OF SELECT
- 'Dim Requete:Requete="SELECT Name, id FROM aTable ORDER BY id"
- 'Response.Write(Requete&"<br /><br />")
- 'Set Content=ODBC_Select(Requete,-1,0)
- 'Key=Content.Keys
- 'Val=Content.Items
- 'MaxTab=(Content.Count/2)-1'2 is num of select (name+id=2) coz we can t do a dico matrice
-
- 'For i=0 To MaxTab
- ' Response.Write(Key(i)&"="&Val(i)&"<br />")
- 'Next
-
- 'Requete="SELECT Name FROM aTable ORDER BY id"
- 'Response.Write(Requete&"<br /><br />")
- 'Set Content=ODBC_Select(Requete,-1,1)
- 'Key=Content.Keys
- 'Val=Content.Items
- 'MaxTab=(Content.Count/1)-1'1 is num of select (Name=1) coz we can t do a dico matrice
-
- 'For i=0 To MaxTab
- ' Response.Write(Key(i)&"="&Val(i)&"<br />")
- 'Next
-
- 'Requete="SELECT Name, id, firstname FROM aTable ORDER BY idActor"
- 'Response.Write(Requete&"<br /><br />")
- 'Set Content=ODBC_Select(Requete,-1,2)
- 'Key=Content.Keys
- 'Val=Content.Items
- 'MaxTab=(Content.Count/3)-1'3 is num of select (Name+id+firstname=3) coz we can t do a dico matrice
-
- 'For i=0 To MaxTab
- ' Response.Write(Key(i)&"="&Val(i)&"<br />")
- 'Next
- %>
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
'////////////////////////////////
'/SQL Tools
'///////////////////////////////
Set CurrentConnect=Nothing
'Persistence save the current connection to the DB
'=-1:Not active
'=0: Init->Connect()
'=1: Active: use CurrentConnect
'=2: Active: Use CurrentConnect and Close()
'Generic ODBC_Connect->Simple connection to ODBC Base
Function ODBC_Connect(Persistence)
If Persistence=-1 OR Persistence=0 Then
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open BaseName
Set CurrentConnect = Connect
Else If Persistence=2 OR Persistence=1 Then
Set Connect = CurrentConnect
End If
End If
Set ODBC_Connect = Connect
End Function
'Generic ODBC_Close->Simple Closer connection to ODBC Base: Need Link DB
Function ODBC_Close(Connect,Persistence)
If Persistence=-1 OR Persistence=2 Then
Connect.close
Set Connect = Nothing
Set CurrentConnect=Connect
End If
Set ODBC_Close = Connect
End Function
'Generic Select From DB
Function ODBC_Select(SQL,Pointer,Persistence)
'Response.Write("SQL="&SQL&"<br />")
'Variables///////////////////////////////////////
Dim i:i=0
Dim TheKey, TheValue, oDict
'Configuration of DB link////////////////////////
Set Connect = ODBC_Connect(Persistence)
'////////////////////////////////////////////////
Set RS = Server.CreateObject("ADODB.Recordset")
Set objDict = createObject("Scripting.Dictionary")
'////////////////////////////////////////////////
With RS
.Open SQL,Connect , 3, 3
If (.EOF and .BOF) Then
'No data
ODBC_Select=-1
Else
Dim MaxRecord : Maxrecord=.RecordCount
'Verif MaxRecord////////////////////////////
If MaxRecord=0 Then
End If
'Response.Write("Maxrecord="&Maxrecord&"<br />")
'MAX <Pointer> in DB/////////////////////////
If Pointer >= MaxRecord Then
Pointer = MaxRecord-1
End If
'Response.Write("Pointer="&Pointer&"<br />")
If Pointer >= 0 Then
.Move(Pointer)
Else
.MoveFirst
End If
'///////////////////////////////////////////
'Set Dictionary Data///////////////////////
Do While Not .EOF
For each Item in .Fields
With Item
TheKey=.name&"["&i&"]"
TheValue=.value
'objDict.Add TheKey, TheValue
objDict(TheKey)=TheValue
'Response.Write(Item.name&" = "&Item.value&"<br />")
End With
Next
i=i+1
.MoveNext
Loop
'///////////////////////////////////////////
.close
End If
End With
Set Connect = ODBC_Close(Connect,Persistence)
'Return/////////////////////////////////////////////
Set ODBC_Select = objDict
End Function
'Generic Insert Dictionary indexed by same Fields Name of DB Into DB
Sub ODBC_Insert(Tbl,DicVal,Persistence)
Dim SQL,Rows,Values,i,Key,Val,MaxTab
Set Connect = ODBC_Connect(Persistence)
Rows=""
Values="VALUES ("
SQL="INSERT INTO "&Tbl
Key=DicVal.Keys
Val=DicVal.Items
MaxTab=DicVal.Count-1
For i=0 To MaxTab
If i<MaxTab Then
Rows=Rows&Key(i)&", "
Values=Values&"'"&Val(i)&"',"
Else
Rows=Rows&Key(i)
Values=Values&"'"&Val(i)&"'"
End If
Next
SQL=SQL&"("&Rows&") "&Values&")"
Connect.execute(SQL)
Set Connect = ODBC_Close(Connect,Persistence)
End Sub
'Generic Delete Data From DB.
Sub ODBC_Delete(Tbl,Condition,Persistence)
Dim SQL
Set Connect = ODBC_Connect(Persistence)
SQL="DELETE FROM "&Tbl&" WHERE "&Condition
Connect.execute(SQL)
Set Connect = ODBC_Close(Connect,Persistence)
End Sub
'Generic Update Data of DB
Sub ODBC_Update(Tbl,DicVal,Where,Persistence)
Dim SQL,Key,Val,MaxTab
Set Connect = ODBC_Connect(Persistence)
SQL="UPDATE "&Tbl&" SET "
Key=DicVal.Keys
Val=DicVal.Items
MaxTab=DicVal.Count-1
For i=0 To MaxTab
If i<MaxTab Then
SQL=SQL&Key(i)&"='"&Val(i)&"', "
Else
SQL=SQL&Key(i)&"='"&Val(i)&"' WHERE "&Where
End If
Next
Connect.execute(SQL)
Set Connect = ODBC_Close(Connect,Persistence)
End Sub
'////////////////////////////////
'/TESTS
'///////////////////////////////
'///////////////////////////////
'/Main
'///////////////////////////////
'INSERT
'Dim oDict
'Set oDict = Server.CreateObject("Scripting.Dictionary")
'oDict("Name")="Eva"
'Call ODBC_Insert(aTable,oDict,-1)
'DELETE
'Dim Condition:Condition="id=34"
'Call ODBC_Delete(aTable,Condition,-1)
'UPDATE
'Dim Where:Where="id=42"
'Set oDict = Server.CreateObject("Scripting.Dictionary")
'oDict("Name")="Bob"
'Call ODBC_Update(aTable,oDict,Where,-1)
'BASIC SELECT
'Dim Requete:Requete="SELECT TOP 3 Name, id FROM aTable ORDER BY id"
'Set oDict=ODBC_Select(Requete,-1)
'Key=oDict.Keys
'Val=oDict.Items
'MaxTab=oDict.Count-1
'For i=0 To MaxTab
' Response.Write(Key(i)&"="&Val(i)&"<br />")
'Next
'ALL TYPE OF SELECT
'Dim Requete:Requete="SELECT Name, id FROM aTable ORDER BY id"
'Response.Write(Requete&"<br /><br />")
'Set Content=ODBC_Select(Requete,-1,0)
'Key=Content.Keys
'Val=Content.Items
'MaxTab=(Content.Count/2)-1'2 is num of select (name+id=2) coz we can t do a dico matrice
'For i=0 To MaxTab
' Response.Write(Key(i)&"="&Val(i)&"<br />")
'Next
'Requete="SELECT Name FROM aTable ORDER BY id"
'Response.Write(Requete&"<br /><br />")
'Set Content=ODBC_Select(Requete,-1,1)
'Key=Content.Keys
'Val=Content.Items
'MaxTab=(Content.Count/1)-1'1 is num of select (Name=1) coz we can t do a dico matrice
'For i=0 To MaxTab
' Response.Write(Key(i)&"="&Val(i)&"<br />")
'Next
'Requete="SELECT Name, id, firstname FROM aTable ORDER BY idActor"
'Response.Write(Requete&"<br /><br />")
'Set Content=ODBC_Select(Requete,-1,2)
'Key=Content.Keys
'Val=Content.Items
'MaxTab=(Content.Count/3)-1'3 is num of select (Name+id+firstname=3) coz we can t do a dico matrice
'For i=0 To MaxTab
' Response.Write(Key(i)&"="&Val(i)&"<br />")
'Next
%>
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
SQL SERVER 2000 ???? connection [ par Troyan ]
j'ai toujours systematiquement la meme erreur.cela doit etre un parametrage de SQL2K mais j'ai pas trouvé !!Help Échec de la connexion de l'utilisateu
SQL [ par Oxyris ]
Salut, je voudrais faire une liason entre 2 bases de donnés.. Je voulais savoir comment utiliser cette fonction si table2 est dans une autre base :SQL
Caractère "&" et requête sql ?? [ par Darthsidious30 ]
Salut,J'ai un problème avec le caractère & dans un SELECT.Dans la condition je fais une recherche sur une chaîne de caractère contenant "&" lorsque je
HELP Connection SQL Server [ par draganovic ]
salut, voila, j'ai un petit pépin, j'aimerais me connecter à un serveur intranet qui tourne sur SQL Serevr 6.5 à travers une bd.Je connaît le nom du s
Requête SQL avec N° semaine [ par conclois ]
concloisJe narrive pas à écrire ma fonction SELECT pour qu'elle me renvoit le Numéro de semaine du jour de chargement, J'avais ecris : SELECT (DatePar
une connection sql avec un utilisateur du domaine windows [ par poucin ]
Bonjour,G un gros probleme, g une appli en asp.net utilisant une base SQL2K, ou je souhaite que tous les utilisateur du domaine est leur propre connex
connection sql server+java sous reseau [ par casawi ]
bonjour, svp je voudrais savoir comment connecter une base de données sql server via java et sous un reseau . merc
Connection KO. [ par daeron ]
Bonjour à tous, je ne sais si vous allez pouvoir m'aider. J'ai fait une appli avec une base de donnees Oracle 9.2. Sur mon ordi tout marche bien mais
connection sql serveur et asp.net [ par jimmy69 ]
salut a tous,Voila en gros je recherche a me conncter a sql serveur en asp.netApres avoir cherche de la doc etc....voila ce que j'ai trouve mais y'a j
IF dans un SELECT (sql server 2000) [ par niek ]
c encore moi,je me suis rendu compte ke apparemment, on ne peut utiliser des variables après les THEN de CASE,dc eske qqun sait comment on fait pour i
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Forum
SCRIPTSCRIPT par nadialadypower
Cliquez pour lire la suite par nadialadypower
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|