string ADO y archivo ini

string ADO y archivo ini

Postby Compuin » Fri Apr 01, 2016 12:36 pm

Buenos dias,

Alguien tendra un ejemplo de como crear un string de conexion via ADO desde un archivo .ini ? Es decir, llenar los valores del string desde el .ini

Saludos
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: string ADO y archivo ini

Postby cnavarro » Fri Apr 01, 2016 12:43 pm

A ver si esto te puede ayudar

Code: Select all  Expand view

//----------------------------------------------------------------------------//
Function DriversEntries()
Local aDnss   := {}
Local cLin    := ""
Local cLin1   := ""
Local oFile
Local nPos    := 0
Local lSw     := .F.
Local cFile1  := "C:\WINDOWS\ODBC.INI"
Local cFile2  := "C:\WINDOWS\ODBCINST.INI"

if file( cFile2 )
   oFile  := TTxtFile():New( cFile2 )
   oFile:nMaxLineLength := 256

   Do while !oFile:Eof()
      cLin1  := ""
      nPos   := 0
      cLin   := oFile:ReadLine()
      if !empty( cLin )
         if !lSw
            if !empty( At( Upper( "[ODBC 32 bit Drivers]" ), Upper( cLin ) ) )
               lSw     := .T.
            endif
         else
            if empty( At( "[", cLin ) )
               nPos := At( Upper( "instal" ), Upper( cLin ) )
               if !empty( nPos )
                  cLin1  := Left( cLin, nPos - 2 )
                  nPos   := 0
                  nPos := RAt( "bit",  cLin1 )
                  if !empty( nPos )
                     cLin1  := Left( cLin1, nPos - 5 )
                     AAdd( aDnss, Upper( cLin1 ) )
                  endif
               endif
            else
               lSw := .F.
            endif
         endif
      endif
      oFile:Skipper()
   Enddo
   oFile:End()
   oFile := Nil
else
   MsgInfo("Fichero no encontrado", cFile2 )
endif
if file( cFile1 )
   oFile  := TTxtFile():New( cFile1 )
   oFile:nMaxLineLength := 256

   Do while !oFile:Eof()
      cLin1  := ""
      nPos   := 0
      cLin   := oFile:ReadLine()
      cLin   := RTrim( cLin )
      cLin   := LTrim( cLin )
      if !empty( cLin )
         if !lSw
            if !empty( At( Upper( "[ODBC 32 bit Data Sources]" ), Upper(cLin)))
               lSw     := .T.
            endif
         else
            if empty( At( "[", cLin ) )
               nPos := At( Upper( "=" ), Upper( cLin ) )
               if !empty( nPos )
                  cLin1  := Right( cLin, ( Len( cLin ) - nPos ) )
                  nPos   := 0
                  nPos := RAt( "bit",  cLin1 )
                  if !empty( nPos )
                     cLin1  := Left( cLin1, nPos - 5 )
                     if empty( Ascan( aDnss, Upper( cLin1 ) ) )
                        AAdd( aDnss, Upper( cLin1 ) )
                     endif
                  endif
               endif
            else
               lSw := .F.
            endif
         endif
      endif
      oFile:Skipper()
   Enddo
   oFile:End()
   oFile := Nil
else
   MsgInfo("Fichero no encontrado", cFile1 )
endif
Return aDnss
//----------------------------------------------------------------------------//
 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6541
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: string ADO y archivo ini

Postby Compuin » Fri Apr 01, 2016 1:01 pm

Hola,

No lo veo claro aun...tal vez quise decir armar el string desde los valores del archivo ini.
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: string ADO y archivo ini

Postby cnavarro » Fri Apr 01, 2016 1:04 pm

Hola

Prueba, haciendo un XBrowse( DriversEntries() ) ( array que devuelve )
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6541
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: string ADO y archivo ini

Postby Armando » Fri Apr 01, 2016 2:39 pm

Compuin:

Va como lo hago yo.
Code: Select all  Expand view

    LeeIni()                    // Lee parametros

    IF ! Conecta()
        QUIT
    ENDIF


STATIC FUNCTION LeeIni()
LOCAL oIni
INI oIni FILE ".\SapWin.Ini"
    GET oApp:cDsn               SECTION "MYSQL" ENTRY "Dsn"         OF oIni DEFAULT "SapWin"
    GET oApp:cDescription   SECTION "MYSQL" ENTRY "Description" OF oIni DEFAULT "Sistema para Administración de Proyectos"
    GET oApp:cServer            SECTION "MYSQL" ENTRY "Server"      OF oIni DEFAULT "localhost"
    GET oApp:cDataBase      SECTION "MYSQL" ENTRY "DataBase"        OF oIni DEFAULT ""
    GET oApp:cUser              SECTION "MYSQL" ENTRY "User"            OF oIni DEFAULT "root"
    GET oApp:cPassWord      SECTION "MYSQL" ENTRY "PassWord"        OF oIni DEFAULT "91502127"
    GET oApp:cPort              SECTION "MYSQL" ENTRY "Port"            OF oIni DEFAULT "3306"
    GET oApp:cDriveName     SECTION "MYSQL" ENTRY "DriveName"   OF oIni DEFAULT "Driver={MySQL ODBC 3.51 Driver}"
    GET oApp:cStmt              SECTION "MYSQL" ENTRY "Statement"   OF oIni DEFAULT ""
