| |  |  | Miembros: Mensajes: Temas: Online: Ultimo Miembro: | | |  | | |
 | 
14-04-2005, 17:27:38
|  | Gran Participación en el Foro | | Registrado: feb 2005 Posts: 150
| | Pregunta de rendimiento Tengo una duda hace ya un tiempo....pero ahora necesito llevarlo a la practica.
En el DataEnvironment por lo general hay una conexion y de ahi parten varios comandos y cada uno devuelve un Recordset. Ahora en el control ADO, con cada uno que inserto se crea una nueva conxion.
La pregunta es la siguiente, si voy a hacer una aplicacion en red, hay algun problema de rendimiento en crear una o varias conexiones? o de igual manera el DataEnvironment crea una conexion para cada comando?
Y una segunda y ultima pregunta, He creado un Modulo de Clase parecido al DataEnvironment pero con codigo, Se crea una conexion, y luego se crean comandos a partir de esa conexion y se agregan a una coleccion Recordsets. Quiero hacer algo parecido, pero en un control de Usuario, para porder asignarlo como origen de datos en tiempo de diseño a cualquier control, pero tiene que ser visto en todo el proyecto y no solamente en el formulario donde lo pongo, seria como una cosa asi de control Publico o algo asi, como el DataEnvironment. Alguien sabe como lo puedo hacer?
Muchisimas gracias a todos. | 
14-04-2005, 19:31:16
| | Gran Participación en el Foro | | Registrado: oct 2003 Posts: 192
| | Perdona pero no he entendido bien ...
Por cada registro que insertas creas una conexión ?????????????????
Espero que no sea esto por que entonces no sólo tendrás una grabe problema de rendimiento, tanto como que se quedaría colgado en cualquier equipo.
El ADO crea la conexión con la base de datos y ya está. Los demas objetos son los que leen, escriben ... sobre las tablas de la base de datos.
Estos objetos son lo Recordset y ejecutan sentencias SQL para lo que quieras hacer.
Por ejemplo:
Vsql = "SELECT " + Campos + " FROM " + NTabla0 + " INNER JOIN NTablaA ON " + NTabla0 + ".Campo1 = NTablaA.CampoA WHERE " + NTabla0 + ".Campo2='001'"
Espero que esto solucione un poco tus dudas.
En cuanto a la segunda pregunta no te puedo ayudar por el momento.
Un saludo
__________________
Libres nacemos, libres vivimos y libres moriremos.
| 
15-04-2005, 03:54:33
|  | Gran Participación en el Foro | | Registrado: feb 2005 Posts: 150
| | Gracias por contestar, pero creo que no me he explicado bien.
Cuando pongo un ADO DATA CONTROL en un formulario, este solo me devuelve un recordset y hay veces en que necesito usar mas de uno, por ejemplo:
Tengo un formulario de ventas, donde necesito recordests de articulos almacenados, registros de clientes, registros de almacen de donde se descuenta la venta, etc etc... Hasta ahora lo que hacia era poner 3 ADODC en el formulario, uno con cada tabla y asi manipulaba los datos por separado, pero se me hace un poco lento en red y no se si esta bien lo que estoy haciendo. Hasta lo que se (creo que no se) es que cada ADODC que pongo en el formulario me crea una conexion nueva. Si alguin me puede explicar un poco mas se lo agradeceria muchisimo. saludos | 
15-04-2005, 07:15:43
| | Gran Participación en el Foro | | Registrado: oct 2003 Posts: 440
| | Creo que lo que dices es correcto y no encontre ninguna forma de asignar a un control ADO una coneccion ya abierta sino solamente el mismo connectionstring.
Por lo tanto conviene trabajar con el DE o declarar los recorset en codigo. | 
15-04-2005, 08:22:06
| | Gran Participación en el Foro | | Registrado: feb 2005 Ubicación: valencia Posts: 118
| | angelescj crea ado's por codigo
osea que no pone el objeto en el formulario
llevo 2 dias esperando a que me conteste....pero no me ace caso :smt011
yo tambien quiero poder usar varios ado's :smt012
P.D.: :smt017 | 
15-04-2005, 08:31:25
| | Gran Participación en el Foro | | Registrado: oct 2003 Posts: 440
| | Código: Public dbUnits As New ADODB.Connection
Dim adoDistUnit As ADODB.Recordset
Dim adoLaborUnit As ADODB.Recordset
Dim adoAreaUnit As ADODB.Recordset
Private Sub Form_Load()
dbUnits.CursorLocation = adUseClient
dbUnits.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Units.mdb;"
Set adoDistUnit = New ADODB.Recordset
adoDistUnit.Open "Distance", dbUnits, , adLockOptimistic, adCmdTable
Set adoLaborUnit = New ADODB.Recordset
adoLaborUnit.Open "select * from Labor ORDER BY Unit", dbUnits, , adLockOptimistic
Set adoAreaUnit = New ADODB.Recordset
adoAreaUnit.Open "select * from Area ORDER BY Unit", dbFixedUnits, , adLockOptimistic
end Sub | 
15-04-2005, 15:01:06
|  | Gran Participación en el Foro | | Registrado: feb 2005 Posts: 150
| | Gracias a lo dos!!!, creo que me quedare con el DE y hare algunas cosas con codigo. Salu2
PD: En el codigo que pusistes cuando declaras el recordset (en mi opinion) te convendria para hacerlo mas simple declararlo como Dim Rs as New ADODB.Recordset y luego en el programa ya lo puedes utilizar sin tener que crearlo con Set Rs as New ADODB.Recordset. asi te ahorras unas lineas y cuando son varios recordsets, pues se ven las cosas un poco mas prolijas, pero es solo una opinion. | 
15-04-2005, 17:49:43
| | Moderador | | Registrado: dic 2002 Ubicación: Oviedo - Asturias Posts: 1.260
| | Hola alfonsoestampida, yo NO CREO ados por código, lo que hago es crear la conexión y los recordset, ADODB.Connection y ADODB.Recordset, por código, y de esta forma tenerlo controlado. Hay dos razones por las que todavía no te he contestado:
1ª Las preguntas se hacen en le foro. Yo no contesto privados.
2º No he tenido tiempo para hacerlo.
En cuanto pueda haré un pequeño esquema de como conectar y acceder a la bd por código. | 
15-04-2005, 18:45:02
| | Gran Participación en el Foro | | Registrado: feb 2005 Ubicación: valencia Posts: 118
| | Cita: |
Empezado por angelescj Hola alfonsoestampida, yo NO CREO ados por código, lo que hago es crear la conexión y los recordset, ADODB.Connection y ADODB.Recordset, por código, y de esta forma tenerlo controlado. Hay dos razones por las que todavía no te he contestado:
1ª Las preguntas se hacen en le foro. Yo no contesto privados.
2º No he tenido tiempo para hacerlo.
En cuanto pueda haré un pequeño esquema de como conectar y acceder a la bd por código. | parece que todo el mundo se a puesto en contra mia... :smt010 :smt010 :smt010 | 
15-04-2005, 19:31:29
|  | Administrador | | Registrado: dic 2002 Ubicación: BURGOS - ESPAÑA Posts: 5.490
| | Amigo alfonsoestampida:
Yo te respondo por alusiones implícitas... como puede deducirse de forma indudable.
No saques las cosas de quicio, por favor. Aquí nadie se pone en contra de nadie, y más concretamente nadie ha mostrado ningún signo de animadversión contra ti.
Ángeles te dice que ella no tiene la costumbre de contestar a los privados, y pienso que tiene toda la razón, porque si le damos vida a los privados se la quitamos al foro. Pero eso no es estar en contra tuya...
Yo te he contestado a un privado porque se trataba de unas manifestaciones tuyas que interpreté como privadas, aunque luego he comprobado que también las has hecho públicas en un post. Te aseguro que si este dato lo llego a saber antes, tampoco hubiera contestado a tu privado. En el mismo te explicaba que no podeis exigirnos que demos más de lo que damos, que son muchas, muchísimas horas las que dedicamos al foro, y a veces (hablo por mí) no tenemos ya muchos ánimos para seguir en pie...
Después de este rollo sólo me resta animarte a que te cuestiones qué puede haber para que solamente seas tú el que sospechas que estamos contra ti... Cambia el chip y mira las cosas por el lado positivo, y acepta que no es malo que de vez en cuando nos toque buscarnos el pan nuestro de cada día, sin esperar a que nos llueva del cielo cada mañana.
Gracias por tu comprensión. | | Herramientas | | | | Desplegado | Mode Lineal |
Normas de Publicación
| no Puedes crear nuevos temas no Puedes responder a temas no Puedes adjuntar archivos no Puedes editar tus mensajes Código [IMG] está habilitado Código HTML está deshabilitado | | | La franja horaria es GMT. Ahora son las 06:53:54.
Powered by vBulletin® Version 3.6.8 Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design
|  |