![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск
Nameziz © (2008-09-08 12:14:00)Помогите с реализацией поиска. Задача: написать функцию которая бы по имени поля и его значению искала записи (использовать компонент Query + использовать параметры) и в качестве результата возвращала количество найденных записей. Вот что у меня получилось:
function Tdatamodule_Connection.FindByField(const FieldName,
FieldValue: string): Integer;
begin
Result := -1;
if ConnectionStatus = csConnected then
begin
cmp_Query_.Close;
cmp_Query_.SQL.Text := 'SELECT * FROM ITEM WHERE ' + FieldName + ' = :FieldValue';
if not cmp_Query_.Prepared then
cmp_Query_.Prepare;
// здесь не получается сделать разделение для тестовых и числовых полей.
cmp_Query_.ParamByName('FieldValue').AsInteger := StrToInt(FieldValue);
{ else
cmp_Query_.ParamByName('FieldValue').AsString := FieldValue; }
cmp_Query_.ExecSQL;
Result := cmp_Query_.RowsAffected;
end;
FSelByKey := False;
end;
Palladin (2008-09-08 12:16:00) [21]не будь таким сложным
cmp_Query_.ParamByName('FieldValue').Value:=FieldValue;