Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Rewriting procedural code
Message
 
 
À
04/06/2002 17:54:59
Rick Graves
Advanced Approach Ltd.
Hong Kong, Hong Kong
Information générale
Forum:
Visual FoxPro
Catégorie:
Programmation Orientée Object
Divers
Thread ID:
00664749
Message ID:
00664764
Vues:
19
In general, my PRG classes that have now replaced PROCEDURAL code look something like this:
DEFINE CLASS OracleClass AS Custom

   *!* properties list

   cUserID = ''
   cPassword = ''
   cServer = ''
   nHandle = 0

   PROTECTED PROCEDURE Init
      *!* do whatever here
   ENDPROC
   PROTECTED PROCEDURE Destroy
      IF This.nHandle > 0
         SQLDisconnect(This.nHandle)
      ENDIF
   ENDDPROC
   PROCEDURE Release
      RELEASE This
   ENDPROC
   PROCEDURE Cr8_Connection
      IF This.nHandle > 0
         RETURN .T.
      ENDIF
      local lcConString
      lcConString = 'Driver=Microsoft ODBC Driver for Oracle;UID=' ;
         + This.cUserID + ';PWD=' + This.cPassword + ';Server=' ;
         + This.cServer + ';)'
      This.nHandle = SQLStringConnect(lcConString)
      RETURN (This.nHandle > 0)
   ENDPROC
   PROCEDURE RunSQL
      LPARAMETERS tcSQL, tcCursor
      IF VARTYPE(tcSQL) <> "C" or EMPTY(tcSQL)
         RETURN -1
      ENDIF
      IF NOT This.Cr8_Connection()
         RETURN -1
      ENDIF
      if vartype(tcCursor) = "C" and not empty(tcCursor)
         lnRetVal = SQLExec(This.nHandle, tcSQL, tcCursor)
      else
         lnRetVal = SQLExec(This.nHandle, tcSQL)
      endif
      RETURN lnRetVal
   ENDPROC
   PROCEDURE OtherStuff
      * do stuff here
   ENDPROC
ENDDEFINE
To use it:

oOracle = NEWOBJECT('OracleClass', 'PRG_File_Name.FXP')
oOracle.cUserID = 'myid'
oOracle.cPassword = 'mypwd'
oOracle.cServer = 'ORCL'
lcSQL = 'select * from customer order by lastname'
lnRetVal = oOracle.RunSQL(lcSQL, 'crsCustomers')
oOracle.Release()
Mark McCasland
Midlothian, TX USA
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform