Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 02-03-2013
Avatar de StartKill
StartKill StartKill is offline
Miembro
 
Registrado: ene 2004
Posts: 299
Poder: 23
StartKill Va por buen camino
Replanteando mi duda

Uso el SQL Server 2008, allí tengo una tabla de un aproximado de 16 millones de filas.

Una de sus columnas es de tipo char(8) y es el PK..

Para usar esta tabla, tengo un adoQuery y el sql es:
Código SQL [-]
select * from nro_key = :nro_key
El componente adoQuery tiene parametro "nro_key" de tipo ftString.

Pruebas con el query anterior

1.- Asigno un valor al parámetro de mi sentencia contenida en el adoQuery.
Utilizo profiler para ver la sentencia que envía al server que es la siguiente:
Código SQL [-]
exec sp_executesql N'
select * from  padron 
where nro_key = @P1  ',N'@P1 nvarchar(8)',N'00148894'
Demora 25 segundos para darme el resultado.

2.- Abro el " management studio" y tipeo en duro los siguiente:
Código SQL [-]
select * from  padron where nro_key = '00148894'
El resultado es menos de un segundo.

3.- Nuevamente en el "management studio" copio la instrucción que capturé con el profiler, pero le hago un pequeño cambio:
Cambio el tipo de parametro de nvarchar(8) a varchar(8)
Código SQL [-]
exec sp_executesql N'
select * from  padron 
where nro_key = @P1  ',N'@P1 varchar(8)',N'00148894'
El resultado es veloz como en el punto 2.

//------------

Por lo que me doy cuenta el Delphi me crea la instrucción y la envía al Sql Server.
Mi duda es: Hay forma de indicar en el adoQuery que el parámetro para "nro_key" sea de tipo varchar(8)?

Lo que no comprendo es: Mi columna PK es de tipo char(8), por que Delphi crea la instrucción con un parametro de tipo nvarchar(8)?

Select original en el adoQuery
Código SQL [-]
select * from nro_key = :nro_key

Select enviado por delphi al SQL Server
Código SQL [-]
exec sp_executesql N'
select * from  padron 
where nro_key = @P1  ',N'@P1 nvarchar(8)',N'00148894'



A la espera de sus comentarios, criticas y regalos...


Your friend

Startkill
Lima-Perú
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Parametro null ClientDataSet Rockin MS SQL Server 2 29-06-2011 09:34:15
Error en Coalesce de un Parámetro tipo Int64 gluglu Firebird e Interbase 42 17-06-2011 02:47:15
Método tem parametro do tipo sysint Paulao Varios 2 16-09-2010 21:20:15
Parametro a todos los objetos de un tipo amadis OOP 1 06-10-2007 17:46:47
Parametro Tipo BIGINT Stored Procedure hibero Firebird e Interbase 5 13-04-2004 19:49:31


La franja horaria es GMT +2. Ahora son las 17:19:05.


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
Copyright 1996-2007 Club Delphi