yo creo que el problema de Diego, en estos momentos, es que tiene un montón de alternativas, jajajaja
_____ De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Carlos Bernardo Maggiotti Enviado el: jueves, 23 de agosto de 2007 22:12 Para: vbusers List Member Asunto: [vbusers] Navegar un Recordset Y porque no mejor una coleccion que puede ademas almacear las key que el esta necesitando? Saludos CarlosMag _____ From: [EMAIL PROTECTED] To: [email protected] Subject: [vbusers] Navegar un Recordset Date: Thu, 23 Aug 2007 21:58:39 +0200 podrías convertir el recordset en un arraylist (un array de objetos de tu clase Empleado, por ejemplo) 'primero definir la clase Class Empleado integer Codigo string Nombre string Direccion Sub New(pCodigo,pNombre,pDireccion) Codigo=pCodigo Nombre=pNombre Direccion=pDireccion EndSub EndClass 'luego transformar el recordset en mi clase while rs.MoveNext miArrayList.Add( New Empleado( rs("Codigo"), rs("Nombre"), rs("Direccion") ) ) 'ahora puedo trabajar directamente sobre mi array de objetos de la clase Empleado 'y puedo preguntar por miArrayList(2).Nombre Está todo en pseudo-codigo, es solo un ejemplo para que se entienda la idea. Pata. _____ De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Diego Campos Enviado el: jueves, 23 de agosto de 2007 20:52 Para: vbusers List Member Asunto: [vbusers] Navegar un Recordset Pata, gracias por el dato. Esto funciona y esta piola. Igualmente pregunto... No hay alfuna forma de lo que se obtenga sea tambien referenciando a los nombre de columnas... Para poder hacer referencias por nombre y no por indices ya que como tengo unos varios campos... es medio tedioso y propenso a errores ya que si cambia algo en el orden de las columnas del recorset de origen...algo se rompe. Si iría por descripcion no. Se que es pedir mucho..pero bue... Gracias por todo. Diego.- Pata del Santo wrote: 'esto te genera una matriz en memoria arrResultSet = oRecordSet.GetRows() 'así averiguamos cuántos registros tengo iLastRow = ubound(arrResultSet,2) 'luego podríamos hacer For iCounter=0 to iLastRow aqui dentro jugamos con iCounter (Actual) y con iCounter+1 (Siguiente) Next _____ De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Diego Campos Enviado el: jueves, 23 de agosto de 2007 17:53 Para: vbusers List Member Asunto: [vbusers] Navegar un Recordset Estuve intentando lo siguiente: rs as adodb.recordset rs1 as adodb.recordset set rs = commando.execute OP1 Set rs1 = rs.Clone Error: Current Recordset does not support bookmarks. This may be a limitation of the provider or of the selected cursortype. OP2 Set rs1 = rs No da error pero ambos recordset se mueven conjuntamente... y no me sirve. OP3 rec as adodb.record rec.open rs Error: Object or provider is not capable of performing requested operation. Alguna idea ?? Gracias.- Pata del Santo wrote: Se me ocurre más o menos así : - me paro en el primero - oActual = registro - si hay más de uno - avanzo uno, hasta el segundo - mientras no se acabe - oSiguiente = registro - procesar oActual (espiando oSiguiente) - oActual=oSiguiente - procesar oActual (teniendo en cuenta que ya no hay oSiguiente) ojo, porque todo el tiempo estarás parado en el "siguiente" Pata. _____ De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Diego Campos Enviado el: jueves, 23 de agosto de 2007 16:43 Para: vbusers List Member Asunto: [vbusers] Navegar un Recordset Otra aclaración... Estoy necesitando poder leer en avance la proxima línea para obtener algunos datos y luego continuar la lectura de la línea actual.. Se entiende ? Gracias y disculpén si no me explique bien. Saludos.- Diego Campos wrote: Hola, Estoy trabajando con unos recordset que se cargan atravez de la ejecución de un ADODB.Command. Este tipo de Recordset es del tipo forwardonly...por lo que pude ver.. Hay alguna posibilidad de clonarlo/transformarlo en otro tipo de recordset (adOpenDynamic, etc) ?? Utilizo VB 6 sp 5. Codigo. Set Comando = New ADODB.Command Set rsGL = New ADODB.Recordset With Comando .ActiveConnection = CN .CommandText = "spFESA01GL_VB" .CommandType = adCmdStoredProc .CommandTimeout = TimeOut End With Set rsGL = Comando.Execute rsGL.MoveFirst _____ Comunícate al instante con Windows Live Messenger Windows Live Messenger <http://imagine-msn.com/messenger/launch80/default.aspx?locale=es-us&source= joinmsncom/messenger>
