Oracle - No se me insertan los registros en la tabla.

   
Vista:

No se me insertan los registros en la tabla.

Publicado por RobertoMZ (11 intervenciones) el 05/05/2009 16:20:20
No se me insertan los registros en la tabla.
Hola, estoy haciendo un formulario con oracle, y necesito insertar registros, el caso es que he realizado el formulario mediante el asistente, y luego he puesto un boton para guardar los registros en la tabla, el caso es que tengo un procedimiento almacenado que es el siguiente:

CREATE or REPLACE PROCEDURE insertarcliente(DNI char,nombre varchar2,apellido varchar2)
is
begin
insert into clientes values(DNI,nombre,apellido);
end;

y en el boton guardar del formulario, tengo la llamada:

begin
insertarcliente(:CLIENTE.DNI,:CLIENTE.NOMBRE,:CLIE NTE.APELLIDO);
commit;
end;

Pues bien, al ejecutar el formulario, introducir los datos y dar al boton guardar me sale lo siguiente: FRM-40600:EL REGISTRO YA SE HA INSERTADO
Pero voy a la tabla, y no esta insertado.
En cambio, si pongo un boton con un commit simplemente, se me agrega el registro correctamente, pero no me deja agregar mas porque me pone que el elemento esta protegido contra actualizaciones.

Si alguien sabe lo que ocurre, a ver si me pueden ayudar. Gracias
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

RE:No se me insertan los registros en la tabla.

Publicado por Sergio (79 intervenciones) el 07/05/2009 18:36:16
Por el tipo de error "supongo" -porque asumes que la telepatía por aquí anda por los 400- que se trata de Forms 6i.

Forms 6i es una maravilla para ambientes cliente/servidor y no tienes que reinventar la rueda haciendo eso. Una de las tantas excelentes funcionalidades que ofrece la cual es que puedes consultar, insertar, actualizar y eliminar USANDO el bloque.

En las propiedades del bloque especifica que el tipo de objeto al que referencía es una tabla, y los items del bloque mapéalos con los campos de esa tabla.

Cuando corres la forma puedes revisar el mapeo de los botones del teclado con Ctrl+F1:
F6: Agrega un nuevo registro
F7: Prepara el bloque para consulta
F8: Ejecuta consulta con el/los criterios especificados
F9: Despliega lista de valores, del item actual si existe un LOV asignado a este
F10: GRABA LOS CAMBIOS (Insert/Update/Delete)

Dicho esto lo que tienes que hacer es lo siguiente ya que tienes tu canvas con las características deseadas:
1. Con el "Asistente de Bloques" crea un "bloque de base datos" (bloque ligado a una tabla). El asistente crea en automático la referencia del bloque con la tabla, y de los items con los campos de la tabla.
2. Corre la forma
3. F6 para nuevo registro
4. Introduces los datos del registro
5. F10 grabas (commit) el registro en la base.

Repito no tienes que reinventar la rueda codificando lo que la funcionalidad de bloques ya te ofrece de manera inherente sin una sólo línea de código, lo demás que tengas que hacer para evitar malos manejos -validaciones- déjalo para los triggers, por ejemplo, PRE-INSERT, PRE-UPDATE o PRE-DELETE entre otros.
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

RE:No se me insertan los registros en la tabla.

Publicado por RobertoMZ (11 intervenciones) el 07/05/2009 19:22:15
Gracias por la respuesta, lo que ocurre es que necesariamente tengo que poner esos botones, ya que nos lo ha pedido el profesor, y tampoco tendria que ser muy dificil hacerlos funcionar, pero no se que pasa...
Por cierto estoy usando la version 10 del Forms.
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

RE:No se me insertan los registros en la tabla.

Publicado por Sergio (79 intervenciones) el 08/05/2009 00:12:43
aah órale, lo que yo haría en ese caso entonces es NO poner el bloque como de base de datos ergo ningún item iría ligado a ningún campo de tabla y ejecutar el código:

begin
insertarcliente(:CLIENTE.DNI,:CLIENTE.NOMBRE,:CLIE NTE.APELLIDO);
commit;
end;

cuando presiones el botón. La clave está en NO ligar el bloque con ninguna tabla ya que la operación la haces desde código.
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

RE:No se me insertan los registros en la tabla.

Publicado por RobertoMZ (11 intervenciones) el 08/05/2009 17:49:53
Muchas gracias por la respuesta, me ha servido de mucho, y asi se me ha solucionado el 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

No se me insertan los registros en la tabla.

Publicado por lucero (1 intervención) el 28/05/2013 01:02:22
yo hice uno pero con los esquemas que trae el oracle que es hr
yo hice una tabla en el pero lo que utilize fue una secuencia, para que los datos que yo insertaba se almacenaran en la tabla.
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