Foros del Web » Programación para mayores de 30 ;) » .NET »

Obtener los atributos de un campo de Ador Recordset

Estas en el tema de Obtener los atributos de un campo de Ador Recordset en el foro de .NET en Foros del Web. Buenas tardes gente, sucede lo siguiente, quiero importar un excel a un recordset desconectado que genero a partir de un objeto COM, el problema es ...
  #1 (permalink)  
Antiguo 31/08/2012, 11:10
 
Fecha de Ingreso: octubre-2006
Mensajes: 16
Antigüedad: 17 años, 6 meses
Puntos: 0
Pregunta Obtener los atributos de un campo de Ador Recordset

Buenas tardes gente, sucede lo siguiente, quiero importar un excel a un recordset desconectado que genero a partir de un objeto COM, el problema es que hay campos de este recordset que, admiten NULL otros no, y con diferentes propiedades (no tipos, eso es fácil)

Mi idea es, según cada campo si admito o no valores null, por ejemplo...

si yo genero un XML de manera persistente de la estructura de este recordste obtngo algo similar a lo siguiente:

Código XML:
Ver original
  1. <s:Schema id='RowsetSchema'>
  2.     <s:ElementType name='row' content='eltOnly' rs:updatable='true' rs:UniqueTable='VERSION 2'>
  3.         <s:AttributeType name='ID_Comp' rs:number='1' rs:write='true'>
  4.             <s:datatype dt:type='int' dt:maxLength='4' rs:precision='0' rs:fixedlength='true' rs:maybenull='false'/>
  5.         </s:AttributeType>
  6.         <s:extends type='rs:rowbase'/>
  7.     </s:ElementType>

En cada nodo se define en las etiquetas DataType algunos datos muy interesantes, como ser maxLength, precision, maybenull entre otros.

Mi pregunta es la siguiente, hay aguna forma de que, del recordset generado en memoria, obtener este informacion? digo, yo puedo con un simple ciclo recorrer cada campo del recordset y obtener el tipo de dato, mediante, por ejemplo


Código vb:
Ver original
  1. for  i=0 to rs.fields.count -1
  2.     msgbox(rs.fields(i).type.tostring)
  3. next

pero, el resto de las propiedades? se obtienen con algún método? es posible? si así no fuera, se podrá hacer leyendo el XML que genero a disco por otro lado? digo, cargo el XML en una variable y de ahí saco esos datos....lo primero esta resuelto (abrir el XML y meterlo en memoria, pero lo otro?? imagino que si se puede una cosa, la otra también, el tema es como??

je! dese ya muchas gracias!
  #2 (permalink)  
Antiguo 02/09/2012, 18:59
 
Fecha de Ingreso: octubre-2006
Mensajes: 16
Antigüedad: 17 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Obtener los atributos de un campo de Ador Recordset

si a alguno le sirve, encontre el metodo, en visual studio 2010 estaba medio complicado, pero aca esta:

Código vb:
Ver original
  1. Dim RS As Object
  2.         RS = CreateObject("ADOR.RECORDSET")
  3.         Dim JA As MI_COM.METODO
  4.         JA = CreateObject("MI_COM.METODO")
  5.         Dim M As Boolean
  6.  
  7.         M = JA.METODO1(parametroA, RS)
  8.         Dim I = 0
  9.  
  10.         For I = 0 To RS.FIELDS.COUNT - 1
  11.  
  12.             If (RS.FIELDS(I).ATTRIBUTES And ADODB.FieldAttributeEnum.adFldMayBeNull) = ADODB.FieldAttributeEnum.adFldMayBeNull Then
  13.                 MsgBox(RS.FIELDS(I).NAME & " SI", vbInformation, "ES NULLEABLE? ")
  14.             Else
  15.                 MsgBox(RS.FIELDS(I).NAME & " NO", vbInformation, "ES NULLEABLE? ")
  16.             End If
  17.  
  18.         Next

claro que el name space ADODB tienen que agregarlo como referencia al proyecto, y ademas, tiene varios enumeradores, entre ellos FieldAttributeEnum que cuenta con diferentes valores que responden a TRUE o FALSE

En fin, espero que les sea de utilidad, a mi me ayudo bastante conocer esto, y hay muchas cositas mas pára seguir viendo...saludos!

Etiquetas: visualbasic, visualbasic2010, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:17.