17/08/2012, 10:05
|
| | Fecha de Ingreso: julio-2012
Mensajes: 9
Antigüedad: 12 años, 5 meses Puntos: 0 | |
Respuesta: visual .net 2005 Conexion con SQL2000 Cita:
Iniciado por Dradi7 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-- ============================================= -- Author: Luis Fernando -- Create date: 10/02/2009 -- Description: Procedimiento que simula el Limit de MySQL Server en SQL Server 2000 -- ============================================= ALTER PROCEDURE USP_LIMIT ( @TBL VARCHAR(MAX), @COL VARCHAR(MAX), @INI INT, @FIN INT ) AS SET NOCOUNT ON; BEGIN TRY DECLARE @SQL NVARCHAR(MAX) -- DECLARANDO VARIABLE A EJECUTAR 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 -- ACA LLENAMOS LA TABLA TEMPORAL CON LOS DATOS DE TU TABLA NO SE PONE LA COLUMNA IDENTITY YA QUE ESTE SE GENERA AUTOMATICAMENTE -- ADEMAS PUEDES INDICAR FILTROS SI ES NECESARIO SET @SQL = N'INSERT INTO #TEMP (CAMPO1,CAMPO2) SELECT * FROM '+ @TBL +' WHERE CAMPO1 = 4' -- LUEGO REALIZAMOS SOLO EL LISTADO DE LA CANTIDAD DE REGISTROS QUE QUEREMOS OBTENER SELECT * FROM #TEMP WHERE NUMERO>=@INI AND NUMERO<=@FIN -- ELIMINAMOS LA TABLA TEMPORAL CREADA DROP TABLE #TEMP; END TRY BEGIN CATCH PRINT 'NUMERO DE ERROR: ' + CONVERT(VARCHAR,ERROR_NUMBER()); PRINT 'MENSAJE DE ERROR: ' + ERROR_MESSAGE(); END CATCH 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 Graxias Amigo por interesarte en este tema en verdad te agradesco muxisimo espero tu respuesta graxias |