Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   Crear y recorrer una tabla (https://www.clubdelphi.com/foros/showthread.php?t=7229)

magm2000 09-02-2004 12:24:58

Crear y recorrer una tabla
 
Hola:
Necesito crear y recorrer una tabla, bien en un procedimiento almacenado o en una función definida por el usuario. He visto que una función puede devolver una tabla pero no sé como se puede recorrer dicha tabla dentro de la función.
Un saludo.

Investment 09-02-2004 12:35:15

En la ayuda de Delphi tienes un ejemplo de como craer una tabla:
Mira CreateTable del componente TTable

Otra forma de hacerlo es mediante un asentencia SQL:
CREATE TABLE ...

Para recorrer una tabla:
Table1.Open
Código:

while not Table1.Eof do
  Table1.Next;


magm2000 09-02-2004 12:50:38

En un procedimiento o función
 
Ya lo sé, pero el problema es en un procedimiento almacenado o función definida por el usuario de SQL SERVER.
Salu2.

__hector 09-02-2004 19:43:34

Para recorrer una tabla tienes que utilizar un cursor.

Se utiliza de la siguiente forma:

Código:

DECLARE CURSOR nombrecursor FOR
Sentencia SQL

Luego, lo abres :
Código:

OPEN cursor_puestos
y lo recorres
Código:

FETCH NEXT FROM cursor_puestos

WHILE @@FETCH_STATUS = 0
BEGIN
....
FETCH NEXT FROM cursor_puestos
END

CLOSE cursor_puestos
DEALLOCATE cursor_puestos

Si quieres recuperar los valores de los campos del cursor, declaras variables de ese tipo de datos, e insertas los valores del cursor en las variables. Mas o menos como:

Código:

DECLARE @Campo int

DECLARE        nombrecursor CURSOR FOR

        SELECT        Campo
        FROM        Tabla

OPEN nombrecursor

FETCH NEXT FROM nombrecursor
INTO @Campo

WHILE @@FETCH_STATUS = 0
BEGIN
 -- aqui puedes trabajar con @Campo, que tendra el valor de cada
 -- campo en la consulta

  FETCH NEXT FROM nombrecursor
  INTO @Campo
END

CLOSE nombrecursor
DEALLOCATE nombrecursor

Si tienes mas dudas, consulta el tema en SQL Books Online


La franja horaria es GMT +2. Ahora son las 07:32:23.

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