![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Привет друзья.
Хочу чтоб Edit чистился при успешном завершении запросов. Но почему то пропадает результирующее множество из дбгрида когда я его чищю. Короче вот код из него будет яснее. Игрался с exit не помогло либо выборка либо чистый эдит Код:
procedure TBarcodeForm.Edit1Change(Sender: TObject); var Query:string; Date:string; Flag:bool; begin if (Edit1.Text='') and (Str='') then begin BarcodeForm.ADOQuery1.SQL.Clear; BarcodeForm.ADOQuery1.SQL.Add('SELECT * FROM works'); BarcodeForm.ADOQuery1.Open; label9.Caption:= countrec + IntToStr(BarcodeForm.Adoquery1.RecordCount); end else begin BarcodeForm.ADOQuery1.SQL.Clear; BarcodeForm.ADOQuery1.SQL.Add('SELECT * FROM works WHERE cBarcode = :dd1_b'); BarcodeForm.ADOQuery1.Parameters.ParamByName('dd1_b').Value:= Edit1.Text; BarcodeForm.ADOQuery1.Open; Date := FormatDateTime('yyyy-mm-dd', Now); Str:= Adoquery1.FieldByName('nKey').asstring; label9.Caption:= 'ID: ' + Str; //Flag:=false; if (BarcodeForm.ADOQuery1.RecordCount > 0) and (Str <> '') then begin Query:='UPDATE works SET dJobDone = '''+ Date +''' WHERE nKey = ' + Str; BarcodeForm.ADOQuery1.SQL.Clear; BarcodeForm.ADOQuery1.SQL.Add(Query); BarcodeForm.ADOQuery1.ExecSQL; Query:='SELECT * FROM works WHERE nKey = ' + Str; BarcodeForm.ADOQuery1.SQL.Clear; BarcodeForm.ADOQuery1.SQL.Add(Query); showmessage(BarcodeForm.ADOQuery1.SQL.Text); BarcodeForm.ADOQuery1.Open; //Flag:=true; exit; Str:=''; Edit1.Text:=''; end; end; end; Последний раз редактировалось aqula, 14.11.2012 в 19:38. |
#2
|
|||
|
|||
![]() Помоему вообще работать не будет
![]() по крайней мере я что то не уловлю смысл всех этих манипуляций. к чему вообще все это? у вас поиск только по 1 символу? или в едит сразу (насколько понимаб штрих-код) вбивается копи пастом или присвоением? ПС. А на Update еще Query отдельный не положить ли? Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" Последний раз редактировалось Black Raider, 14.11.2012 в 20:08. |
#3
|
|||
|
|||
![]() не по одному. Сканер штрих-кода работает как клава. В эдите вводится строка из n символов - я произвожу поиск по бд. и вывожу данные в дбгриде по этому коду. Далее я подношу еще раз к другому штрих-коду и чтоб эдит не замусоривать я его должен чистить после каждого считвания. вот
> ПС. А на Update еще Query отдельный не положить ли? Вторую адошку чтоли? Последний раз редактировалось aqula, 14.11.2012 в 21:59. |
#4
|
|||
|
|||
![]() Цитата:
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#5
|
||||
|
||||
![]() а если так: (елси уж очистка нужно при удачном завершении всех запросов)
Код:
procedure TBarcodeForm.Edit1Change(Sender: TObject); var Date:string; Flag:bool; begin if (Edit1.Text='') and (Str='') then begin BarcodeForm.ADOQuery1.Close; BarcodeForm.ADOQuery1.SQL.Text:='SELECT * FROM works'; try BarcodeForm.ADOQuery1.Open; Except Exit; end; Label9.Caption:= CountRec + IntToStr(BarcodeForm.Adoquery1.RecordCount); end else begin BarcodeForm.ADOQuery1.Close; BarcodeForm.ADOQuery1.SQL.Text:='SELECT * FROM works WHERE cBarcode = :dd1_b'; BarcodeForm.ADOQuery1.ParamByName('dd1_b').Value:= Edit1.Text; try BarcodeForm.ADOQuery1.Open; Except Exit; end; Date := FormatDateTime('yyyy-mm-dd', Now); Str:= ADOQuery1.FieldByName('nKey').asString; Label9.Caption:= 'ID: ' + Str; if (BarcodeForm.ADOQuery1.RecordCount > 0) and (Str <> '') then begin BarcodeForm.ADOQuery1.Close; BarcodeForm.ADOQuery1.SQL.Text:='UPDATE works SET dJobDone = '''+ Date +''' WHERE nKey = ' + Str; try BarcodeForm.ADOQuery1.ExecSQL; Except Exit; end; BarcodeForm.ADOQuery1.Close; BarcodeForm.ADOQuery1.SQL.Text:='SELECT * FROM works WHERE nKey = ' + Str; try BarcodeForm.ADOQuery1.Open; Except Exit; end; Str:=''; end; end; Edit1.Text:=''; end; Поживу - увижу, Доживу - узнаю, Выживу - учту. ![]() [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#6
|
|||
|
|||
![]() Нашел еще один способ.
... Edit1.SelectAll; End; Как таковой затирки нет, но при вводе новой строки прежняя стирается. |