Página 1 de 1

Actualizacion de Base de Datos desde OpenCalc

NotaPublicado: Mar Ago 28, 2018 7:07 pm
por santiagobruno
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!

Re: Actualizacion de Base de Datos desde OpenCalc

NotaPublicado: Mar Ago 28, 2018 8:53 pm
por mauricio
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...

Re: Actualizacion de Base de Datos desde OpenCalc

NotaPublicado: Mar Ago 28, 2018 9:16 pm
por santiagobruno
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!

Re: Actualizacion de Base de Datos desde OpenCalc

NotaPublicado: Mar Ago 28, 2018 9:22 pm
por mauricio
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:

Re: Actualizacion de Base de Datos desde OpenCalc

NotaPublicado: Jue Ago 30, 2018 10:17 am
por santiagobruno
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!

Re: Actualizacion de Base de Datos desde OpenCalc

NotaPublicado: Vie Ago 31, 2018 7:41 am
por PepeOooSevilla
Hola.

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

Saludos cordiales.