omoreno   20-09-2024, 17:22
#1
Hola colegas.

Estoy verificando una conexión ODBC a SQL Server pero la consultas y procedimientos almacenados ejecutados con EXEC que tengan validación siempre me retornan el error: 'UNABLE TO FETCH ROW'.

Gambas: 3.19.4
ODBC: FreeTDS o Microsoft ODBC 18
SQL Server: 2022 Express

Como retornan datos en sus procedimientos almacenados para que no les salga el error.
Por ejemplo, si quiero hacer un update de esta forma:
 
Código:
 
IF EXISTS (SELECT ID FROM Usuarios WHERE ID = '1')
  BEGIN
    UPDATE Usuarios 
    SET Nombre = 'Nombre x', Apellido = 'Apellido x'
    WHERE ID = '1'
    SELECT '1:ok' AS 'RESULTADO'
  END
ELSE
  BEGIN
    SELECT '0:NO EXISTE' AS 'RESULTADO'
  END

Adjunto un modulo de pruebas, gracias por las posibles repuestas.
Saludos.
Archivos adjuntos
.gz
SqlSeverODBC-0.0.1.tar.gz (Tamaño: 10.62 KB Descargas: 0)
Última modificación: 21-09-2024, 20:55 por omoreno.
omoreno   21-09-2024, 21:10
#2
Hola colegas.

Después de varias pruebas me percate de que si la variable Result esta en el mismo ámbito, se le debe pasar Null antes de volver a usarla en un nuevo comando Exec, pero solo para sentencias SQL simples .

Lo anterior no lleva a separar los sentencias SQL en varias sub y lograr el mismo efecto aunque con varios accesos a la base de datos.

[Imagen: DmWsddO.png]

Saludos.
Archivos adjuntos
.gz
SqlSeverODBC-0.0.2.tar.gz (Tamaño: 10.84 KB Descargas: 0)
Shordi   22-09-2024, 08:02
#3
Es una manera y siento no poder aportar nada, no tengo bases odbc donde probar, sorry. Sin embargo veo que sigues adelante. ¡Bien por ti!

No podemos regresar
  
Usuarios navegando en este tema: 2 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.