Uso de append blank

Como se hace para agregar registros y modificar los existentes sin usar el asistente, ya que cuando he querido escribir código con append blank me dice que el registro es de solo lectura, y cuando lo ha tomado no me permite ir a los campos correspondientes ya que grabo el registro en blanco. ¿Podrías enviarme un pequeño ejemplo?
Otra cosa que me pasa es en un reporte cuando lo veo en pantalla (después de un filtrado de datos) parece que algo queda en memoria ¿qué es lo que hago mal, que no se descarga de la memoria?
Desde ya gracias,
Daniel
1

1 respuesta

Respuesta
1
En lugar de utilizar el comando Append Blank podrías utilizar el comando:
INSERT - SQL (Comando)
Anexa un registro al final de una tabla que contiene los valores de campo especificados.
Sintaxis
INSERT INTO nombre_dbf [(fnombre1 [, fnombre2, ...])]
VALUES (eExpresión1 [, eExpresión2, ...])
-O bien-
INSERT INTO nombre_dbf FROM ARRAY NombreMatriz | FROM MEMVAR
Argumentos
INSERT INTO nombre_dbf
Especifica el nombre de la tabla a la que se anexará un registro. Nombre_dbf puede incluir una ruta de acceso y puede ser una expresión de nombre.
Si la tabla que especifica no está ya abierta, se abrirá en modo exclusivo en una área de trabajo nueva y se anexará el registro. El área de trabajo nueva no se selecciona, sino que permanece seleccionada el área de trabajo actual.
Si la tabla que especifica está abierta, INSERT anexa el registro a la tabla. Si la tabla está abierta en una área de trabajo distinta del área de trabajo actual, no se seleccionará después de anexar el registro; el área de trabajo actual permanecerá seleccionada.
[(fnombre1 [, fnombre2 [, ...]])]
Especifica los nombres de los campos del nuevo registro donde se insertan los valores.
VALUES (eExpresión1 [, eExpresión2 [, ...]])
Especifica los valores de campo que se insertan en el nuevo registro. Si omite los nombres de los campos, debe especificar los valores de campo en el orden definido por la estructura de la tabla. Si SET NULL está ON, INSERT - SQL intentará insertar valores nulos en cualquier campo no especificado de la cláusula VALUES.
FROM ARRAY NombreMatriz
Especifica la matriz cuyos datos se insertan en el nuevo registro. El contenido de los elementos de la matriz, comenzando por el primer elemento, se inserta en los campos correspondientes del registro. El contenido del primer elemento de la matriz se inserta en el primer campo del nuevo registro, el contenido del segundo elemento se inserta en el segundo campo, y así sucesivamente.
Se ignora cualquier valor predeterminado de los campos cuando se incluye la cláusula FROM ARRAY.
From memvar
Especifica que el contenido de las variables de memoria se inserta en los campos que tengan los mismos nombres que dichas variables. Si no existe una variable de memoria con el mismo nombre que el campo, éste permanecerá vacío.
Comentarios
El nuevo registro contiene los datos indicados en la cláusula VALUES o incluidos en la matriz o las variables de memoria especificadas. El puntero de registro se coloca en el nuevo registro.
Ejemplo:
En el siguiente ejemplo se abre la tabla employee y se agrega un registro.
USE employee
INSERT INTO employee (emp_no, fname, lname, officeno) ;
VALUES (3022, "John", "Smith", 2101)
El ejemplo siguiente abre la tabla customer de la base de datos testdata. El contenido del registro actual se reparte en variables, y la estructura de la tabla se copia a una nueva tabla llamada cust2. Se usa INSERT - SQL para insertar un registro nuevo en la tabla cust2 y se ejecuta BROWSE para mostrar el nuevo registro.
Close databases
Clear
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE Customer && Abre la tabla customer
* Esparcir el registro actual a variables de memoria
SCATTER MEMVAR
* Copiar estructura de la tabla actual a la tabla de ejemplo
COPY STRUCTURE TO cust2
* Insertar registro desde variable de memoria
INSERT INTO cust2 FROM MEMVAR
SELECT CUST2
BROWSE
* Cerrar y eliminar tabla de ejemplo
USE
DELETE FILE cust2.dbf
Para tu segundo problema te aconsejo que le des el click Derecho del Mouse sobre dicho reporte y selecciones "Entorno de datos" si aparece una o varias tablas, las eliminas, pues probablemente si creaste el formulario por el generador de reportes, este deja las tablas ligadas a dicho reporte o a cualquier cosa que hagas por generador.
He recibido la respuesta con alegría, pondré en practica lo indicado y cualquier inquietud volveré a preguntar, en cuanto al reporte sí lo hice con el generador y sé que hay tablas ligadas.
Muchas gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas