Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Propiedad Para Verificarsi Se Realizo La Insersion En La Base De Datos
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Propiedad Para Verificarsi Se Realizo La Insersion En La Base De Datos 
 
Hola, a todos  quisiera pedirles ayuda con una propiedad que desconozco en gambas:

realice una inserción en una tabla de una base de datos de la siguiente manera:

IF error1 = 1 OR error2 = 1 THEN
Message.Info("Para registrar la información debe igresar los datos solicitados")
ELSE
consulta = modulofunciones.conexion.Exec("select maestr_articu.cod_articulo from maestr_articu where maestr_articu.cod_articulo='" & ME.TextBox1.Text & "'")
IF consulta.Count = 0 THEN
modulofunciones.conexion.Exec("insert into maestr_articu(cod_articulo,descripcion,tipo) values('" & ME.TextBox1.Text & "','" & ME.TextBox2.Text & "','" & ME.TextBox3.Text & "')")

IF consulta.propiedadquedescnosco  THEN
Message.Info("No se pudo registrar la información")
ELSE
Message.Info("se registro la información correctamente")
ENDIF
ELSE
Message.Info("el articulo ya esta registrado")
ENDIF

ENDIF  


en el texto que esta coloreado en azul debería existir una propiedad que me permita verificar si se realizo la inserción o no, pero desconozco en gambas cual es esa propiedad
la variable consulta es de tipo result.
me disculpan que hay algunas palabras en mayúscula pero lo copie tal cual como lo genero gambas.
 



 
última edición por victoria el Viernes, 18 Febrero 2011, 03:15; editado 2 veces 
victoria - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Propiedad Para Verificarsi Se Realizo La Insersion En La Base De Datos 
 
Hola
Desconozco si esto en SQLITE funciona así, pero en mysql hay una serie de funciones para eso.

Las mas corrientes son:
LAST_INSERT_ID -> devuelve el valór del último campo de tipo autonumérico en la conexión activa. No importa si otros usuarios han insertado en otras conexiones otros registros. El valor que obtienes es el del código del registro que insertaste.

ROW_COUNT -> el número de registros insertados, updateados o borrados

Osea que tu haces por ejemplo un insert y luego para saber el código autonumérico que se le ha asignado haces
Rs=Cn.exec("select last_insert_id as nuevo")
Codigo_Ultimo=Rs!nuevo


O si lo que quieres es saber si se insertó o si se borró o modificó algo
Rs=Cn.exec("select row_count as cuantos")
Registros_Afectados=Rs!cuantos

Y en Registros_Afectados tienes la cantidad de registros que has tocado en tu última operación. Da igual que otros usuarios paralelamente hagan otras cosas. Esto te informa de lo que has hecho tu en tu conexión.

Seguramente en sqlite habrá algo parecido
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Propiedad Para Verificarsi Se Realizo La Insersion En La Base De Datos 
 
Creo que simplemente deberías preguntar por el error. Usando código de gambas, prueba ésto:

dim r as result
TRY   r=modulofunciones.conexion.create(maestr_articu)
IF ERROR THEN
        Message.Error("CREATE:Se produjo el siguiente error:\n" & Error.Text)
ENDIF
r!cod_articulo= ME.TextBox1.Text
r!descripcion=ME.TextBox2.Text
r!tipo=ME.TextBox3.Text
TRY r.update
IF ERROR THEN
        Message.Error("UPDATE:Se produjo el siguiente error al actualizar:\n" & Error.Text)
ENDIF
TRY modulofunciones.conexion.commit
IF ERROR THEN
        Message.Error("COMMIT:Se produjo el siguiente error al actualizar:\n" & Error.Text)
ENDIF
      

Puede ser un poco engorroso, pero: A.- Aseguras cada paso y puedes saber dónde está el error en todo el proceso. B.-Te vale para cualquier Base de Datos, sqlite3, mysql, posgresql, etc.

Suerte.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Propiedad Para Verificarsi Se Realizo La Insersion En La Base De Datos 
 
Lo que dice Shordi también está bien naturalmente, lo que pasa es que no es exactamente lo mismo porque puede pasar que realices una orden de inserción o update o borrado y no borres nada porque no había nada que borrar. En ese caso no tienes error pero no has tocado nada.

Por ejemplo
insert into tabla (campo1, campo2) select dato1,datos2 from tabla2 where codigo=3

Eso hace una select de tabla 2 y los datos que obtiene los inserta en tabla en los campos campo1 y campo2. Si la select devuelva nada inserta nada pero no hay error.
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Propiedad Para Verificarsi Se Realizo La Insersion En La Base De Datos 
 
También estoy de acuerdo con soplo. Sin embargo me ha dado la impresión de que lo que victoria quiere es eliminar el registro que tiene en pantalla, por lo que no debería, si el programa está bien hecho, ocurrir eso de querer borrar un registro inexistente...
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Propiedad Para Verificarsi Se Realizo La Insersion En La Base De Datos 
 
hola muchachos. hasta hoy me dio chance de contestar. lo que hago en el código que envié es una inserción pero después de la inserción quiero enviar un messa.info que notifique que se registro la información correctamente. es para que el usuario sepa que se guardo la información correctamente. si por algún motivo no se realiza la inserción. que envíe un mensaje diciendo que hubo u error al guardar la información.  por ello pregunto que si hay alguna propiedad que indique ello.

lo que pasa es que no conozco mucho las propiedades de gambas.  he trabajado con VB.net y allí si existe esa propiedad. pero en gambas no se cual es.

intente con la propiedad consulta.count en un principio, pero el count funciona es en para los select , pero para el caso del insert no funciona. de todas formas de las sugerencias que ustedes me dieron me  guío. gracias!
 



 
victoria - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Propiedad Para Verificarsi Se Realizo La Insersion En La Base De Datos 
 
Para Soplo:
La función de Sqlite3 es (obtenido de la ayuda de Sqlite3)

last_insert_rowid()    The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. The last_insert_rowid() SQL function is a wrapper around the sqlite3_last_insert_rowid() C/C++ interface function.

y tambien

total_changes()    The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. This function is a wrapper around the sqlite3_total_changes() C/C++ interface.

Un saludo a todos
 



 
ahtonio - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Consejos Para Añadir Imágenes A Una Base... Shell Bases de Datos 13 Miercoles, 10 Octobre 2012, 08:30 Ver último mensaje
Shell
No hay nuevos mensajes Tengo Lo Necesario Para Crear Una Base De ... metalgearxd Bases de Datos 2 Miercoles, 30 Enero 2013, 01:28 Ver último mensaje
Dani26
No hay nuevos mensajes Base De Datos Para Appinventor Santi_Phoenix Bases de Datos 3 Sabado, 17 Agosto 2013, 18:56 Ver último mensaje
jsbsan
No hay nuevos mensajes Programita Para Examinar Base De Datos Sqlite v3ctor Bases de Datos 11 Lunes, 11 May 2015, 23:53 Ver último mensaje
shordi
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron