Problemas con reemplazos

Hola quisiera saber que puede estar mal aquí... Es que quiero que al ingresar un nro de cuenta me completa los campos nombre, ci, capital (estos ya fueron cargado en otro formulario) y así poder completar otros datos... Por favor espero la respuesta y gracias!
select data
set order to tag nro_cuenta
if seek (M.nro_cuenta)
    replace ingre.nombre WITH data.nombre
    replace ingre.ci with M.ci
    replace ingre.tot_cap with M.tot_cap
    replace ingre.liquidacion with M.liquidacion
    Endif

1 respuesta

Respuesta
1
No veo errores en tu código
¿Cuál es el problema?, ¿No se producen los reemplazos en la tabla?
Aguardo tu respuesta.
Si me dice la tabla no tiene ningún orden de indice establecido no se si algo tiene que ver los campos de las tablas por sin darme cuenta puse el mismo nombre pero creo que no influye eso,... ¿no se que podría ser?
Allí hay una pista muy importante !
Sería bueno conocer el mensaje de error, aunque me imagino que se trata de lo siguiente:
Para poder utilizar el comando seek el campo de tu tabla debe estar indizado mediante un índice del tipo estructural (cdx). Si no es así, el comando te dará error.
El comando SEEK busca en una tabla la primera aparición de un registro cuya "expresión clave de índice" coincida con una expresión general y después mueve el puntero de registro al registro coincidente.
***
Pregunta:
¿Tu tabla tiene un índice estructural cdx con una etiqueta "nro_cuenta"?
Realiza la siguiente prueba escribiendo en la ventana de comandos:
Use M
set order to nro_cuenta
Brow
Si recibes un mensaje de error es debido a la inexistencia del tag (etiqueta) de índice nro_cuenta en tu tabla. Debes crear la etiqueta de índice.
¿No quieres que te pase mi proyecto para que veas mejor? ¿Qué decís así me pasas tu mail?
Puedes pasarme los datos zipeados a [email protected]
¿Qué tal experto... no te llego mi mail vd?
¿Me da error al enviarte sera que algo esta mal del mail?
Si, ya recibí los datos, aunque aún no he tenido tiempo de verlos.
Te prometo que en cuanto tenga un minuto los veo y te respondo.
Saludos. Carlos
Dale te lo agradezco
Estuve revisando tu proyecto
En tu consulta pones lo siguiente:
select data
set order to tag nro_cuenta
if seek (M.nro_cuenta)
En este segmento de código seleccionas la tabla "data" que sí existe en tu proyecto, entretanto en las lineas siguientes encuentro los siguientes problemas:
1) La sentencia debería ser: "Set order to nro_cuenta"
2) Esta etiqueta de índice no existe en tu tabla. Debes Modificar la estructura de la tabla y crear un índice para el campo nro_cuenta!
3) No necesitas ordenar la tabla antes de ejecutar seek, como tampoco en necesario usar select. Es decir que la instrucción set order to está de más

4) En el comando seek ¿a qué te refieres con M.nro_cuenta? No encontré en tu proyecto ninguna tabla llamada "M" La sentencia debería ser:
if seek (variable, "data", "nro_cuenta").
***
En resumen:
1) Modifica la estructura de la tabla data y agrega un índice para el campo nro_cuenta.
2) Corrige tu programa para que quede de la siguiente forma.
if seek (variable, "data", "nro_cuenta").
    replace ingre.nombre WITH data.nombre in ingre
    replace ingre.ci with M.ciin ingre
    replace ingre.tot_cap with M.tot_cap in ingre
    replace ingre.liquidacion with M.liquidacion in ingre
endif
Corrige estos errores y tu programa funcionará correctamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas