TDsn y TMyDsn ( crear ODBC desde aplicacion )

Post Reply
User avatar
dbzap
Posts: 189
Joined: Mon Nov 07, 2005 7:36 pm
Location: Chile
Contact:

TDsn y TMyDsn ( crear ODBC desde aplicacion )

Post 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 !!
Julio Gonzalez V.
RANDOM S.A.
SISTEMICA S.A.
Rochinha
Posts: 309
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo
Contact:

Post 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.
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Post 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, ...
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
dbzap
Posts: 189
Joined: Mon Nov 07, 2005 7:36 pm
Location: Chile
Contact:

Post by dbzap »

gracias por la ayuda.
la revisare y les comento.
saludos
Julio Gonzalez V.
RANDOM S.A.
SISTEMICA S.A.
Francisco Horta
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Post 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
User avatar
dbzap
Posts: 189
Joined: Mon Nov 07, 2005 7:36 pm
Location: Chile
Contact:

Post by dbzap »

Agradecido de cualquier ayuda.
mi correo es jgv@random.cl
Gracias.
Julio Gonzalez V.
RANDOM S.A.
SISTEMICA S.A.
Francisco Horta
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Post 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
Post Reply