السلام عليكــم ورحمـة الله وبركاتــة ،،
1-PRISM
NAMESPACE GEST_Farm[color= #339933;];
[color= #000000; font-weight: bold;]INTERFACE
USES
[color= #990000;]System[color= #339933;].Collections[color= #339933;],
[color= #990000;]System[color= #339933;].Data[color= #339933;],
[color= #990000;]System[color= #339933;].Data[color= #339933;].SqlClient[color= #339933;];
TYPE
TOBJ [color= #339933;]= [color= #990000;]array[color= #009900;][[color= #cc66cc;]0[color= #339933;].., [color= #cc66cc;]0[color= #339933;]..[color= #009900;]] of Object[color= #339933;];
SqlClient [color= #339933;]= [color= #000000; font-weight: bold;]public [color= #000000; font-weight: bold;]class
[color= #000000; font-weight: bold;]private[color= #009900;]{ Déclarations privées [color= #009900;]}
_iNbRows [color= #339933;]:Integer[color= #339933;];
_iNbCols [color= #339933;]:Integer[color= #339933;];
_sqlCnx [color= #339933;]: SqlConnection[color= #339933;];
_sqlCmd [color= #339933;]:SqlCommand[color= #339933;];
_sqlReader [color= #339933;]:SqlDataReader[color= #339933;];
_sqlTransac [color= #339933;]:SqlTransaction[color= #339933;];
_sqlDA [color= #339933;]:SqlDataAdapter[color= #339933;];
_sqlDs [color= #339933;]:DataSet[color= #339933;];
[color= #000000; font-weight: bold;]public
METHOD connect[color= #009900;](sConnexion[color= #339933;]:string[color= #009900;])[color= #339933;]:Boolean[color= #339933;];
METHOD NbRows[color= #339933;]:integer[color= #339933;];
METHOD NbCols[color= #339933;]:integer[color= #339933;];
METHOD SqlTrans[color= #339933;]:SqlTransaction[color= #339933;];
METHOD SqlDs[color= #339933;]:DataSet[color= #339933;];
METHOD SqlCnx[color= #339933;]:SqlConnection[color= #339933;];
METHOD deconnect[color= #009900;]([color= #009900;])[color= #339933;]:boolean[color= #339933;];
METHOD DemarrerTransaction[color= #009900;]([color= #009900;])[color= #339933;];
METHOD AnnulerTransaction[color= #009900;]([color= #009900;])[color= #339933;];
METHOD ValiderTransaction[color= #009900;]([color= #009900;])[color= #339933;];
METHOD getQueryResult[color= #009900;](sSql[color= #339933;]:string[color= #009900;])[color= #339933;]: Object[color= #339933;];
METHOD Remplir[color= #009900;](sSQL[color= #339933;]:string[color= #009900;])[color= #339933;]:string[color= #339933;];
METHOD nonQueryOrder[color= #009900;](sSQL[color= #339933;]:string[color= #009900;])[color= #339933;]:Boolean[color= #339933;];
constructor [color= #339933;];
[color= #990000;]END[color= #339933;];
IMPLEMENTATION
[color= #666666; font-style: italic;]/// <summary>Constructeur de la classe</summary>
constructor SqlClient[color= #339933;];
BEGIN
_iNbRows [color= #339933;]:= [color= #cc66cc;]0[color= #339933;];
_iNbCols [color= #339933;]:= [color= #cc66cc;]0[color= #339933;];
_sqlCnx [color= #339933;]:= [color= #000000; font-weight: bold;]new SqlConnection[color= #339933;];
_sqlCmd [color= #339933;]:= [color= #000000; font-weight: bold;]new SqlCommand[color= #339933;];
_sqlReader [color= #339933;]:= nil[color= #339933;];
_sqlDs [color= #339933;]:= [color= #000000; font-weight: bold;]new DataSet[color= #339933;];
[color= #990000;]END[color= #339933;];
METHOD SqlClient[color= #339933;].connect[color= #009900;](sConnexion[color= #339933;]:String[color= #009900;])[color= #339933;]:Boolean[color= #339933;];
BEGIN
TRY
_sqlCnx[color= #339933;].ConnectionString [color= #339933;]:= sConnexion[color= #339933;];
_iNbCols [color= #339933;]:= [color= #cc66cc;]0[color= #339933;];
_iNbRows [color= #339933;]:= [color= #cc66cc;]0[color= #339933;];
_sqlCnx[color= #339933;].Open[color= #009900;]([color= #009900;])[color= #339933;];
Result[color= #339933;]:= [color= #000000; font-weight: bold;]true[color= #339933;];
EXCEPT ON E[color= #339933;]:Exception [color= #b1b100;]DO
Result[color= #339933;]:= [color= #000000; font-weight: bold;]false[color= #339933;];
[color= #990000;]END[color= #339933;];
[color= #990000;]END[color= #339933;];
[color= #666666; font-style: italic;]// Récupère le nombre de ligne d'une requête
METHOD SqlClient[color= #339933;].NbRows[color= #339933;]:integer[color= #339933;];
BEGIN
Result[color= #339933;]:= _iNbRows[color= #339933;];
[color= #990000;]END[color= #339933;];
[color= #666666; font-style: italic;]// Récupère le nombre de colone d'une requête
METHOD SqlClient[color= #339933;].NbCols[color= #339933;]:integer[color= #339933;];
BEGIN
Result[color= #339933;]:=_iNbCols[color= #339933;];
[color= #990000;]END[color= #339933;];
[color= #666666; font-style: italic;]// Transaction
METHOD SqlClient[color= #339933;].SqlTrans[color= #339933;]:SqlTransaction[color= #339933;];
BEGIN
Result[color= #339933;]:=_sqlTransac[color= #339933;];
[color= #990000;]END[color= #339933;];
[color= #666666; font-style: italic;]// DataSet
METHOD SqlClient[color= #339933;].SqlDs[color= #339933;]:DataSet[color= #339933;];
BEGIN
Result[color= #339933;]:=_sqlDs[color= #339933;];
[color= #990000;]END[color= #339933;];
[color= #666666; font-style: italic;]// SqlConnection
METHOD SqlClient[color= #339933;].SqlCnx[color= #339933;]:SqlConnection[color= #339933;];
BEGIN
Result[color= #339933;]:=_sqlCnx[color= #339933;];
[color= #990000;]END[color= #339933;];
[color= #666666; font-style: italic;]// Lance un ordre de déconnexion de la base de données SQLServer
METHOD SqlClient[color= #339933;].deconnect[color= #009900;]([color= #009900;])[color= #339933;]:boolean[color= #339933;];
BEGIN
TRY
BEGIN
_sqlCnx[color= #339933;].Close[color= #009900;]([color= #009900;])[color= #339933;];
Result[color= #339933;]:= [color= #000000; font-weight: bold;]true[color= #339933;];
[color= #990000;]END
Except
Result[color= #339933;]:= [color= #000000; font-weight: bold;]false[color= #339933;];
[color= #990000;]END[color= #339933;];
[color= #990000;]END[color= #339933;];
METHOD SqlClient[color= #339933;].DemarrerTransaction[color= #009900;]([color= #009900;])[color= #339933;];
BEGIN
_sqlTransac [color= #339933;]:= _sqlCnx[color= #339933;].BEGINTransaction[color= #009900;]([color= #009900;])[color= #339933;];
_sqlCmd[color= #339933;].Transaction [color= #339933;]:= _sqlTransac[color= #339933;];
[color= #990000;]END[color= #339933;];
METHOD SqlClient[color= #339933;].ValiderTransaction[color= #009900;]([color= #009900;])[color= #339933;];
BEGIN
_sqlTransac[color= #339933;].Commit[color= #009900;]([color= #009900;])[color= #339933;];
[color= #990000;]END[color= #339933;];
METHOD SqlClient[color= #339933;].AnnulerTransaction[color= #009900;]([color= #009900;])[color= #339933;];
BEGIN
_sqlTransac[color= #339933;].Rollback[color= #009900;]([color= #009900;])[color= #339933;];
[color= #990000;]END[color= #339933;];
[color= #666666; font-style: italic;]// <summary>Récupère les valeurs d'une requête</summary>
[color= #666666; font-style: italic;]// <param name="sSql">Requête à exécuter</param>
[color= #666666; font-style: italic;]// <returns>Renvoi les valeurs de la requête sans les valeurs NULL</returns>
METHOD SqlClient[color= #339933;].getQueryResult[color= #009900;](sSql[color= #339933;]:string[color= #009900;])[color= #339933;]: Object[color= #339933;];
[color= #000000; font-weight: bold;]VAR
oArrResult[color= #339933;]:TOBJ[color= #339933;];
j[color= #339933;],i[color= #339933;]:integer[color= #339933;];
BEGIN
_sqlCmd [color= #339933;]:= [color= #000000; font-weight: bold;]new SqlCommand[color= #009900;](sSql[color= #339933;], _sqlCnx[color= #009900;])[color= #339933;];
_sqlReader [color= #339933;]:= nil[color= #339933;];
_sqlReader [color= #339933;]:= _sqlCmd[color= #339933;].ExecuteReader[color= #009900;]([color= #009900;])[color= #339933;];
_iNbRows [color= #339933;]:= [color= #cc66cc;]0[color= #339933;];
_iNbCols [color= #339933;]:= _sqlReader[color= #339933;].FieldCount[color= #339933;];
[color= #666666; font-style: italic;]// Initialisation du tableau de retour
[color= #b1b100;]WHILE _sqlReader[color= #339933;].Read[color= #009900;]([color= #009900;]) [color= #b1b100;]DO
BEGIN
_iNbRows[color= #339933;]:=_iNbRows[color= #cc66cc;]+1[color= #339933;];
[color= #990000;]END[color= #339933;];
oArrResult [color= #339933;]:= [color= #000000; font-weight: bold;]new TOBJ[color= #009900;](_iNbRows[color= #339933;],_iNbCols[color= #009900;])[color= #339933;];
_sqlReader[color= #339933;].Close[color= #009900;]([color= #009900;])[color= #339933;];
[color= #666666; font-style: italic;]// Remplissage du tableau de retour
TRY
BEGIN
_sqlReader [color= #339933;]:= _sqlCmd[color= #339933;].ExecuteReader[color= #009900;]([color= #009900;])[color= #339933;];
i [color= #339933;]:= [color= #cc66cc;]0[color= #339933;];
[color= #b1b100;]WHILE [color= #009900;](_sqlReader[color= #339933;].Read[color= #009900;]([color= #009900;])[color= #009900;]) [color= #b1b100;]DO
BEGIN
[color= #b1b100;]FOR j[color= #339933;]:=[color= #cc66cc;]0 TO _iNbCols[color= #cc66cc;]-1 [color= #b1b100;]DO
BEGIN
[color= #b1b100;]if not _sqlReader[color= #339933;].IsDBNull[color= #009900;](j[color= #009900;]) then [color= #666666; font-style: italic;]//Supprime les NULL comme moi
[color= #666666; font-style: italic;]//oArrResult[i,j] := _sqlReader.GetSqlValue(j)
[color= #b1b100;]else
[color= #666666; font-style: italic;]//oArrResult[i,j] := '';
[color= #990000;]END[color= #339933;];
i[color= #339933;]:=i[color= #cc66cc;]+1[color= #339933;];
[color= #990000;]END[color= #339933;];
[color= #990000;]END[color= #339933;];
EXCEPT
BEGIN [color= #666666; font-style: italic;]// gestionErreur(SQLEx);
Result [color= #339933;]:= nil[color= #339933;];
[color= #990000;]END[color= #339933;];
_sqlReader[color= #339933;].Close[color= #009900;]([color= #009900;])[color= #339933;];
_sqlCmd [color= #339933;]:= nil[color= #339933;];
_sqlReader [color= #339933;]:= nil[color= #339933;];
Result[color= #339933;]:= oArrResult[color= #339933;];
[color= #990000;]END[color= #339933;];
[color= #990000;]END[color= #339933;];
[color= #666666; font-style: italic;]// <summary>Récupère les valeurs d'une requête pour remplir une liste, un datagrid, ...</summar
y>
[color= #666666; font-style: italic;]// <param name="sSql">Requête à exécuter</param>
[color= #666666; font-style: italic;]// <returns>Renvoi les valeurs de la requête</returns>
METHOD SqlClient[color= #339933;].Remplir[color= #009900;](sSQL[color= #339933;]:string[color= #009900;])[color= #339933;]:string[color= #339933;];
BEGIN
_sqlDs[color= #339933;].Clear[color= #009900;]([color= #009900;])[color= #339933;];
TRY
_sqlDA [color= #339933;]:= [color= #000000; font-weight: bold;]new SqlDataAdapter[color= #009900;](sSQL[color= #339933;],_sqlCnx[color= #009900;])[color= #339933;];
_sqlDA[color= #339933;].Fill[color= #009900;](_sqlDs[color= #009900;])[color= #339933;];
_sqlDA[color= #339933;].Dispose[color= #009900;]([color= #009900;])[color= #339933;];
Result[color= #339933;]:= [color= #0000ff;]''[color= #339933;];
EXCEPT [color= #666666; font-style: italic;]//gestionErreur(SQLEx);
Result[color= #339933;]:= nil[color= #339933;];
[color= #990000;]END[color= #339933;];
_sqlDA [color= #339933;]:= nil[color= #339933;];
[color= #990000;]END[color= #339933;];
[color= #666666; font-style: italic;]// <summary>Lance un ordre SQL de INSERT, UPDATE ou DELETE</summary>
[color= #666666; font-style: italic;]// <param name="sSql">Requête à exécuter</param>
[color= #666666; font-style: italic;]// <returns>Renvoi true si l'odre SQL s'est déroulé normallement, false sinon</returns>
METHOD SqlClient[color= #339933;].nonQueryOrder[color= #009900;](sSQL[color= #339933;]:string[color= #009900;])[color= #339933;]:boolean[color= #339933;];
BEGIN
_sqlCmd [color= #339933;]:=[color= #000000; font-weight: bold;]new SqlCommand[color= #009900;](sSql[color= #339933;], _sqlCnx[color= #009900;])[color= #339933;];
TRY
BEGIN
_sqlCmd[color= #339933;].ExecuteNonQuery[color= #009900;]([color= #009900;])[color= #339933;];
Result[color= #339933;]:= [color= #000000; font-weight: bold;]true[color= #339933;];
[color= #990000;]END[color= #339933;];
EXCEPT
BEGIN [color= #666666; font-style: italic;]// gestionErreur(SQLEx);
Result[color= #339933;]:= [color= #000000; font-weight: bold;]false[color= #339933;];
[color= #990000;]END[color= #339933;];
[color= #990000;]END[color= #339933;];
_sqlCmd [color= #339933;]:= nil[color= #339933;];
[color= #990000;]END[color= #339933;];
[color= #990000;]END[color= #339933;].