guizans 29-12-2022, 22:44
Hola a todos.

Hago una llamada a un método que llama a una base de datos tipo SQlite3 y me devuelve un Result. Para evitar errores mas adelante del código compruebo si la búsqueda ha tenido éxito. Y lo puedo hacer así:

Código:
If resultado.Available Then
    r = resultado["ID"]
Else
    r = -1
Endif

Pero considero que una forma mas elegante de hacer esto es con un IIf

Código:
r = IIf(resultado.Available, resultado["ID"], -1)

Pero este código me da error si el resultado está vacío. Acabo de leer en la documentación que IIf evalúa la  expresión verdadera y falsa y por eso me da error. Parece un comportamiento anti intuitivo desde mi punto vista, aunque supongo que su motivo tendrá. Es una pena ya que usar IIf me ahorra líneas y parece mas elegante. 

Un saludo.
Shell 29-12-2022, 15:25
Buenas!.

Estoy probando el traductor de documentos del propio Google para traducir un pdf. Supongo que tendrá sus limitaciones.

Si lo quiero hacer desde la terminal compruebo que debo:

- Traducir el pdf a texto.
- Traducir el texto a postscript
- Traducir postscript a pdf.

Código:
pdftotext your.pdf your.txt

trans file://your.txt

enscript -p output.ps your.txt

ps2pdf output.ps your2.pdf

Vale, pero eso es solo texto. Las imágenes se perderían. Ya no es una conversión, es una edición y creación.

Fuentes:

¿Cómo traducir un pdf grande desde la línea de comandos? Fuente: https://www.enmimaquinafunciona.com/pregunta/166540/como-traducir-un-pdf-grande-desde-la-linea-de-comandos

Google Translator lo hace a su manera, no queda perfecto, pero puede ayudar.
Por si queréis probar, usar el botón de documentos.

Google Translator

Saludos
Shell 29-12-2022, 15:10
Buenas!.

Revisando una antigua base de datos que me sirvió para las que estoy liado ahora, encontré que podía hacer la consulta de inserción tanto con la sentencia
SQL como un método de la clase Result.

Código:
 'Si lo hacemos con SQL podemos hacer:
    'Try hConn.Exec("insert into datos values (&1,&2,&3,&4,&5,&6)", Null, TxtTitulo.Text, TxtAutor.Text, CDate(TxtFecha.Text), CFloat(TxtPrecio.Text), TxtDecripcion.Text)

    'Si lo hacemos usando los métodos de la clase result.
    HResul = hConn.Create("datos")
    HResul["id"] = Null
    HResul["titulo"] = TxtTitulo.Text
    HResul["autor"] = TxtAutor.Text
    HResul["fecha"] = TxtFecha.Value
    HResul["precio"] = TxtPrecio.Text
    HResul["descripcion"] = TxtDecripcion.Text
    HResul.Update()
    hConn.Commit()

Uso más SQL ya que es propio del lenguaje y no de un lenguaje de programación concreto.
Imaginar que creo la base de datos para Gambas y ahora hago lo mismo para Python y luego para Java, etc, etc.
Entonces cada lenguaje puede tener una clase que ( como veis parece que se acorta más con la sentencia SQL). ¿ No es mejor algo más universal ?.

En el caso de usar Result en Gambas, lo más probable es que esto lo haga independiente del gestor de base de datos. Puede ser el motivo de su uso.

Saludos
Páginas (560):    1 229 230 231 232 233 560   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 288
Último miembro: shoUsho
Temas del foro: 1,730
Mensajes del foro: 8,991
Últimos temas
Paren...WAIT !!!
Foro: Aplicaciones/Fragmentos de Código
Último mensaje por: tincho, 16-09-2025, 23:22
Respuestas: 4 - Vistas: 484
GambOS
Foro: General
Último mensaje por: guizans, 20-08-2025, 13:58
Respuestas: 0 - Vistas: 336
Gambas y Wayland
Foro: General
Último mensaje por: guizans, 20-08-2025, 13:56
Respuestas: 6 - Vistas: 618
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.