Скорее всего все дело в обозначении строки как таковой в запросе, разные движки используют разные указатели на начало/конец строки ( ' - одинарная ковычка (как в Delphi) или " - двойная ковычка (как в Basic'е), поэтому для того чтобы не налететь на несовместимость лучше использовать параметры (особенно критично для полей типа ДАТА).
Код:
SQL.Text:='SELECT * FROM TStud WHERE Name = :Name';
Этой строкой мы задаем текст SQL запроса в котором будет параметр Name (кста, давать полю имя Name не очень хорошо, опять же на некоторых движках может наблюдатся сбой)
Код:
Params.ParseSQL(SQL.Text,true);
Процедура ParseSQL парсит запрос на предмет поиска параметров и создает объекты вида TParameter для объекта TQuery, вторым параметром указываем очишать все созданные параметры перед тем как начать обработку запроса (почитай справку на это тему, там все понятно изложено)
Код:
Params.ParamByName('Name').Value:=S;
Здесь задаем значения параметра найдя его по имени.
Ну и потом открываем выборку.
Вот и все, если что не понятно - сорри, не силен я в объяснениях.