الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الاتصال بقاعدة Sql Server

بدأه زكيري عبد العالي في 4 مارس 2009 · 1 رد · 1,939 مشاهدة · في Delphi .NET/PRISM
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــة ،،

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;].

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 5 مارس 2009 في 01:17

#2
method MainForm[color= #339933;].button1_Click[color= #009900;](sender[color= #339933;]: [color= #990000;]System[color= #339933;].Object[color= #339933;]; e[color= #339933;]: [color= #990000;]System[color= #339933;].EventArgs[color= #009900;])[color= #339933;];

      CONST CON [color= #339933;]= [color= #0000ff;]'Data Source=XXXXX;Initial Catalog=XXXXXX;Integrated Security='[color= #339933;];

[color= #000000; font-weight: bold;]VAR

      o_SqlClient[color= #339933;]:GEST_Farm[color= #339933;].SqlClient[color= #339933;];

      begin

      O_SqlClient[color= #339933;]:=[color= #000000; font-weight: bold;]new GEST_Farm[color= #339933;].SqlClient[color= #339933;];

      [color= #b1b100;]if[color= #009900;](O_SqlClient[color= #339933;].connect[color= #009900;](Con[color= #009900;])[color= #009900;])then

      [color= #b1b100;]if O_SqlClient[color= #339933;].Remplir[color= #009900;]([color= #0000ff;]'SELECT * FROM XXXXXX'[color= #009900;])[color= #339933;]=[color= #0000ff;]'' then

      bindingSource1[color= #339933;].DataSource[color= #339933;]:=O_SqlClient[color= #339933;].SqlDs[color= #339933;].Tables[color= #009900;][[color= #cc66cc;]0[color= #009900;]][color= #339933;];

      dataGridView1[color= #339933;].DataSource[color= #339933;]:=bindingSource1[color= #339933;];

      bindingNavigator1[color= #339933;].BindingSource[color= #339933;]:=bindingSource1[color= #339933;];

      O_SqlClient[color= #339933;].deconnect[color= #009900;]([color= #009900;])[color= #339933;];

      [color= #990000;]end[color= #339933;];

[color= #990000;]end[color= #339933;];

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 6 مارس 2009 في 01:01

مواضيع مشابهة