Visual Basic - Ayuda de ADO Open o Execute

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda de ADO Open o Execute

Publicado por Carlos Pitol (11 intervenciones) el 20/01/2004 20:21:35
Buenas tardes, mi problema es el siguiente, estoy desarrollando un sistema, ocupo bases de datos en Access 2000, el problema es que utilizo ADO, pero no se como o que es lo correcto, lo hago asi

Aqui guardo en StrCnn mi cadena de conecion
StrCnn = "Provider=" & "Microsoft.Jet.OLEDB.4.0" & ";Data Source="CtrlAutos.mdb;Persist Security Info=False;Jet OLEDB:Database Password=*****"

aqui conecto mi base de datos
cat.ActiveConnection = StrCnn
Comando.CommandText = "Select * from autos"
Consulta_Tbl = Comando.Execute

o tambien ocupo para los DBGrid lo que es
rec.open "Select * from autos" StrCnn, adOpenKeyset, adLockOptimistic

la cosa es que con el comando.execute no lo puedo asignar a un DBGrid y el Rec.Open asi, la desventaja es que el rec.open es mas lento para realizar las consultas en las tablas que el comando.execute

Mi pregunta es cual es la forma correcta, el .Open o el .Execute y como hacer para que sea mas rapida
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda de ADO Open o Execute

Publicado por Cecilia Colalongo (3116 intervenciones) el 20/01/2004 23:03:32
No se como has medido los tiempos de los comandos, pero en el caso del Command sería:

Set Consulta_Tbl = Comando.Execute

Ya que devuelve un Recordset. La forma correcta depende de lo que tengas que ejecutar, al existir ambos métodos los dos son válidos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda de ADO Open o Execute

Publicado por Carlos Pitol (11 intervenciones) el 21/01/2004 03:19:56
creeme que tu respuesta no me esta ayudando mucho, yo mido el tiempo en que ocupando las mismas tablas con la misma cantidad de campos, es mucho mas tardado el rec.open "select * from autos........ que el rec.execute comando.commandtext, y necesito que me digan cual de los dos es mas recomendable para sistemas grandes y complejos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda de ADO Open o Execute

Publicado por Cecilia Colalongo (3116 intervenciones) el 21/01/2004 11:42:01
Todo depende del contexto en que lo utilices "grande y complejo" puede tener muchas connotaciones, y nuevamente desconozco que métrica utilizas para afirmar cada cosa.

ADO en particular tanto el método Execute como Open utilizan estructuras similares para utilizar los métodos de las interfaces de los proveedores OLE DB que después de todo es lo que realmente interactúa con la base de datos.

Personalmente, en el componente de acceso a datos que utilizo en un sistema tres capas, utilizo Connection.Execute salvo para los procedimientos almacenados que tienen parámetros de retorno que utilizo un Command.Execute, y trabajo con Recordsets desconectados.

En cuanto a tu pregunta, no existe una respuesta absoluta que diga que es mejor que otra cosa, ya que todo se analiza en un contexto.

En http://support.microsoft.com/default.aspx?scid=kb;EN-US;168336 tienes un artículo que te puede servir.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar