|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
Что использовать? подскажи пжл
В программировании новичок.
Попросили написать программу для облегчения другим. Подключаюсь к БД Oracle через ADOConnection, в DBGrid вывожу список лиц, получивших карточки (ну там организовал поиск). При двойном клике в DBGride по "Человеку", в ListBox подтягивается список, полученных карточек, типо ААА001-009 БББ010-013 и т.п. При щелчке по нужной строке, например 1 она раскладывается в Edit1=ААА001 и Edit2=ААА009 Вопрос как организовать или что использовать, чтобы при нажатии на Кнопку1, выполнялся запрос перебрать значения всего диапозона ААА001-009(т.е. ААА001, ААА002, ААА003, ..., ААА009) с колонкой Number, таблицы Lugi. Я могу проверить только значение Edit1 и Edit2, а как промежуток между ними не знаю, подскажите пожалуйста. Код:
ADOQuery2.Sql.Text:='Select Number From Lugi Where Number = '+QuotedStr(Edit1.Text)+''; |
#2
|
||||
|
||||
Есть такая штука, как параметры запроса.
Код:
TParam Код:
select * from table where field = :value Жмём F1, вводим TParam. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
||||
|
||||
Цитата:
Код:
ADOQuery2.Sql.Text := 'Select Number From Lugi Where Number >= ' + QuotedStr(Edit1.Text) + ' and Number <= ' + QuotedStr(Edit2.Text); |
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
spawn-1212 (30.04.2014)
|
#4
|
||||
|
||||
А можете подсказать как реализовать проверку по количеству символов, т.е. в LisTBox1 меня есть номера ААА001-002 и ААА0001-0002 (6 и 7 значные). При щелчке на один из диапозонов, они должны заносится в Edit1 и Edit2, как сделать проще чем у меня?
У меня так : Код:
procedure TForm1.ListBox2Click(Sender: TObject); begin Edit3.Text:=ListBox2.Items[ListBox2.ItemIndex]; {6-знаков} //серия Edit3.SelStart:=0; //устанавливаю курсор перед нулевым символом Edit3.SelLength:=3; //выделяем 3 символа Edit3.CopyToClipboard; //копируем выделенное Edit4.Clear; Edit4.PasteFromClipboard; //втавляем в Edit4 //начало номеров Edit3.SelStart:=4; //устанавливаю курсор перед 4 символом Edit3.SelLength:=3; //выделяем 3 символа Edit3.CopyToClipboard; //копируем выделенное Edit5.Clear; Edit5.PasteFromClipboard; //втавляем в Edit5 //конец номеров Edit3.SelStart:=8; //устанавливаю курсор перед 8 символом Edit3.SelLength:=3; //выделяем 3 символа Edit3.CopyToClipboard; //копируем выделенное Edit6.Clear; Edit6.PasteFromClipboard; //втавляем в Edit6 Edit7.Text:=Edit4.Text+Edit5.Text; // собираем в одно Edit8.Text:=Edit4.Text+Edit6.Text; // собираем в одно {7-знаков} //серия Edit3.SelStart:=0; //устанавливаю курсор перед нулевым символом Edit3.SelLength:=3; //выделяем 3 символа Edit3.CopyToClipboard; //копируем выделенное Edit9.Clear; Edit9.PasteFromClipboard; //втавляем в Edit4 //начало номеров Edit3.SelStart:=4; //устанавливаю курсор перед 4 символом Edit3.SelLength:=4; //выделяем 4 символа Edit3.CopyToClipboard; //копируем выделенное Edit10.Clear; Edit10.PasteFromClipboard; //втавляем в Edit10 //конец номеров Edit3.SelStart:=9; //устанавливаю курсор перед 9 символом Edit3.SelLength:=4; //выделяем 4символа Edit3.CopyToClipboard; //копируем выделенное Edit11.Clear; Edit11.PasteFromClipboard; //втавляем в Edit11 Edit12.Text:=Edit9.Text+Edit10.Text;// собираем в одно Edit13.Text:=Edit9.Text+Edit11.Text;// собираем в одно end; 1. Много полей: 6знаков в Edit1 и Edit2, 7знаков в Edit3 и Edit4 2. Приходится делать две кнопки для 6знаков и 7 знаков а хотелось чтобы одна кнопка 3. В Editы постоянно вставляются символы, т.е. потом кто будет пользоваться программой нужно смотреть куда тыкать. Спасибо разобрался Цитата:
Последний раз редактировалось M.A.D.M.A.N., 30.04.2014 в 11:50. |
#5
|
||||
|
||||
Цитата:
|
#6
|
||||
|
||||
Цитата:
Код:
ADOQuery2.Sql.Text := 'Select Number From Lugi Where Number >= ' + QuotedStr(Edit1.Text) + ' and Number <= ' + QuotedStr(Edit2.Text); Тяжело в полученном результате искать отсутствующую карточку, например выдано карточек 50, а найдено 49, какая отсутствует? сидеть перебирать? не вариант Последний раз редактировалось spawn-1212, 30.04.2014 в 12:00. |
#7
|
||||
|
||||
Цитата:
Код:
ADOQuery2.Sql.Text := 'Select Number From Lugi Where NOT (Number >= ' + QuotedStr(Edit1.Text) + ' and Number <= ' + QuotedStr(Edit2.Text) + ')'; Код:
ADOQuery2.Sql.Text := 'Select Number From Lugi Where Number < ' + QuotedStr(Edit1.Text) + ' OR Number > ' + QuotedStr(Edit2.Text); |
#8
|
||||
|
||||
Цитата:
Объясню: В БД забиты карточки ААА001-ААА999, на конкретном лицеА у меня выходит диапазон ААА001-ААА050(карточки которые выдали ему), мне нужны карточки которые не входят в этот диапазон. Последний раз редактировалось spawn-1212, 30.04.2014 в 13:07. |