![]() |
busqueda de un nombre en una tabla
Hola deseo buscar un cliente en una base de datos grande, digitando solo la primera letra de su apellido y que aparezcan todos los que comienzan con esa letra , cual es la forma mas eficiente?
Atte Cmena gracias |
Con una componente TTale podrías usar FindNearest. Con un consulta sql algo como
que regresará todos los que comiencen con N. // Saludos |
|
Cita:
// Saludos |
Cita:
|
Hablando de eficiencia... si usas Interbase/Firebird, y pasas la letra como parámetro de la forma:
el motor no usará un indice definido sobre el nombre, sino recorerá todos los registros de la tabla. Esto es debido a que el plan se determina antes de conocer el valor del parámetro. Es mas eficiente una clausula starts with:
donde el valor de parametro debiera ser solamente 'M' (sin porcentajes). Aqui si que se usará el indice; claro, siempre que esté definido... Aclaro que esto es válido para Interbase. No doy fe de otros motores, salvo de Oracle, que entiendo que utilizaría el indice si el parámetro es del tipo 'M%'. Hasta luego. ;) |
La franja horaria es GMT +2. Ahora son las 09:22:40. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi