Tal vez a alguien le interese:
Para tener un parámetro con el mismo valor y que ADO no se haga pelotas con los nombres, se puede optar por declarar variables en la consulta SQL.
Una consulta normal:
Código Delphi
[-]
with UnADOQuery do begin
...
SQL.Add('Select UnCampo');
SQL.Add('From UnaTabla');
SQL.Add('Where Nombre = :Nombre');
SQL.Add('or SegundoNombre = :Nombre');
...
Parameters.ParambyName('Nombre').value := edtNombre.text;
...
generaría errores con los nombres de los parámetros, ya que, a diferencia de BDE, no se puede tener establecido varias veces el mismo parámetro.
Por lo que se tendría que hacer algo como:
Código Delphi
[-]
with UnADOQuery do begin
...
SQL.Add('Select UnCampo');
SQL.Add('From UnaTabla');
SQL.Add('Where Nombre = :Nombre');
SQL.Add('or SegundoNombre = :Nombre2');
...
Parameters.ParambyName('Nombre').value := edtNombre.text;
Parameters.ParambyName('Nombre2').value := edtNombre.text;
...
Tal vez en el ejemplo no se note mucho, ya que solo se usa dos veces. Pero cuando tenemos que usar el mismo valor 5 o 6 veces, ya se empieza a hacer tedioso.
La opción que me ha funcionado con ADO y SQL Server, es declarar las variables en la consulta SQL:
Código Delphi
[-]
with UnADOQuery do begin
...
SQL.Add('Declare @Nombre as varchar(20)');
SQL.Add('Select @Nombre = :Nombre');
SQL.Add('Select UnCampo');
SQL.Add('From UnaTabla');
SQL.Add('Where Nombre = @Nombre');
SQL.Add('or SegundoNombre = @Nombre');
...
Parameters.ParambyName('Nombre').value := edtNombre.text;
...
Y con eso se puede usar el mismo parámetro tantas veces sea necesario, ya que realmente solo se pasa una sola vez el parámetro.
P.D. Aunque si tu consulta se empieza a complicar y necesitas mas parámetros, convendría utilizar un procedimiento almacenado.