ENDINI
RETURN(NIL)
 


Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3209
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: string ADO y archivo ini

Postby Compuin » Fri Apr 01, 2016 4:35 pm

Gracias a todos
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: string ADO y archivo ini

Postby ACC69 » Thu Apr 07, 2016 5:34 pm

Compuin wrote:Gracias a todos



Creo que lo que quiere Ing. es ver el contenido del archivo .ini como esta estructurado segun eso supongo.

Saludos
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Re: string ADO y archivo ini

Postby Compuin » Thu Apr 07, 2016 5:41 pm

Basicamente colocar los parametros de conexion en el .ini y llenar el string desde el mismo.

Eso es lo que necesito
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: string ADO y archivo ini

Postby ACC69 » Thu Apr 07, 2016 5:45 pm

Compuin wrote:Basicamente colocar los parametros de conexion en el .ini y llenar el string desde el mismo.

Eso es lo que necesito



; Archivo para usar parametros de conexión

[mysql]
host=127.0.0.1
user=root
psw=654321
flags=0
port=3307
dbname=PROVCLIE

A ver si te ayuda Ing.

Saludos Ing.
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Re: string ADO y archivo ini

Postby Compuin » Thu Apr 07, 2016 5:51 pm

Ok

algun ejemplo como capturarlo y llevarlo al string de conextion??
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: string ADO y archivo ini

Postby ACC69 » Thu Apr 07, 2016 6:03 pm

Compuin wrote:Ok

algun ejemplo como capturarlo y llevarlo al string de conextion??



Code: Select all  Expand view
MsgRun( "Espere, generando conexión al servidor...", ;
         "Información MySql",{|| Conectar()} )

 IF lExit
     *?"No hubo conexión con el servidor"

     Return Nil
 ENDIF

 CrearTablas()



Code: Select all  Expand view
//----------------------------------------------------------------------------------------
FUNCTION conectar() // CONECTANDO CON EL SERVIDOR
 *LOCAL hIni      := HB_ReadIni( ".\conexion.ini" ) // PARA LEER ARCHIVOS .ini
 LOCAL hIni      := HB_ReadIni( ".\connect.ini" )
 LOCAL cServer   := hIni["mysql"]["host"] ,;      // NOMBRE DEL HOST (localhost)
       cUser     := hIni["mysql"]["user"] ,;      // NOMBRE DEL USUARIO (root)
       cPassword := hIni["mysql"]["psw"] ,;       // CLAVE DEL USUARIO  (vacio por ahora)
       nPort     := val(hIni["mysql"]["port"]) ,; // PUERTO DE CONEXION (3306)
       cDBName   := hIni["mysql"]["dbname"] ,;    // NOMBRE DE LA BASE DE DATOS (sisprocom)
       nFlags    := val(hIni["mysql"]["flags"])   // NUMERO DE FLAG (0)

 TRY
    oServer = TDolphinSrv():New( cServer, cUser, cPassword, nPort, nFlags )
    *oServer = TDolphinSrv():New( cServer, cUser, cPassword, nPort, nFlags, cDBName )
 CATCH oError
    MSGALERT( "ERROR FATAL: No hubo Conexión con el SERVIDOR" + CRLF + CRLF + ;
                oError:Description(), " SISINGE - MYSQL" )

    lExit := .T.

    Return Nil
 END

 // VERIFICO SI EXISTE DATABASE, SINO, LA CREO
 IF oServer:DBCreate( cDBName )
    * MsgInfo( "Conectado Correctamente a DataBase: " + cDBName, " SISINGE - ATENCIÓN" )
 ENDIF

 oServer:SelectDB( cDBName )

 // MENSAJE CUANDO CONEXION ES CORRECTA...//la window lo oculta
 *  IF !oServer:lError // SI NO HAY ERROR...
 *     oDatos:oConex = oServer // ASIGNO oSERVER A oCONEX PARA MANEJARLO EN TODO EL SISTEMA
 *  ENDIF
RETURN Nil


Este codigo lo tome una parte del tdolphin y la otra por la ayuda de unos colegas,no recuerdo quien,espero te sirva y te ayude o haya otros que puedan aportar mejor su ejemplo .

Saludos
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Re: string ADO y archivo ini

Postby Compuin » Thu Apr 07, 2016 7:24 pm

Gracias,

Lo probare
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 75 guests