Показать сообщение отдельно
  #5  
Старый 05.09.2008, 18:30
LDV LDV вне форума
Прохожий
 
Регистрация: 03.05.2008
Сообщения: 14
Репутация: 10
По умолчанию

Запрос 100% правильный. Нужно грамотно сделать выборку. Типа:
PHP код:
function Tdatamodule_Connection.FindByField(const FieldName, 
  
FieldValue: string): Integer; 
begin 
  Result 
:= -1; 
  if 
ConnectionStatus = csConnected then 
  begin 
    
// cmp_Query_.SQL.Text := Format('SELECT * FROM ITEM WHERE %s = %s', [FieldName, FieldValue]); 
   
cmp_Query_.Close;  
   
cmp_Query_.SQL.Text := 'SELECT * FROM ITEM WHERE ' + FieldName + ' = :FieldValue'; 
    if 
not cmp_Query_.Prepared then 
      cmp_Query_
.Prepare; 
   if 
что-то then // может быть проверять тип поля (числовой или текстовый, и как нибудь по другому)
     
cmp_Query_.ParamByName('FieldValue').AsInteger := StrToInt(FieldValue)
   else  
     
cmp_Query_.ParamByName('FieldValue').AsString := FieldValue; 
    
cmp_Query_.ExecSQL; 
    
Result := cmp_Query_.RowsAffected; 
  
end; 
  
FSelectedByKey := False; 
end; 
Ответить с цитированием