Ver Mensaje Individual
  #13 (permalink)  
Antiguo 16/08/2012, 15:51
Avatar de Dradi7
Dradi7
 
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 11 meses
Puntos: 220
Respuesta: visual .net 2005 Conexion con SQL2000

Cita:
Iniciado por solosoy Ver Mensaje
Amigo graxias por tu respuesta, quisiera saber si sto ,o puedo hacer con el sql 2000 y tb haber si me mandas tu ejemplo de como ponerlo en visual.net te estaria muy agradecido, ya que me gusta muxo esto de la programacion pero a la vez soy novato; haber si te acuerdas de antemano muchicimas graxias
Bueno el ejemplo que tengo esta aplicado a partir de SQL Server 2005 para adelante el código que tengo es independiente ya que consulto lo que me filtra el SQL Server.

Llegando de estudiar en la noche te paso el código en este tema.

Mira en SQL Server 2000 podrías hacer lo siguiente (no lo he probado seria cuestion de que lo pruebes) como no hay row_numer ni over podrías por ejemplo crear una tabla temporal que tenga todos los datos de tu tabla principal mas una columna que sea de tipo IDENTITY con la finalidad que cada vez que llenas esta tabla se genera automáticamente la columna IDENTITY de forma creciente y asi para que puedas filtrar con los parametros @INI y @FIN

Código SQL:
Ver original
  1. -- =============================================
  2. -- Author:        Luis Fernando
  3. -- Create date:   10/02/2009
  4. -- Description:   Procedimiento que simula el Limit de MySQL Server en SQL Server 2000
  5. -- =============================================
  6.  
  7. ALTER PROCEDURE USP_LIMIT
  8. (
  9.     @TBL VARCHAR(MAX),  @COL VARCHAR(MAX),  @INI INT,
  10.     @FIN INT
  11. )
  12. AS
  13.     SET NOCOUNT ON;
  14.     BEGIN TRY
  15.         DECLARE @SQL NVARCHAR(MAX)    -- DECLARANDO VARIABLE A EJECUTAR
  16.         CREATE TABLE #TEMP(NUMERO IDENTITY, CAMPO1 INT, CAMPO2 VARCHAR(5)) -- ACA PONES TODOS LAS COLUMNAS DE TUS TABLA CON LA DIFERENCIA DE LA COLUMNA IDENTITY
  17.         -- ACA LLENAMOS LA TABLA TEMPORAL CON LOS DATOS DE TU TABLA NO SE PONE LA COLUMNA IDENTITY YA QUE ESTE SE GENERA AUTOMATICAMENTE
  18.         -- ADEMAS PUEDES INDICAR FILTROS SI ES NECESARIO
  19.         SET @SQL = N'INSERT INTO #TEMP (CAMPO1,CAMPO2)
  20.                         SELECT * FROM '+ @TBL +'
  21.                         WHERE CAMPO1 = 4'
  22.         -- LUEGO REALIZAMOS SOLO EL LISTADO DE LA CANTIDAD DE REGISTROS QUE QUEREMOS OBTENER
  23.         SELECT * FROM #TEMP
  24.         WHERE NUMERO>=@INI AND NUMERO<=@FIN
  25.         -- ELIMINAMOS LA TABLA TEMPORAL CREADA
  26.         DROP TABLE #TEMP;
  27.     END TRY
  28.     BEGIN CATCH
  29.         PRINT 'NUMERO DE ERROR: ' + CONVERT(VARCHAR,ERROR_NUMBER());
  30.         PRINT 'MENSAJE DE ERROR: ' + ERROR_MESSAGE();
  31.     END CATCH
  32. GO

Este código no lo he probado pero mas o menos debería funcionar en SQL SERVER 2000 la PERFORMANCE seria cuestión de medir, como te dije no tengo SQL SERVER 2000 en mi trabajo ni mucho menos ENTORNO para PROGRAMAR pero cuando llegue a casa te paso el código

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones