conexion a base de datos externa por ODBC o por ADO?

491 views
Skip to first unread message

Luis Dutari

unread,
Oct 22, 2012, 11:46:33 AM10/22/12
to publice...@googlegroups.com
amigos, buen dia
tengo un sistema en vfox que trabaja con base de datos en sqlserver express 2005. anda perfecto.
el tema es que tengo que cambiarlo a firebird por compatibilidad con otro sistema. y a partir de ahi, estuve viendo ejemplos (de Walter Ojeda Valiente) que se conecta directamente con instrucciones ya nativas de fox (SQLCONNECT, sqlExec, etc) usando ODBC

la forma de conexión y consulta que uso ahora (para ADO) es la sgte:
conexion

LPARAMETERS pStringConnect as Character 
this.loConnection = CREATEOBJECT("ADODB.Connection")
this.loConnString = pStringConnect 
this.loConnection.Open(this.loConnString)

Consulta
LPARAMETERS lcQuery as String , cNombreCursor as string
** Creamos el objeto Cursor Adapter
this.locursoradapter = CREATEOBJECT("CursorAdapter")
  ** Asignamos el tipo de datos que recibirá
this.loCursorAdapter.DataSourceType="ADO"
this.loCursorAdapter.MaxRecords = -1
this.loRecordSet = this.loConnection.Execute(lcQuery)
this.loCursorAdapter.Alias = cNombreCursor
this.loCursorAdapter.CursorFill(,,,this.loRecordSet)
this.loCursorAdapter.CursorDetach()
SELECT &cNombreCursor
GO bottom
GO TOP 

Ejecutar instrucción en sql
LPARAMETERS lcQuery as String 

this.lorecordSet = CREATEOBJECT('adodb.recordset')

this.loconnection.Execute(lcQuery)
this.dbconectar(this.loConnString)
this.loconnection.Execute(lcQuery)



obviamente las cadenas de conexíón entre ODBC y ADO son distintas.
pero mi pregunta va hacia las diferencias y conveniencias entre usar uno u otro, sobre todo ahora aplicado a firebird.
cual es más rápido? o de qué depende la velocidad entre una y otra forma de conexión?
o que otros aspectos tendría que tener en cuenta para elegir el tipo de conexión?

desde ya y como siempre muchas gracias

saludos

Luis 
Cördoba, Argentina

extremo

unread,
Oct 22, 2012, 12:07:50 PM10/22/12
to publice...@googlegroups.com
estas usando sqlserver express y anda bien... ahora necesitas conectarte por ODBC y dices que para eso TIENES que cambiarte firebird?.... no entiendo cual es esa incompatibilidad de la que comentas con el SQLServer.

Bendiciones

Luis Dutari

unread,
Oct 22, 2012, 1:07:13 PM10/22/12
to publice...@googlegroups.com
tal vez no se entendió correctamente el planteo
en realidad, mas alla del motor de base de datos que use, (si firebird, sqlserver, mysql, etc), la pregunta es si conviene conectarse por ADO o por ODBC
entiendo que ado se discontinuo porque paso a ser ADO.net
y que, me parece, el ODBC es más natural al fox dado que incluye varias instrucciones propias para manipularlo

queria saber cual es más conveniente de usar, por facilidad, velocidad, o por otros aspectos a tener en cuenta

gracias

Luis

extremo

unread,
Oct 22, 2012, 1:13:20 PM10/22/12
to publice...@googlegroups.com
yo hsta el momento no he encontrado ninguna difrencia en velocidad entre ADO y ODBC. Por facilidad de uso me inclino a ODBC y ademas que ODBC es mas estable que ADO almenos yo he encontrado mas estabilidad con conexiones ODBC que con ADO en equipos moviles. Y por ultimo ADO esta continuamente mejorandose (por algo sera) mientras que ODBC sigue siendo el mismo y nunca ha dado problemas.


Bendiciones

El lunes, 22 de octubre de 2012 12:46:33 UTC-3, Luis Dutari escribió:

Fox Learner

unread,
Oct 22, 2012, 3:44:17 PM10/22/12
to publice...@googlegroups.com
Lo último que supimos por aquí fue que MS abandonaba OLE DB en favor de ODBC, por obvias razones (ODBC es mas estandar a nivel de multiplataforma). Digamos que por el momento, en materia de interconexion, ODBC es un triunfador.

ADO fue reemplazado por ADO.NET por lo que no suena recomendable quedarse ahi..

Saludos!

mpulla

unread,
Oct 22, 2012, 4:56:11 PM10/22/12
to publice...@googlegroups.com
Hola Luis.

ODBC mejor si es el nativo de Sql Server para menejar tipos de datos como Date (2008 o superior), XML y otros.

Saludos.
Mauricio
Reply all
Reply to author
Forward
0 new messages