Access - Obtener los ultimos 5 digitos???

 
Vista:

Obtener los ultimos 5 digitos???

Publicado por henry (4 intervenciones) el 15/06/2006 21:44:39
Saludos, estoy usando VFP 8.0 y me conecto a una DB de ACCESS mediante ODBC, lo que quiero es crear un cursor y que en uno de los campos que es TEXTO,
quiero solo llamar los ultimos 5 digitos, puse este código pero me
retorna un campo MEMO.

Necesito obtener este campo de este tipo pero utilizando el comando SQLEXEC

TEXT TO lcSQL NOSHOW
SELECT RIGHT(RTRIM(REFERENCIA),5) AS ultimos5 From TBLTABLA
ENDTEXT
SQLEXEC(lnHandle,lcSQL,lcCursor)

Alguien me puede decir como hago para que no retorne un campo tipo MEMO?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Evitar retorno de campo MEMO al utilizar SQLEXEC en VFP 8.0

Publicado por Alejandro (4142 intervenciones) el 19/07/2023 22:11:25
Para evitar que el campo retorne como tipo MEMO al utilizar el comando SQLEXEC en Visual FoxPro (VFP) 8.0, puedes realizar lo siguiente:

1. Asegúrate de que el campo en la tabla de Access tiene un tamaño adecuado para almacenar los últimos 5 dígitos. Por ejemplo, si el campo es de tipo Texto (Text) en Access, establece su tamaño en 5 caracteres o más.

2. Modifica el código para que la expresión RIGHT(RTRIM(REFERENCIA),5) sea asignada a una variable de tipo Character (Carácter) con una longitud adecuada. Luego, utiliza esta variable en la cláusula SELECT del comando SQLEXEC. Aquí tienes un ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
lcSQL = "SELECT RIGHT(RTRIM(REFERENCIA),5) AS ultimos5 FROM TBLTABLA"
lcCursor = "miCursor"
 
* Ejecutar el comando SQLEXEC
SQLEXEC(lnHandle, lcSQL, lcCursor)
 
* Obtener los datos del cursor en una variable local
SELECT (lcCursor)
SCAN
    lcUltimos5 = miCursor.ultimos5
    ? lcUltimos5
ENDSCAN
 
* Cerrar el cursor
SELECT 0
USE IN (lcCursor)

En este ejemplo, se utiliza una variable lcUltimos5 de tipo Character para almacenar los últimos 5 dígitos de cada registro. Al imprimir lcUltimos5, deberías obtener el resultado deseado.

Asegúrate de ajustar el nombre de la tabla "TBLTABLA" y el nombre del cursor "miCursor" según corresponda en tu caso.

Al realizar estos cambios, deberías obtener el resultado esperado y evitar que el campo se retorne como tipo MEMO.

¡Espero que esto resuelva tu problema!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar