|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Подстановка данных с бд ошибка
Здравствуйте!
Вообщем суть такова есть на форме 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; |
#2
|
|||
|
|||
ну и правильно ругается...
у вас ADOQuery1.Clear выполняется только если Kod не Null а Adoquery1.Sql.Add Выполняется каждый раз. т.е. ввели букву "А" заполнился запрос выполнился очистился. ввели букву "В" запрос заполнился (Выполнилось адд). но не очистился, ввели "И" получили запрос вида : Код:
SELECT Kod FROM Products WHERE Kod LIKE :Kods SELECT Kod FROM Products WHERE Kod LIKE :Kods перед Adoquery1.Sql.Add, поставить ADOQuery1.Clear не айс, однако. Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#3
|
||||
|
||||
Цитата:
Большое спасибо задача решена |