FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour TDsn y TMyDsn ( crear ODBC desde aplicacion )
Posts: 189
Joined: Mon Nov 07, 2005 07:36 PM
TDsn y TMyDsn ( crear ODBC desde aplicacion )
Posted: Mon Dec 04, 2006 12:36 PM

Hola a todos.
El otro dia bajé del sitio de Patrick ( fivewin.info creo ) una clase para crear ODBC desde la aplicacion ( TDSN ), necesitaba hacerlo para una base en ACCESS, pero desafortunadamente no funcionó.
Existe una clase mejorada para hacer esta tarea, o se debe hace de otra forma.
De antemano agradezco su ayuda.
Saludos

PD. Por error meti este post en el foro ingles....disculpas !!

Julio Gonzalez V.

RANDOM S.A.

SISTEMICA S.A.
Posts: 310
Joined: Sun Jan 08, 2006 10:09 PM
TDsn y TMyDsn ( crear ODBC desde aplicacion )
Posted: Tue Dec 05, 2006 08:51 AM
Amigo

No te preocupes

Usteds podes tentar mi bilbioteca

Mira la explicacion em:

Explicacion en Portugues

E baja la lib en:

http://www.shoppmarketing.com/forum/hbado.zip

Tiene exemplo de uso con mysql, sql-server, access, xml, firebird sem uso de ODBC, és praticamente nativo.
Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
TDsn y TMyDsn ( crear ODBC desde aplicacion )
Posted: Tue Dec 05, 2006 11:47 AM
Puedes hacerlo utilizando la funcion SQLConfigDataSource de ODBCCP32.dll

#include "Fivewin.ch"
FUNCTION CfgOdbc()
   LOCAL nRet,cDriver,cAttribute
   cDriver   :="Client Access ODBC Driver (32-bit)"
   cAttribute:="DSN=BIEL"+Chr(0)+"DESCRIPTION=descipcion"+Chr(0)+"SERVER=192.168.101.1"
   nRet:=CrtDtaSrc(0,1,cDriver, cAttribute )
   //nRet->0 no se ha creado, 1 creado ok
RETURN NIL

DLL32 FUNCTION CrtDtaSrc(hWnd AS LONG, nRequest AS LONG, @cDriver as STRING  , @cAttributes as STRING) ;
   AS _INT PASCAL FROM "SQLConfigDataSource" LIB "ODBCCP32"

cDriver es el nombre del driver por ejemplo "SQL Server", etc
Los atributos varian dependiendo del controlador ODBC, los tipicos son DSN,SERVER, DESCRIPTION, DATABASE, ...
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
Posts: 189
Joined: Mon Nov 07, 2005 07:36 PM
TDsn y TMyDsn ( crear ODBC desde aplicacion )
Posted: Tue Dec 05, 2006 12:24 PM

gracias por la ayuda.
la revisare y les comento.
saludos

Julio Gonzalez V.

RANDOM S.A.

SISTEMICA S.A.
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
TDsn y TMyDsn ( crear ODBC desde aplicacion )
Posted: Wed Dec 06, 2006 05:07 AM

hace un par de semanas tenia la misma necesidad, accesasr y tomar datos de una .mdb y manipular la info, leerla, guardarla a dbf, no necesite nada de odbc, use ado y muy facil, eso si tuve que usar xharbour, pero muy sencillo lo que hice si requieres el ejemplo con gusto te lo paso.
salu2
paco

____________________

Paco
Posts: 189
Joined: Mon Nov 07, 2005 07:36 PM
TDsn y TMyDsn ( crear ODBC desde aplicacion )
Posted: Wed Dec 06, 2006 12:56 PM

Agradecido de cualquier ayuda.
mi correo es jgv@random.cl
Gracias.

Julio Gonzalez V.

RANDOM S.A.

SISTEMICA S.A.
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
TDsn y TMyDsn ( crear ODBC desde aplicacion )
Posted: Wed Dec 06, 2006 04:32 PM

julio, aki dejo el ejemplo, ojala a alguien mas le sea de utilidad.
como no supe como subir el archivo pues aki lo dejo, se que no es lo mejor.

include "FiveWin.CH"

include "Ado.CH"

// aDato := "MiDatabase.MDB"

STAT FUNC Importa(aDato)
LOCAL oConexionAdo := TOLEAUTO():New("adodb.connection")
LOCAL oRS := TOLEAUTO():New("adodb.recordset")
LOCAL oOpen, Rec:=0, cFile := Alltrim(aDato[1]),;
aFields:={}, cCod:=""

oOpen := "Provider= MicroSoft.Jet.OLEDB.4.0;Data Source="+cFile+";"

AADD(aFields,{"Color", "C_Grade"})
AADD(aFields,{"SCI", "SCI" })
AADD(aFields,{"Length", "LEN" })

oConexionAdo:Open(oOpen)

oRS:LockType := adLockOptimistic
oRS:CursorType := adOpenKeyset
oRS:ActiveConnection(oConexionAdo)
oRS:Source := "Select * from hvidata" // tu query aqui
oRS:Open()

oRS:MoveFirst()

DO WHILE !oRS:eof()

    cCod := oRS:Fields("Bale ID"):Value   // tomamos valor de la tabla de access del campo Bale ID
    FOR x := 1 TO LEN(aFields)
        (oDBF)->&(aFields[x,2]):=oRS:Fields(aFields[x,1]):Value  // tomo los valores de access de los campos y los pongo en la dbf de acuerdo al nombre en el arreglo
    NEXT
    oRS:MoveNext()

ENDDO

oRS:Close()
oConexionAdo:Close()

RETURN NIL
salu2
paco

____________________

Paco

Continue the discussion