Uso de update en Gambas - Versión para impresión +- Comunidad Gambas-es (https://gambas-es.org) +-- Foro: Gambas (https://gambas-es.org/forum-3.html) +--- Foro: Bases de Datos (https://gambas-es.org/forum-6.html) +--- Tema: Uso de update en Gambas (/thread-223.html) |
Uso de update en Gambas - dariodr - 28-12-2020 Hola comunidad, tengo este pequeno programa de ejemplo con base de datos (SQLite3), el problema es a la hora de hacer el Update no se actualiza la DB, tengo que cerrar la aplicacion y volverla a abrir para que se actualicen. Me podiran decir que le falta. El codigo de actualzar esta en el boton Menu3_click. Les dejo el codigo. Saludos. Código: ' Gambas class file RE: Uso de update en Gambas - tincho - 28-12-2020 Hola Dario, Antes de nada, bienvenido al foro. Si subes el proyecto tar.gz (ctrl+alt+a) es mas fácil para nosotros poder ver que sucede. De todas maneras veo que algo no esta bien en Menu3_Click, deberías usar la siguiente formula unResult = UnaSentenciaSQL, por ejemplo de esta manera Código: Public Sub Menu3_Click() https://gambas-es.org/showthread.php?tid=20&highlight=resaltar+c%C3%B3digo Saludos. RE: Uso de update en Gambas - dariodr - 30-12-2020 Hola, te mando el tar.gz del proyecto. Salu2. RE: Uso de update en Gambas - tincho - 30-12-2020 (30-12-2020, 10:00)dariodr escribió: Hola, te mando el tar.gz del proyecto. ok, lo revise, hice algunos cambios y ahora funciona correctamente. En el evento 3 luego de actualizar un registro tenes que actualizar también el "result" que usas para mostrar los datos de lo contrario serán datos que no reflejen los de la base. El result de "vista" es una COPIA de los datos para usar en el programa pero los datos reales están en la base, en un archivo en este caso, así que si modificas los datos del archivo tenes que volver a generar el result de vista otra vez. Código: VarResult = conexion.Exec("update contactos set nombre ='" & txtNombre.Text & "' where id ='" & txtID.Text & "';") Saludos. RE: Uso de update en Gambas - dariodr - 31-12-2020 Gracias por la respuesta, ahora funciona muy bien. Una consulta: en el botón Guardar (btnGuardar_Click()), se puede eliminar las lineas: Código: Dim VarResult As Result Salu2. RE: Uso de update en Gambas - tincho - 31-12-2020 (31-12-2020, 06:30)dariodr escribió: Una consulta: en el botón Guardar (btnGuardar_Click()), se puede eliminar las lineas:Tene en cuenta que estas usando el evento Menu3_Click() para guardar y no btnGuardar_Click(), así que desde esta perspectiva podrías borrar todo btnGuardar_Click() ademas el botón esta oculto (btnGuardar.Visible = False). Una forma correcta de guardar los datos es: Código: Public Sub Menu3_Click() Código: VarResult = conexion.Create("Contactos") Luego existen, desde el punto de vista SQL, dos formas de "insertar" registros, una es insertar un registro "en blanco" con INSERT y luego modificarlo con UPDATE ... WHERE o bien insertar directamente el registro con todos sus valores finales. Luego desde el punto de vista de gambas existen formas de insertar registros sin usar el lenguaje SQL como "conexion.Create" que supongo que valen para todos lo tipos de bases de datos a las que este vinculada "conexion". Vos estas mezclado la forma Gambas con la forma SQL en el mismo método, lo cual no es que este mal pero, en mi opinión, no es una forma ordenada de escribir el código. También cambia la cosa si el indice es auto incremental o no, si hay algún campo que es de valor único, como el DNI de una persona por ejemplo. Bueno, el mundo de las bases de datos es vasto, pero puede gestionarse muy bien con gambas si organizas bien las cosas, es decir la base de datos y el código definidos eficientemente. Saludos. RE: Uso de update en Gambas - dariodr - 31-12-2020 Hola Tincho, el ejemplo lo saque de este documento PDF. En la ultima parte (pag. 9) dice que se puede hacer con sentencias SQL estandar, (UPDATE, INSERT, DELETE) y queria hacerlo asi. Saludos RE: Uso de update en Gambas - tincho - 31-12-2020 (31-12-2020, 16:03)dariodr escribió: En la ultima parte (pag. 9) dice que se puede hacer con sentencias SQL estandar, (UPDATE, INSERT, DELETE) y queria hacerlo así Claro que se puede hacer con SQL estándar de hecho en mis programa uso sql todo lo que puedo porque es mas eficiente y me da mas control sobre las acciones sobre la base. Mi comentario es respecto a que vos usas en el mismo método sentencias sql y "sentencias" gambas para operar sobre la base, pero sobre gustos no hay nada escrito, usa la manera que mas te guste. Si lo que deseas hacer es experimentar con el fin de aprender te recomiendo que uses dos métodos uno "gambas" y otro SQL así ves como trabajan ambos e incluso podes ver que rendimiento tiene uno respecto del otro. Saludos. |