Ver Mensaje Individual
  #7  
Antiguo 29-09-2003
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Reputación: 22
Giniromero Va por buen camino
Hola,


Cita:
Este error te da por una mala construcción en la sentencia SQL

Pero, si es por una mala construcción en el SQL, ¿por que sólo me falla cuando no resultan registros de la busqueda?, esto es, cuando, por ejemplo aparece un espacio de algo que no tiene que tenerlo, o estoy buscando en un campo de text algo que comience por 'Mn' y no encuentra nada en la tabla que comience así.

En cualquier caso, este es el código que tengo para la busqueda:

//para, dependiendo del campo por el que vamos a querer que nos ordene la tabla
//así añadir el código

IF EditBuscar.Text = '' THEN BEGIN //Si no hay datos en el campo de texto para buscar
//Salimos del procedure
Exit;
ShowMessage ('No ha insertado parámetros de busqueda');
END
ELSE BEGIN //si hay parámetros de búsqueda
Try

FrmDModule.TbAlumnos.DisableControls;

FrmDModule.TbAlumnos.Close;

FrmDModule.TbAlumnos.SelectSQL.Clear;
//le asignamos el SQL que tenía al inicio la tabla
FrmDModule.TbAlumnos.SelectSQL.Add(FrmDModule.VAlumnosSQL);

// Dependiendo del campo en el que vayamos a buscar así hacemos la busqueda con un where = o un where like
IF (RCampo = 'NUMALU') THEN BEGIN //Los datos introducidos en el campo
//tienen que ser numéricos
//insertamos los parámetros de búsqueda en la sentencia selectSQL
FrmDModule.TbAlumnos.SelectSQL.Add('WHERE ' + RCampo + ' = ' + EditBuscar.Text );
//ordenamos por ...
FrmDModule.TbAlumnos.SelectSQL.Add( 'ORDER BY ' + RCampo);
//abrimos la tabla

END
ELSE BEGIN //buscamos en campos con texto
//insertamos los parámetros de búsqueda en la sentencia selectSQL
FrmDModule.TbAlumnos.SelectSQL.Add('WHERE ' + RCampo + ' LIKE ''' + EditBuscar.Text + '%'' ' );
//ordenamos por ...
FrmDModule.TbAlumnos.SelectSQL.Add( 'ORDER BY ' + RCampo);
//abrimos la tabla
END;
//una vez que se ha creado la consulta es cuando abrimos la tabla
FrmDModule.TbAlumnos.Open;


Finally

//volvemos a habilitar los controles de la tabla
FrmDModule.TbAlumnos.EnableControls;

End;
END;


Por cierto, ¿hay algún sitio donde me pueda documentar mejor sobre la manipulación de los errores?, vamos, para tener claro lo que implica el código que me has recomendado, y así poder manejarlo según mis necesidades.

Muchas gracias por la ayuda,

Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita