Delphi - Error en busqueda

 
Vista:

Error en busqueda

Publicado por Armando (16 intervenciones) el 01/08/2007 17:30:45
Estoy desarrollando una aplicacion donde necesito realizar busquedas, mis tablas estan en Paradox y el procedimiento que uso es el siguiente:
begin
DS_prof.DataSet.Locate('Matricula',VarArrayOf([Edit2.Text]), [loPartialKey]);
num := DS_prof.DataSet.FieldByName('Matricula').AsInteger;
if StrtoInt(Edit2.Text) = num then
begin
ShowMessage('Error, Ya hay un profesor registrado con ese número de matricula');

Funciona bien, pero solo cuando el campo "matricula" está en el primer lugar de la tabla :S
si hago la busqueda en otro campo que no esté en primer lugar me marca el error:
Project *** raised exception class EVariantTypeCastError with message 'Could not convert variant of type (Array Variant) into type (Double)'.

Todos los campos estan definidos como number. No se porque saca eso del double.

ayuda por favor... gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error en busqueda

Publicado por ulises (2 intervenciones) el 02/08/2007 20:24:39
Hola Armando yo lo que aría es crear un TQuery y buscarlo con SQL asi

Procedure Button1OnClick(Sender...)
var Q: Tquery;
begin
Q := Tquery.create(nil);
Q.DatabasName := 'BD';
Q.sql.add('SELECT MATRICULA FROM MAESTRO WHERE MATRICULA = :M');
Q.ParamByName('M').asInteger := InttoStr(Edit1.Text);
Q.Open;
if not Q.IsEmpty then
ShowMessage('NONONON');
end;

Espero te sirva

Puedes cambiar el nnombre de las columnas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error en busqueda

Publicado por juancho (193 intervenciones) el 08/08/2007 15:00:16
No hace falta la funcion VarArrayOf si tienes solo una columna para tu busqueda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar