Page 1 of 1

LES sucede esto con ADO y access ??

Posted: Wed Dec 20, 2006 2:44 pm
by jcaro
Hola Foro:

Aqui sigo dando la pelea con el ADO, tengo una gran duda.

No se si esto es asi o yo lo estoy haciendo mal.

1) Estoy usando un archivo access 2000 y tengo definido varios
campos alfanumericos ( texto ) de largo fijo de 40 caracteres por ejemplo.

2) El problema es cuando grabo un campo, donde solo se utilizo una parte
del largo, por ejemplo 15 letras. Al recuperarlo con un recordset y quiero
escribir y usar el especio restante, no se puede, el curso del get se queda pegado.

Esto es muy grave, pues hay procesos donde uno debe cambiar los datos.


3) Parece ser que el recordset devuelve solo lo grabado, no el largo
total del campo definido. El tipo de dato que devuelve es adVarChar.

Ocurre con otras BD como Mysql o es algo propio del ADO ??

Alguna idea de como solucionarlo ???

Saludos,

Juan

Posted: Thu Dec 21, 2006 9:22 am
by Biel EA6DD
Si a mi tambien me ha pasado, yo utilizo DB2, por tanto no es exclusivo de Access.

Yo lo que hago es mover el registro que voy a editar a un buffer (en un arrray), y redimensiono _ que son de caracter. Edito el get sobre el buffer, y muevo el resultado al recordset.

Code: Select all

      for n = 1 to ::nFields
         ::aBuffer[ n ] = ::oRs:Fields(n-1):Value
         IF ValType(::aBuffer[n])=='C'
            ::aBuffer[n]:=PadR(Trim(::aBuffer[n]),::oRs:Fields(n-1):DefinedSize,' ')
         ENDIF
      next 
La manipulacion de registros la hago mediante una clase, un pseudo clon de tDatabase, aunque ya funciona, todavia la estoy depurando.

Posted: Thu Dec 21, 2006 9:45 pm
by jcaro
¡GRACIAS BIEL! voy a probar, luego te cuento.
saludos,
Juan