Harpo 28-08-2024, 17:24
Saludos,

Desde la versión 3.19.4 al usar el IDE me salta el siguiente error en algunas ocasiones:
[Imagen: dU0LTTy.png]

No tiene mayor problema, se puede continuar trabajando. El problema viene después, si modifico un formulario, por ejemplo FMain, al intentar guardarlo salta el siguiente error:
[Imagen: kLwx4yd.png]
Y este si es problemático, da igual el botón que pulses cierra el IDE. Al volver a abrir el mismo proyecto me encuentro que ha desaparecido el fichero FMain.form aunque sigue existiendo el fichero FMain.class. La única solución es recuperarlo de una copia de seguridad o volver a crearlo.

Esta semana ya me ha ocurrido 2 veces, ahora lo que hago es cerrar el IDE al primer error y volver a abrir el proyecto.
¿Les ha pasado a ustedes?

Un saludo, Harpo
paskola 28-08-2024, 04:35
Hola. Estoy haciendo una aplicación sencilla que va a conectarse a un servidor corriendo MSSQL y extraer algo de información para presentarla en un tableview. La cuestiónes que para no hacer lenta la aplicación opté por crear procedimientos almacenados (stored procedures) que ya solo me regresan la información y todo el procesamiento s ¿e hace en el servidor. El problema es que no logro que los métodos EXEC y SUBST me regresen la información. Termino con 'UNABLE TO FETCH ROW'. 

Ya he probado todas las opciones que puedo imaginar para enviarlo:

rs = con.EXEC("execute spProcedimiento valor")
rs = con.EXEC("execute spProcedimiento &1", variable) 
rs = con.EXEC("execute spProcedimiento " & variable)
rs = con.EXEC("execute spProcedimiento " & textboxt.text)

Y todos invariablemente terminan en ese error. Si cambió la sentencia por ejemplo a "SELECT TOP 1 * from tabla" entonces meregesa sin problema datos y puedo manipularlos asi que esto aconfirm que si hace la conexión a la base de datos de forma correcta. 

También ya he probado ejecutar esa consulta desde la terminal con isql y ahi funciona sin problemas. Supongo que debe ser algo muy sencillo y obvio porque según la documentación de gambas dice que exec puede ejecutar cualquier sentencia de SQL.

Agradecería si alguno de ustedes me saca de la misería.
alberto-moyano 28-08-2024, 00:51
Hola gente,

no sé si observaron que el IDE de gambas al momento de generar un empaquetado bloquea los menúes, hay un mensaje (abajo a la derecha que nos dice cuanto le falta en tiempo), este concepto me parece muy útil, escribí este código para mi aplicación (no es exactamente lo mismo)

Código:
' Deshabilitar todos los menús y submenús
Public Sub BloquearMenus()

  FMain.menuArchivo.Enabled = False
  FMain.menuLTX.Enabled = False

End

' Habilitar todos los menús y submenús
Public Sub DesbloquearMenus()

  FMain.menuArchivo.Enabled = True
  FMain.menuLTX.Enabled = True

End

llamo a las funciones al inicio y cierre de las otras funciones, y anda, pero solo unos segundos y luego los menúes vuelven a estar disponibles, indudablemente mi enfoque es errado o me falta algo.

Cuál es mi caso, tengo en varios menúes con funciones [1] que se ejecutan en un TerminalView y la intención es no tener acceso al resto de las funciones, mientras alguna se ejecuta.

Por donde van los tiros... pensé en la captura del evento, pero no estoy seguro.

Gracias de antemano

[1] compilaciones con LuaLaTeX, LaTeXML y Pandoc, utilizar TerminalView me da mejor control (comparado con ejecutar desde Shell) ya que accedo en forma directa al logfile del compilador que queda en la TerminalView.

Actualización del estado de la cuestión

Pude entender que pasa, la función DesbloquearMenus se ejecuta luego de ejecutar las instrucciones en la terminal, pero no sigue el estado del proceso de la instrucción en sí (en este caso el compilador de LaTeX, trabajando en back).

Veo que por acá vienen los tiros, veré de hacer algunas pruebas.

Esta es una de las tantas funciones adonde pretendo aplicar el bloqueo de menues

