Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[ASP3][ACCESS][SQL]


Information sur la source

Catégorie :Base de données Classé sous : dico, connection, sql, matrice, select Niveau : Expert Date de création : 20/09/2005 Vu : 8 593

Note :
4 / 10 - par 2 personnes
4,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

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
%>

Commentaires et avis

Aucun commentaire pour le moment.

Ajouter un commentaire

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


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.