Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Ayuda con procedimiento en SQL SERVER 2005 (https://www.clubdelphi.com/foros/showthread.php?t=57815)

Jose Roman 27-06-2008 22:27:19

Ayuda con procedimiento en SQL SERVER 2005
 
Hola a todos.Resulta que necesito hacer un procedimiento almacenado en SQL SERVER 2005, y necesito recorrer todos los campos de una tabla y asignarlos a la variable, se que para ello se utiliza en FIREBIRD el FOR ... DO ... SUSPEND, pero no lo se hacer en SQL SERVER, ademas en ese recorrido como hago para asignar una variable de tipo NUMERIC a una variable de tipo VARCHAR.


Gracias....

poliburro 28-06-2008 15:22:07

En sql server haces uso de cursores, y la asignación de diferentes tipo lo haces a través de cast o convert.

saludos

pcicom 28-06-2008 16:39:32

Espero te sirva este ejemplo....

Creando Cursors no olvides nunca cerrarlo al finall..


Código SQL [-]


DECLARE @dcliente int
DECLARE @dnombre string


DECLARE MyCursor CURSOR FOR
   SELECT cliente,nombre FROM clientes

OPEN MyCursor
FETCH NEXT FROM MyCursor INTO @dcliente,@dnombre
WHILE @@FETCH_STATUS = 0
BEGIN

    PRINT @dcliente,@dnombre

    --   INSTRUCCIONES A realizar
    --   

    // Lee el Siguiente Registro 
    FETCH NEXT FROM myCursor INTO @dcliente,@dnombre

END;

CLOSE myCursor

Jose Roman 01-07-2008 19:34:20

Gracias...
 
Muchas gracias por la ayuda, lo realizare a ver como me da, pero definitivamente o soy yo pero me parece que es superior FIREBIRD o INTERBASE en esto...

pcicom 01-07-2008 20:00:14

Lo Mismo pienso Yo, en FIREBIRD es very simple..

Jose Roman 01-07-2008 20:32:32

Un problemota....
 
Cuando realizo:
PRINT @dcliente
No hay problema, pero si hago:
PRINT @dcliente,@dnombre
aparece este error
Mens 102, Nivel 15, Estado 1, Procedimiento ListFact, Línea 14Sintaxis incorrecta cerca de ','
¿Que sera?

pcicom 02-07-2008 00:04:35

haslo en lineas separadas


PRINT @dcliente
PRINT @dnombre


La franja horaria es GMT +2. Ahora son las 09:13:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi