Solución a Error en el servidor: sql: no rows in result set en plugin de impresora térmica

En este post te mostraré cómo arreglar el error de mi plugin de impresión que dice: Error en el servidor: sql: no rows in result set.

Este error dice que no hay filas en la base de datos, y tal vez te estarás preguntando qué tiene que ver la impresión con una base de datos, por lo que justamente eso será lo que trataré en este post.

sql: no rows in result set

En las primeras versiones del plugin, existía la opción setImpresora que era para establecer la impresora en la que se imprimirían los tickets. Una vez establecida, ese nombre de impresora se quedaba guardado en una base de datos SQLite3.

Este error se ocasiona porque no hay datos en la base de datos porque no has invocado a setImpresora, entonces cuando intentas imprimir te da ese error porque no hay datos en la base de datos (no hay rows, o sea filas, en la base de datos).

Más adelante implementé la función imprimirEnImpresora que permite que tú indiques cuál impresora usar al imprimir, enviándole el nombre de la impresora como cadena.

Solución correcta

Yo siempre he recomendado usar el método imprimirEnImpresora en lugar del método end para terminar la impresión, de este modo tú te encargas de guardar el nombre de la impresora y pasarlo al plugin al imprimir.

Entonces para solucionar este problema, no hagas esto, esto es incorrecto:

Haz lo siguiente, eso sí es correcto:

La diferencia es que estoy invocando a imprimirEnImpresora pasando el nombre de la impresora, y no simplemente al método end.

Solución simple

Otra solución es simplemente invocar a setImpresora. La mayoría de ocasiones este problema ocurre porque el cliente usa el plugin gratuito e invoca a setImpresora correctamente; le funciona y compra la versión premium, pero al usar la versión premium se le olvida invocar a setImpresora, por lo que aparece el error sql: no rows in result set.

En resumen

Puedes hacer dos cosas: volver a invocar al método setImpresora con el nombre de tu impresora, o comenzar a usar el método imprimirEnImpresora en lugar del método end.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario