Actualizacion de Base de Datos desde OpenCalc

¿Nuevo en Apache OpenOffice? ¿No sabe cómo comenzar o dónde hacer su pregunta? ¡Este es el lugar!
Reglas del Foro
Los moderadores podrían mover los temas creados aquí a un foro más apropiado.
Si usted publicó aquí y no encuentra el tema, puede buscar sus mensajes haciendo clic en la opción «Buscar sus mensajes» que se encuentra justo debajo de la cabecera de la página, junto al panel de control de usuario y al acceso a sus mensajes privados.

Actualizacion de Base de Datos desde OpenCalc

Notapor santiagobruno » Mar Ago 28, 2018 7:07 pm

Hola! Buenas tardes a todos!

Esta es mi primer consulta en el foro. He estado intentando replicar el programa que desarrolla Mauricio en su guìa "AprendiendoOOoBasic".

Llegado al momento de tener que generar una Macro que me permita, a travez de su ejecuciòn, actualizar registros en una base de datos he tenido inconvenientes.

El còdigio que he creado es el siguiente:

Código: Seleccionar todo   Expandir vistaContraer vista

   Sub cmdActualizar_Clic()
   Dim sSQL As String

      iSel = lstClientes.getSelectedItemPos
      sClave = txtClave.getText
      sNombre = txtNombre.getText
      sInfo = "Si actualiza los datos del cliente " & sNombre & " con clave " & sClave & " los datos sobreescritos no podrán recuperarse " & Chr(13) & Chr(13) & "¿Está seguro de continuar?"
      iRes = MsgBox( sInfo, 36,"Actualizar cliente" )
      If iRes = 6 Then

         If ValidarDatos() Then
                   sSQL = "UPDATE ""Clientes"" SET ""Nombre"" =" & sNombre & " WHERE ""Id"" = " & sClave
                   Call ActualizarDatos( oDatos, sSQL )
            'Activamos y desactivamos los demás controles necesarios
            cmdEditar.setEnable( True )
            cmdEliminar.setEnable( True )
            lstClientes.setEnable( True )
            cmdNuevo.setEnable( True )
            cmdSalir.setEnable( True )
            cmdGuardar.setEnable( False )
            cmdCancelar.setEnable( False )
            'Desactivamos los cuadros de texto
            Call ActivarCuadrosTexto( False )
   
            lstClientes.removeItems( 0, lstClientes.getItemCount )         
      '      olstClientes.removeItems( 0, olstClientes.getItemCount )
            Call TraerClientes( oDatos )
         
         End If
         
      EndIf
         
   End Sub



Cuando lo acciono (lo he asociado a un boton) me larga el error siguiente:

"Error en tiempo de ejecuciòn de BASIC.
Se ha producido una excepciòn
Type: com.sun.star.sdbc.SQLException
Message: Column not found: NuevoNombre"

donde "NuevoNombre" es el dato que vendrìa a reemplazar al anterior y se encuentra en un textbox dentro del cuadro de dialogo desde el que manejo la base de datos en Calc.

Supongo que mi error se encuentra en la setencia sSQL:

sSQL = "UPDATE ""Clientes"" SET ""Nombre"" =" & sNombre & " WHERE ""Id"" = " & sClave

ya que si la reemplazo por

sSQL = "UPDATE ""Clientes"" SET ""Nombre""='Charly' WHERE ""Id""=" & sClave

funciona perfectamente.

La diferencia es que en esta ultima sentencia sSQL el nombre esta fijo en 'Charly' mientras que lo que yo necesitarìa es que se pueda extraer desde el textBox.

He intentado buscar en el foro algo parecido o el codigo anexo que Mauricio menciona en su manual que viene adjunto al mismo pero no encontrado ni uno ni lo otro.

Desde ya muchas gracias!

Saludos para toda la comunidad!
Santiago Bruno
Apache OpenOffice 4.1.5
Windows
santiagobruno
 
Mensajes: 3
Registrado: Mié Ago 22, 2018 11:26 am

Re: Actualizacion de Base de Datos desde OpenCalc

Notapor mauricio » Mar Ago 28, 2018 8:53 pm

Hola...

Te has respondido tu mismo... falta que concatenes las comillas simples a la variable, para que quede más o menos así:
Código: Seleccionar todo   Expandir vistaContraer vista
sSQL = "UPDATE ""Clientes"" SET ""Nombre"" ='" & sNombre & "' WHERE ""Id"" = " & sClave

Prueba y nos cuentas...

P.D. Si estas empezando a programar, te recomiendo mucho aprender Python en vez del artrítico Basic...
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5973
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Actualizacion de Base de Datos desde OpenCalc

Notapor santiagobruno » Mar Ago 28, 2018 9:16 pm

Muchisimas gracias Mauricio!

Aprovecho para agradecer el tiempo que has dedicado a tu guia, es una excelente herramienta de aprendizaje.

Y ya que estoy.. me podrias responder a la siguiente inquietud que me surge a partir de leer el P.D. que has dejado: Con Python podría hacer todo lo que aprendemos con tu guia? Es decir, puede reemplazar totalmente el lenguaje de oBasic???

Gracias nuevamente!
Santiago Bruno
Apache OpenOffice 4.1.5
Windows
santiagobruno
 
Mensajes: 3
Registrado: Mié Ago 22, 2018 11:26 am

Re: Actualizacion de Base de Datos desde OpenCalc

Notapor mauricio » Mar Ago 28, 2018 9:22 pm

santiagobruno escribió:Con Python podría hacer todo lo que aprendemos con tu guia? Es decir, puede reemplazar totalmente el lenguaje de oBasic???

No solo puedes hacer "todo" lo que haces con Basic, si no además, donde termina Basic, Python apenas va empezando, y lo mejor... aquí estoy para resolver sus dudas de Python... :lol:
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5973
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Actualizacion de Base de Datos desde OpenCalc

Notapor santiagobruno » Jue Ago 30, 2018 10:17 am

Hola Mauricio! Buen día! En base a tu sugerencia, quisiera consultarte por algun manual que conozcas que me permita aprender python orientado a Openoffice o Libreoffice. Desde ya muchas gracias por tu sugerencia!

Saludos!
Santiago Bruno
Apache OpenOffice 4.1.5
Windows
santiagobruno
 
Mensajes: 3
Registrado: Mié Ago 22, 2018 11:26 am

Re: Actualizacion de Base de Datos desde OpenCalc

Notapor PepeOooSevilla » Vie Ago 31, 2018 7:41 am

Hola.

Puedes empezar por (de nuestro compañero mauricio):

Saludos cordiales.
LibreOffice 6.2.8 (64 bits, Still, Empresarial o Estable) en Windows 10. Java 9.0.4 (64 bits)
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Avatar de Usuario
PepeOooSevilla
 
Mensajes: 1140
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)


Volver a Principiantes

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados