Hola
Creo que lo que dice es que el valor no coincide, muy probablemente si no es string el valor da ese error.
Hay que saber que dato se va a sacar mas que el parametro, para mi esta bien como lo haces.
Si es string:
Código Delphi
[-]
datam.Query1.SQL.Text:= 'Select * From 20092 Where matricula = :variable';
datam.Query1.Parameters[0].AsString:= Edit1.Text;
datam.Query1.Open;
Si es integer prefiero el value:
Código Delphi
[-]
datam.Query1.SQL.Text:= 'Select * From 20092 Where matricula = :variable';
datam.Query1.Parameters[0].Value:= Edit1.Text;
datam.Query1.Open;
No me gusta el add.
Para usar un like, yo lo haría con un filtro, no con sql, de todos modos llamas a toda la tabla ( * ).
Saludos