Código:
Public Sub menuPDFlibro_Click() 'generamos el PDF libro

  Dim newFile As String
  Dim rutaFija As String
  Dim newLog As String

  ' Llamamos a la función del módulo para verificar los metadatos obligatorios
  If Not Mod_Funciones.registrosObligatorios(TextBox1.Text) Then
    ' Si la función retorna False, cancelamos la operación
    Return
  End If

  newFile = "pdf-" & BaseName & ".tex"
  rutaFija = File.Dir(TextBox1.Text) &/ "files"
  newLog = "gbTeX-" & BaseName & ".log"

  Borrar_Aux
  Wait 0.2

  TabPanel1.Index = 0

  ' obtenemos la exportación de los archivos bib, glo y meta
  Mod_Exportar.Exportar2BibTeX(TextBox1.Text)
  Mod_Exportar.Exportar2Glosario(TextBox1.Text)
  Mod_Exportar.Exportar2MetadatosPDF(TextBox1.Text)
  Wait 0.2

  ' revisamos la carpeta pdf y borramos el archivo
  Mod_Funciones.ManagePdfFolder(TextBox1.Text)

  ' combino el archivo de cabecera .tex 
  TerminalView1.Input("cat " & rutaFija &/ "book-pdf.tex" & " " & File.Name(TextBox1.Text) & " > " & newFile & "\n")
  Wait 0.2

  ' compilo con el script de latexmk
  TerminalView1.Input("latexmk -l -f --interaction=nonstopmode -pdflatex=lualatex -pdflua " & newFile & "\n")
  Wait 0.2

  ' compilación adicional para indexar los glosarios
  TerminalView1.Input("lualatex --interaction=nonstopmode " & newFile & "\n")
  Wait 0.2

  ' ejecutamos en conteo del archivo LaTeX
  TerminalView1.Input("texcount -sub -sum -incbib -out=" & rutaFILES & "/gbTeX-" & BaseName & ".txt " & newFile & "\n")
  Wait 0.2

  TerminalView1.Input("rm -rf " & newFile & "\n")
  Wait 0.2

  TerminalView1.Input("mv " & File.Dir(TextBox1.Text) &/ "pdf-" & BaseName & ".pdf" & " " & File.Dir(TextBox1.Text) &/ "pdf/" & BaseName & ".pdf" & "\n")
  Wait 0.2

  ' copiamos /files el archivo .log
  TerminalView1.Input("cat pdf-" & BaseName & ".log > " & rutaFILES & "/gbTeX-" & BaseName & ".log" & "\n")
  Wait 0.2

  ' eliminamos los archivos auxiliares de \include
  TerminalView1.Input("rm -rf " & File.Dir(TextBox1.Text) & "/artcap/*.aux" & "\n")
  Wait 0.2

  ' generamos una vista con texlogsieve
  TerminalView1.Input("texlogsieve " & rutaFILES & "/gbTeX-" & BaseName & ".log > " & rutaFILES & "/gbTeXv-" & BaseName & ".log" & "\n")
  Wait 0.2

  Borrar_Aux

  TerminalView1.SetFocus()
  TerminalView1.Refresh()

End
Páginas (549):    1 48 49 50 51 52 549   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 278
Último miembro: Blackdead
Temas del foro: 1,693
Mensajes del foro: 8,771
Últimos temas
Poner imágenes en el foro
Foro: General
Último mensaje por: Turriano, Hace 8 minutos
Respuestas: 2 - Vistas: 35
Correr programas sin Gamb...
Foro: General
Último mensaje por: Shordi, Hace 2 horas
Respuestas: 3 - Vistas: 65
Ejemplo de chat
Foro: Aplicaciones/Fragmentos de Código
Último mensaje por: Shordi, Hace 3 horas
Respuestas: 1 - Vistas: 27
Crear una aplicación para...
Foro: Bases de Datos
Último mensaje por: Blackdead, Ayer, 16:44
Respuestas: 5 - Vistas: 324
PC muerta
Foro: Hardware & IoT
Último mensaje por: omoreno, Ayer, 16:14
Respuestas: 3 - Vistas: 59
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.