Y porque no mejor una coleccion que puede ademas almacear las key que el esta
necesitando?
Saludos
CarlosMag
From: [EMAIL PROTECTED]: [EMAIL PROTECTED]: [vbusers] Navegar un RecordsetDate:
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
CamposEnviado el: jueves, 23 de agosto de 2007 20:52Para: vbusers List
MemberAsunto: [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 ordende 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
CamposEnviado el: jueves, 23 de agosto de 2007 17:53Para: vbusers List
MemberAsunto: [vbusers] Navegar un RecordsetEstuve intentando lo siguiente:rs
as adodb.recordsetrs1 as adodb.recordsetset rs = commando.executeOP1 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
CamposEnviado el: jueves, 23 de agosto de 2007 16:43Para: vbusers List
MemberAsunto: [vbusers] Navegar un RecordsetOtra 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.CommandSet rsGL = New ADODB.RecordsetWith Comando .ActiveConnection = CN
.CommandText = "spFESA01GL_VB" .CommandType = adCmdStoredProc
.CommandTimeout = TimeOutEnd WithSet rsGL = Comando.ExecutersGL.MoveFirst
_________________________________________________________________
Descubre Live.com - tu propia página de inicio, personalizada para ver
rápidamente todo lo que te interesa en un mismo sitio.
http://www.live.com/getstarted