Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/27: Рейтинг темы: голосов - 27, средняя оценка - 4.93
6 / 6 / 2
Регистрация: 16.10.2011
Сообщений: 226

Поиск и выборки в query

30.11.2013, 06:15. Показов 5779. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
У меня в пятницу сдача курсовой, а я ее так со стадии зародыша и не могу вытащить
Помогите пожалуйста. В общем,архив кинул на сервер (1.39 мб), т.к. там несколько форм, тут нет смысла думаю постить все коды.
Проблема такая: При поиске, ввел
Delphi
1
2
3
4
procedure TForm2.edt1Change(Sender: TObject);
begin
  qry1.Locate('probeg',edt1.Text,[loPartialKey, loCaseInsensitive]);
end;
кажется, должен курсор по совпадению перемещаться, а он нет. только на полное совпадение реагирует(
да и при удалении значения, ошибку выдает( не пойму, что за фигня((

В общем, вопросы есть. По ходу я бы задавал, Помогите пожалуйста. А то, чувствую, что без помощи, я не осилю.
Вложения
Тип файла: rar курс.rar (1.39 Мб, 15 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.11.2013, 06:15
Ответы с готовыми решениями:

Поиск через query
Доброго времени суток! Есть база, DBGrid подключен к query. Я хочу сделать поиск, который ищет не конкретное число, а числа которые...

Работа с Query поиск с радиусом
Есть таблица на DBGrid стоит Query нужно сделать поиск с диапазоном ... сделал так но выдало ошибку: Query1.ParamCheck:= True; ...

Поиск по модулям проекта Delphi в Query
Доброго времени суток! Возникла задача - произвести текстовый поиск по всему проекту Delphi по Query. Форм много, Query очень много. ...

40
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
03.12.2013, 23:46
Студворк — интернет-сервис помощи студентам
В прицепе две формы, где были исправления.
В форма 3 кое-что доделано, переделано, исправлено, поэтому повнимательнее с этой формой.
лукапкомбобокс таб.номеров оставлен, но соединен он с другим датасетом, которые при добавлении водилы обновляется.
В форме 7 доделаны два запроса. 4-й с неопределенными условиями и его нет.
Вложения
Тип файла: zip MoSanya02.zip (5.4 Кб, 2 просмотров)
0
6 / 6 / 2
Регистрация: 16.10.2011
Сообщений: 226
06.12.2013, 19:20  [ТС]
Скандербег, Приветствую Вас. Прошу прощения. ПРопал инет на 2 дня Сейчас буду пробовать. Нашел несколько неточностей в проге, которую я делал, Сейчас проверим, как вы мне подсказали, а далее посомтрим
0
6 / 6 / 2
Регистрация: 16.10.2011
Сообщений: 226
06.12.2013, 22:27  [ТС]
Скандербег, приветствую еще раз. тут вот пару замечаний мне сделали. немного не продумал я.
в общем такое дело..
в таблице РАСПИСАНИЕ по ходу нужно добавить еще номер авто, и удаление в той таблице производить по нескольким полям. а как удалять по нескольким полям? ТИпа: \
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
var
a,b:string;
begin
  b:=qry1.fieldByName('nomavto').AsString;
  a:=qry1.fieldbyname('tabelnum').asstring;
qry1.Close;
  qry1.SQL.Clear;
  qry1.SQL.Add('delete from avto.db where nomavto="'+b+'";tabelnum="'+a+'";');
  qry1.ExecSQL;
  qry1.SQL.Clear;
  qry1.sql.add('select * from avto.db');
  qry1.Open;
end;
или путаю.\?

потом, преподаватель говорит, расход топлива должен выходить автоматом, считать должен с таблицы АВТОМОБИЛЕЙ, ну типа сколько расход на 100 км, и оттуда уже вычитывать значение, сколько будет в таблице с расписанием после ввода километража(расстояния).
Массу груза нужно для каждой машины проверять, ну если у нас груз на 3434 кг а грузоподъемность машины 1322 кг, то надо вывести соответствущее сообщение. Как еНто все реализовать? помогите пожалуйста.

И в таблице автомобилей какое то автоинкрементное поле быть должно. А чего это я так и не вкурил о_О

Добавлено через 10 минут
блин меня повесят
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
06.12.2013, 22:35
Я, к сожалению, в BDE не силен и многое в этой технологии из области неизведанного.

В других СУБД автоинкрементное поле, то, в котором значение (целочисленное, как правило) автоматически формирует сервер (движок в случае BDE). При добавлении строки в таблицу значение это автоматом увеличивается с каким-то шагом (1, например) и присваивается автоинкрементному полю.
0
6 / 6 / 2
Регистрация: 16.10.2011
Сообщений: 226
07.12.2013, 06:14  [ТС]
Скандербег, доброе утро. Очень жаль. А с проблемой, той, что выше описал не сможете помочь?
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
07.12.2013, 06:34
Как сейчас сделаны таблицы, автоматом расход топлива не посчитать, т.к.
к водителю могут быть прикреплены несколько автомобилей (с разным расходом), а в расписании нет поля,
по которому можно было бы определить на каком авто водитель вышел в рейс.
С массой груза та же история.
0
6 / 6 / 2
Регистрация: 16.10.2011
Сообщений: 226
07.12.2013, 06:38  [ТС]
вот ппц я намудрил. а как быть? что можно сделать? Переделать их как-то? я готов. Ведь там инфы нету практически.
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
07.12.2013, 06:43
А что самому догадаться не судьба?
Если нужно взять какие-то данные из таблицы авто, то, следовательно, нужно в таблицу расписание добавить
номер автомобиля, на котором выехал водитель. У него их же может быть несколько.
0
6 / 6 / 2
Регистрация: 16.10.2011
Сообщений: 226
07.12.2013, 06:52  [ТС]
так же добавил это.

просто я не знаю, как реализовать автоподсчет.

я предположил так. мы выбираем массу груза, потом выбираем авто, если грузоподъемность выбранного авто меньше чем груз то выводим сообщение что надо выбрать другой авто. иначе идем дальше и вводим расстояние, после выбора расстояния для имеющегося авто, выводится автоматом расход. только блин как эНто кодом написать
Миниатюры
Поиск и выборки в query  
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
07.12.2013, 07:10
Нужен проект.
0
6 / 6 / 2
Регистрация: 16.10.2011
Сообщений: 226
07.12.2013, 12:36  [ТС]
Скандербег,
Вот прописал код, но думаю не правильно его разместил в форме 3.
проект во вложении.



Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TForm3.edt16Change(Sender: TObject);
var
  i:Integer;
  m:Integer;
begin    {Чего то не правильно сделал}
    i:=1;
    Form2.qry1.First;
    while i<=Form2.qry1.RecordCount do
    begin
      if form2.qry1.FieldByName('gruzpod').AsInteger = StrToInt(edt16.Text) then
        m:=Form6.qry1.fieldbyname('mgruza').asinteger
        else
        ShowMessage('Выберите другой автомобиль,выбранный вами автомобиль обладает меньшей грузоподъемностью');
      i:=i+1;
      Form2.qry1.Next;
    end;

и еще прописал код для километража. Посомтрите. он работает
и еще вопрос, у квери редактирование так же как и тейбл реализуется?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
 begin
    qry1.Edit;
    qry1.FieldByName('Nomer avtomobilya').AsString:=(dbedtNomeravtomobilya.Text);
    qry1.FieldByName('Marka avto').AsString:=dbcbbMarkaavto.text;
    qry1.FieldByName('Teh. sostoyanie').AsString:=dbcbbTehsostoyanie.text;
    qry1.FieldByName('Probeg').AsFloat:=StrToFloat(dbedtProbeg.Text);
    qry1.FieldByName('Gruzopodjemnost').AsInteger:=StrtoInt(dbedtGruzopodjemnost.text);
    qry1.FieldByName('Rashod').AsFloat:=StrToFloat(dbedtRashod.Text);
    qry1.post;
    form2.qry1.Close;
    Form2.qry1.Open;
  end;
или как то по другому?
Вложения
Тип файла: rar mosanya.rar (1.85 Мб, 2 просмотров)
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
07.12.2013, 12:55
Нет, квери не умеет редактировать.
А остальное сейчас посмотрю.

Не по теме:

Когда выкладываются фрагменты кода нужно показывать где они выполняются (т.е. всю процедуру).

0
6 / 6 / 2
Регистрация: 16.10.2011
Сообщений: 226
07.12.2013, 13:27  [ТС]
Скандербег, там в форме 3, есть добавление картинки по выбранной модели авто. оно не срабатывает. Вы не заметили ошибку? может я там тоже как в тейбле прогнал?
ЗЫ: кнопка ввода данных в таблицу автомобилей
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
07.12.2013, 13:29
Для dblkcbb3 и Edt14 надо создать процедуру обработки события OnExit. Т.е. расчеты производятся после выхода из каждого из этих объектов. В них надо прописать следующие тексты:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm3.dblkcbb3Exit(Sender: TObject);
begin
  if (dblkcbb3.Text = '') or (Edt16.Text = '') then Exit;
  Query1.SQL.Text := 'select gruzpod from avto where nomavto = "'+dblkcbb3.Text+'"';
  Query1.Open;
  if not Query1.Eof and (Query1['gruzpod'] < Edt16.Text) then
    ShowMessage('Âûáåðèòå äðóãîé àâòîìîáèëü,âûáðàííûé âàìè àâòîìîáèëü '+
                'îáëàäàåò ìåíüøåé ãðóçîïîäúåìíîñòüþ');
end;
 
procedure TForm3.edt14Exit(Sender: TObject);
var
  R : Integer;
begin
  if (dblkcbb3.Text = '') or (Edt14.Text = '') then Exit;
  Query1.SQL.Text := 'select Rashod from avto where nomavto = "'+dblkcbb3.Text+'"';
  Query1.Open;
  if not Query1.Eof then begin
    if TryStrToInt(edt14.Text, R) then
      edt15.Text :=  IntToStr(Query1['Rashod'] * R);
  end;    
end;
Процедуры на события OnChange выбросить.
1
6 / 6 / 2
Регистрация: 16.10.2011
Сообщений: 226
07.12.2013, 13:38  [ТС]
отлично. Спасбо. А для эдита, в моем случае, разница разве есть, в эксит ставить или в чейнж?
я думал нету разницы. просто ответ сразу один выходит а не к каждому значению километража
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
07.12.2013, 13:50
Разница есть и существенная. В OnChange расчет происходит каждый раз когда нажимается клавиша. Причем любая, которая изменяет содержимое контрола. OnExit - срабатывает только один раз при выходе из контрола.
Если бы база была объемная, то применение OnChange могло вызвать тормоза при вводе данных.
0
6 / 6 / 2
Регистрация: 16.10.2011
Сообщений: 226
07.12.2013, 13:55  [ТС]
Скандербег, понял.
а с картинками никак ?
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
07.12.2013, 14:00
а с картинками никак ?
Это о чем?
0
6 / 6 / 2
Регистрация: 16.10.2011
Сообщений: 226
07.12.2013, 14:02  [ТС]
Скандербег, на форме 3, где добавление автомобилей, есть такая задумка.
Когда я выбираю марку авто, у меня автоматом должно в picture появляться картинка нужной мне марки авто. Вот я код прописал, но он не срабатывает почему-то.
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
07.12.2013, 14:07
Как минимум, нужно записать картинку в базу.
Присвоение DBImage какого-то изображение не вставляет его в базу. DBImage, вообще только для отображения записанной картинки.
Не знаю как это делается в BDE. Но, думаю, найти в инете не сложно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.12.2013, 14:07
Помогаю со студенческими работами здесь

Delphi Query DataTimePicker (поиск по дате)
Всем добрый день. Возник вопрос - есть компонент DataTimePicker, написал запрос на выборку по дате: procedure...

Поиск максимального значения из выборки
Господа, есть такая проблема, запрос с кучей объединений, который выводит много однотипных данных. Мне нужно как-то из этой моей выборки...

Как с помощью ixsso.Query запустить расширенный поиск?
Люди подскажите как с помощью ixsso.Query запустить расширенный поиск. Чтобы находились документы содержащие текст например 'комит* ' , а...

Shodanhq - ошибка Error: Invalid search query, please check the query syntax
Собственно, такая проблема. Я думаю, что многие знакомы с такой поисковой системой, как shodanhq.com. В последнее время при поиске у меня...

Не работает $db->query(); // Call to a member function Query() on a non-object in
Только приступил к ООП, поэтому очевидно наличие простых ошибок. Вот код, который при запуске метода $User-&gt;registr(); Выодает ошибку:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru