Page 1 of 1

TDsn y TMyDsn ( crear ODBC desde aplicacion )

Posted: Mon Dec 04, 2006 12:36 pm
by dbzap
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 !!

Posted: Tue Dec 05, 2006 8:51 am
by Rochinha
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.

Posted: Tue Dec 05, 2006 11:47 am
by Biel EA6DD
Puedes hacerlo utilizando la funcion SQLConfigDataSource de ODBCCP32.dll

Code: Select all

#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, ...

Posted: Tue Dec 05, 2006 12:24 pm
by dbzap
gracias por la ayuda.
la revisare y les comento.
saludos

Posted: Wed Dec 06, 2006 5:07 am
by Francisco Horta
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

Posted: Wed Dec 06, 2006 12:56 pm
by dbzap
Agradecido de cualquier ayuda.
mi correo es jgv@random.cl
Gracias.

Posted: Wed Dec 06, 2006 4:32 pm
by Francisco Horta
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 _ 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