Показать сообщение отдельно
  #1  
Старый 15.11.2012, 20:42
Аватар для Paskal
Paskal Paskal вне форума
Новичок
 
Регистрация: 28.09.2010
Сообщения: 93
Репутация: 12
Восклицание Подстановка данных с бд ошибка

Здравствуйте!
Вообщем суть такова есть на форме Edit и бд Access (.mdb) При вводе данных в Edit стоит событие Edit1KeyUp при существовании вводимых значений они подставляются в строку Edit(а). Ошибка в том что при вводе символов с которых начинается значение в бд напр. Ав то подставляется Автобус. Но если вводить Ави которого нет в бд то вылазит ошибка в строке with ADOQuery1 do Типа что неправильно определен объект parametr (adoconnection) или несовместимые или неполные данные. (У меня в adoconnection 3 параметра Kods, Art, Posx - Может из за этого)
Вот сам код но код не мой только адаптировал под себя, может кто знает другие варианты попроще или с этим что то подскажите чайничку.
Заранее весьма признателен
Код:
procedure TForm2.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  pos2:word;
  s2:string;
begin            //Подстановка данных
   if Key>47 then
    begin
     Edit1.ClearSelection;
     Pos2:=Length(Edit1.Text);
     ADOQuery1.SQL.Add('SELECT Kod FROM Products WHERE Kod LIKE :Kods');
     ADOQuery1.Parameters.ParamValues['Kods']:=Trim(Edit1.Text)+'%';
     ADOQuery1.Active:=True;
     with ADOQuery1 do
      begin
       if Active then
        Close;
       Open;
       if FieldByName('Kod').IsNull=False then
        begin
        Edit1.Text:=fieldbyname('Kod').AsString;
        Edit1.SelStart:=Pos2;
        Edit1.SelLength:=length(Edit1.Text)-1;
        ADOQuery1.SQL.Clear;
        end
       else MessageBeep(0);
      end;
    end;
end;
Ответить с цитированием