Contributor: SWAG SUPPORT TEAM Q: How do I pass a variable to a query? A: First, you must write a query that uses a variable. Select Test."FName", Test."Salary Of Employee" From Test Where Test."Salary of Employee" > :val Note: If you just write the field name as "Salary of Employee" you will get a Capability Not Supported error. It must be Test."Salary of Employee". In this can the variable name is "val", but it can be whatever you want (of course). Then, you go to the TQuery's params property and set the "val" parameter to whatever the appropriate type is. In our example here we will call it an integer. Next, you write the code that sets the parameter's value. We will be setting the value from a TEdit box. procedure TForm1.Button1Click(Sender: TObject); begin with Query1 do begin Close; ParamByName('val').AsInteger := StrToInt(Edit1.Text); Open; end; end; Note: you may want to place this code in a try..except block as a safety precaution. If you want to use a LIKE in your query, you can do it this way: Note: This next section uses the customer table from the \delphi\demos\data directory. It can also be referenced by using the DBDEMOS alias. SQL code within the TQuery.SQL property: SELECT * FROM CUSTOMER WHERE Company LIKE :CompanyName Delphi code: procedure TForm1.Button1Click(Sender: TObject); begin with Query1 do begin Close; ParamByName('CompanyName').AsString := Edit1.Text + '%'; Open; end; end; An alternate way of referencing a parameter (other then ParamByName) is params[TheParameterNumber]. The way that this line: ParamByName('CompanyName').AsString := Edit1.Text + '%'; can be alternately written is: Params[0].AsString := Edit1.Text + '%'; The trick to the wildcard is in the concatenating of the percentage sign at the end of the parameter.