Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
 Аватар для son_yaa
0 / 0 / 1
Регистрация: 10.03.2018
Сообщений: 51
Delphi 6-7

Запрос ADOQuery в Делфи 7 выводит не все записи

18.03.2018, 08:43. Показов 3509. Ответов 29

Студворк — интернет-сервис помощи студентам
Появилась это проблема после того как я заполнила таблицу с клиентами. По началу думала что проблема в том что в поле FIO у меня появились записи с ковычками (раньше все запросы работали и ковычек в ФИО клиентов я не вводила, но сейчас нужно заполнять таблицу с ковычками). и почему-то не выводит заказы тех клиентов в ФИО которых присутствуют ковычки
Помогите разобраться пожалуйста. Сижу второй день, не понимаю в чем проблема. Могу спросить программу, кто действительно может помочь

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
procedure TForm26.FormShow(Sender: TObject);
var  FirstDay, LastDay: TDateTime;
     data1, data2: TDateTime;
  begin
FirstDay := EnCodeDate(YearOf(Date), MonthOf(Date), 1); //первая дата месяца
LastDay := FirstDay + DaysInMonth(Date) - 1; //последняя дата месяца
DateTimePicker1.Date:= FirstDay;
DateTimePicker2.Date:= LastDay;
 
QueryPoliMes.SQL.Text := 'SELECT * FROM ZakazPoligraf WHERE Data between :data1 and :data2 ';
QueryPoliMes.Parameters.ParamByName('data1').Value := DateTimePicker1.DateTime;
QueryPoliMes.Parameters.ParamByName('data2').Value := DateTimePicker2.DateTime;
QueryPoliMes.Active:=true;
  QueryNaruzhMes.SQL.Text := 'SELECT * FROM ZakazNaruzh WHERE Data between :data1 and :data2 ';
  QueryNaruzhMes.Parameters.ParamByName('data1').Value := DateTimePicker1.DateTime;
  QueryNaruzhMes.Parameters.ParamByName('data2').Value := DateTimePicker2.DateTime;
  QueryNaruzhMes.Active:=true;
    QueryArendMes.SQL.Text := 'SELECT * FROM ZakazArenda WHERE Data between :data1 and :data2 ';
    QueryArendMes.Parameters.ParamByName('data1').Value := DateTimePicker1.DateTime;
    QueryArendMes.Parameters.ParamByName('data2').Value := DateTimePicker2.DateTime;
    QueryArendMes.Active:=true;
 
DataModule3.Tklient.Filtered:=false;
DataModule3.Tklient.Filter:= '(Data >= '+QuotedStr(DateTostr(DateTimePicker1.DateTime))+') and '+
 '(Data <= '+QuotedStr(DateTostr(DateTimePicker2.DateTime))+')';
DataModule3.Tklient.Filtered:=true;
end;
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TForm26.suiCheckBox1Click(Sender: TObject);
var  FirstDay, LastDay: TDateTime;
     data1, data2: TDateTime;
  begin
FirstDay := EnCodeDate(YearOf(Date), MonthOf(Date), 1); //ïåðâàÿ äàòà ìåñÿöà
LastDay := FirstDay + DaysInMonth(Date) - 1; //ïîñëåäíÿÿ äàòà ìåñÿöà
DateTimePicker1.Date:= FirstDay;
DateTimePicker2.Date:= LastDay;
 
QueryPoliMes.SQL.Text := 'SELECT * FROM ZakazPoligraf WHERE Data between :data1 and :data2 ';
QueryPoliMes.Parameters.ParamByName('data1').Value := DateTimePicker1.DateTime;
QueryPoliMes.Parameters.ParamByName('data2').Value := DateTimePicker2.DateTime;
QueryPoliMes.Active:=true;
  QueryNaruzhMes.Active:=false;
  QueryNaruzhMes.SQL.Text := 'SELECT * FROM ZakazNaruzh WHERE Data between :data1 and :data2 ';
  QueryNaruzhMes.Parameters.ParamByName('data1').Value := DateTimePicker1.DateTime;
  QueryNaruzhMes.Parameters.ParamByName('data2').Value := DateTimePicker2.DateTime;
  QueryNaruzhMes.Active:=true;
    QueryArendMes.SQL.Text := 'SELECT * FROM ZakazArenda WHERE Data between :data1 and :data2 ';
    QueryArendMes.Parameters.ParamByName('data1').Value := DateTimePicker1.DateTime;
    QueryArendMes.Parameters.ParamByName('data2').Value := DateTimePicker2.DateTime;
    QueryArendMes.Active:=true;
 end;
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TForm26.suiDBGrid1CellClick(Column: TColumn);
var fio1, fio2: string;
begin
  QueryNaruzhMes.Active:=false;
  suiCheckBox1.Checked:= false;
  QueryPoliMes.SQL.Text := 'SELECT * FROM ZakazPoligraf WHERE FIO=:fio1 and Data between :data1 and :data2';
  QueryPoliMes.Parameters.ParamByName('fio1').Value := DataModule3.Tklient.FieldByName('FIO').AsString;
  QueryPoliMes.Parameters.ParamByName('data1').Value := DateTimePicker1.DateTime;
  QueryPoliMes.Parameters.ParamByName('data2').Value := DateTimePicker2.DateTime;
  QueryPoliMes.Active:=true;
QueryNaruzhMes.Active:=false;
QueryNaruzhMes.SQL.Text := 'SELECT * FROM ZakazNaruzh WHERE FIO=:fio1 and Data between :data1 and :data2';
QueryNaruzhMes.Parameters.ParamByName('fio1').Value := DataModule3.Tklient.FieldByName('FIO').AsString;
QueryNaruzhMes.Parameters.ParamByName('data1').Value := DateTimePicker1.DateTime;
QueryNaruzhMes.Parameters.ParamByName('data2').Value := DateTimePicker2.DateTime;
QueryNaruzhMes.Active:=true;
  QueryArendMes.Active:=false;
  QueryArendMes.SQL.Text := 'SELECT * FROM ZakazArenda WHERE FIO=:fio1 and Data between :data1 and :data2';
  QueryArendMes.Parameters.ParamByName('fio1').Value := DataModule3.Tklient.FieldByName('FIO').AsString;
  QueryArendMes.Parameters.ParamByName('data1').Value := DateTimePicker1.DateTime;
  QueryArendMes.Parameters.ParamByName('data2').Value := DateTimePicker2.DateTime;
  QueryArendMes.Active:=true;
end;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.03.2018, 08:43
Ответы с готовыми решениями:

Запрос ADOQuery в Делфи не видит параметр и не выполняется
Мне нужно сделать запрос на выборку записей по условию что поле с именами Дизайнеров не пустое и выводиться должны заказы за текущий месяц...

Написать запрос, который выводит все записи по сотрудникам, родившимся в 1977 — 1983 годах
Есть таблица SOTR со следующей структурой: Название поляТипНазначение NameСтрокаИмя сотрудника AddressСтрокаАдрес проживания ...

Запрос выводит лишние записи. Вместо 3-х значений выводит 9
Есть три таблицы показаны на картинке, пишу запрос: Select Дата_Реал , ...

29
5982 / 4557 / 1095
Регистрация: 29.08.2013
Сообщений: 28,193
Записей в блоге: 3
18.03.2018, 08:47
во первых - кАвычки

во вторых - что значит не все?

в третьих - выкладывайте проект, ваш код без него бесполезен
0
 Аватар для son_yaa
0 / 0 / 1
Регистрация: 10.03.2018
Сообщений: 51
18.03.2018, 09:12  [ТС]
У меня основная рабочая форма " заказы за текущий месяц ". В ней и проблема
Миниатюры
Запрос ADOQuery в Делфи 7 выводит не все записи   Запрос ADOQuery в Делфи 7 выводит не все записи  
Вложения
Тип файла: rar РАБОЧАЯ.rar (1.04 Мб, 5 просмотров)
0
5982 / 4557 / 1095
Регистрация: 29.08.2013
Сообщений: 28,193
Записей в блоге: 3
18.03.2018, 09:24
когда выкладываете проект
1. оставляйте только pas, dpr и базу
2. никогда не задавайте жестко путь к БД. вот вы скинули мне папку, а у меня путь то другой.
3. ЗАЧЕМ ВАМ СТОЛЬКО ФОРМ?????

Добавлено через 1 минуту
4. что это такое "SUIDBCtrls, SUIPageControl, SUITabControl"???
0
 Аватар для son_yaa
0 / 0 / 1
Регистрация: 10.03.2018
Сообщений: 51
18.03.2018, 09:31  [ТС]
Извините. забыла прикрепить дополнительные библиотеки.
Вложения
Тип файла: rar SUIPack4.0.rar (2.50 Мб, 4 просмотров)
Тип файла: zip rxlibd7setup.zip (3.57 Мб, 3 просмотров)
0
5982 / 4557 / 1095
Регистрация: 29.08.2013
Сообщений: 28,193
Записей в блоге: 3
18.03.2018, 09:35
у меня нет делфи7 на компе, только лазарус. сомневаюсь что ваши компоненты подойдут

подскажите
те запросы что вы выполняете в делфи, вы пробовали выполнить в аксесе?

например - на форме вы отбираете с дата1 по дата2, выводится 5 строк
такой же результат должен быть и в СУБД
0
 Аватар для son_yaa
0 / 0 / 1
Регистрация: 10.03.2018
Сообщений: 51
18.03.2018, 09:40  [ТС]
да, все работает. раньше и в делфи работало. а сейчас не работает почему-то((( я думала что проблема в том что он не может сравнивать кавычки. попробовала добавить дополнительное поле без них и всеравно не работает
0
5982 / 4557 / 1095
Регистрация: 29.08.2013
Сообщений: 28,193
Записей в блоге: 3
18.03.2018, 09:51
Цитата Сообщение от son_yaa Посмотреть сообщение
да, все работает
уточните что работает

вы выбираете 2 даты в делфи - выполняете запрос
потом выбираете эти же даты в аксесс - выполняете запрос

результаты одинаковые?
0
 Аватар для son_yaa
0 / 0 / 1
Регистрация: 10.03.2018
Сообщений: 51
18.03.2018, 10:28  [ТС]
Вот. аксес выполняет правильно. Делфи выводит только 2 записи из 4х. Мне кажется без делфи тут не разберешься. т.е. тут скорее всего в делфи проблема, а его же у вас нет
Миниатюры
Запрос ADOQuery в Делфи 7 выводит не все записи   Запрос ADOQuery в Делфи 7 выводит не все записи   Запрос ADOQuery в Делфи 7 выводит не все записи  

0
5982 / 4557 / 1095
Регистрация: 29.08.2013
Сообщений: 28,193
Записей в блоге: 3
18.03.2018, 10:56
ты в аксессе указываешь >=
а в делфи between

between делает всегда > и <, поэтому пограничные даты 1 и 4 у тебя не попадают в диапазон

Добавлено через 26 секунд
я же спрашивал - одинаковые ли запросы?

Добавлено через 1 минуту
ЗЫ да, форма приложения прикольная, я сначала подумал что это тема Windows, но у меня так же открылось.
это эти компоненты меняют?
0
 Аватар для son_yaa
0 / 0 / 1
Регистрация: 10.03.2018
Сообщений: 51
18.03.2018, 11:02  [ТС]
поменяла условие и всеравно выводит только те 2 записи
Delphi
1
2
3
4
  QueryNaruzhMes.SQL.Text := 'SELECT * FROM ZakazNaruzh WHERE ZakazNaruzh.Data>=data1 and ZakazNaruzh.Data<=data2 ';
  QueryNaruzhMes.Parameters.ParamByName('data1').Value := DateTimePicker1.DateTime;
  QueryNaruzhMes.Parameters.ParamByName('data2').Value := DateTimePicker2.DateTime;
  QueryNaruzhMes.Active:=true;

да компоненты SuiPack (есть возможность менять темы)
0
5982 / 4557 / 1095
Регистрация: 29.08.2013
Сообщений: 28,193
Записей в блоге: 3
18.03.2018, 11:14
попробуйте переписать без параметров
что то типа
Delphi
1
query.sql.text:='SELECT * FROM ZakazNaruzh WHERE ZakazNaruzh.Data>='+'#39'+QuotedStr(DateToStr(DateTimePicker1.Date))+'#39'+' and ZakazNaruzh.Data<='+'#39'+QuotedStr(DateToStr(DateTimePicker1.Date))+'#39';
перед запуском сделайте
Delphi
1
Showmessage(query.sql.text)
и проверьте запрос
0
 Аватар для son_yaa
0 / 0 / 1
Регистрация: 10.03.2018
Сообщений: 51
18.03.2018, 11:25  [ТС]
ошибка ((
Миниатюры
Запрос ADOQuery в Делфи 7 выводит не все записи  
0
5982 / 4557 / 1095
Регистрация: 29.08.2013
Сообщений: 28,193
Записей в блоге: 3
18.03.2018, 11:52
первое
попробуй сначала вместо DateTimePicker1.DateTimе выводи DateTimePicker1.Date

второе
сделай так что бы запросы были один в один
0
 Аватар для son_yaa
0 / 0 / 1
Регистрация: 10.03.2018
Сообщений: 51
18.03.2018, 13:26  [ТС]
Пробовала. всеравно то же результат
0
5982 / 4557 / 1095
Регистрация: 29.08.2013
Сообщений: 28,193
Записей в блоге: 3
18.03.2018, 13:36
значит неправильно пробовали
выкладывайте проект
0
 Аватар для son_yaa
0 / 0 / 1
Регистрация: 10.03.2018
Сообщений: 51
18.03.2018, 14:15  [ТС]
проблему решила. нужно было очищать каждый раз запросы.))

QueryPoliMes.SQL.Clear;

и т.д.
0
5982 / 4557 / 1095
Регистрация: 29.08.2013
Сообщений: 28,193
Записей в блоге: 3
18.03.2018, 14:20
когда пишите
Delphi
1
QueryPoliMes.SQL.Text:='';
ничего очищать не нужно
0
 Аватар для son_yaa
0 / 0 / 1
Регистрация: 10.03.2018
Сообщений: 51
18.03.2018, 14:39  [ТС]
ну не знаю, у меня не работала, а после очистки перед каждым новым заполнением запроса заработало.
Просто у меня разные условия ставятся для запроса.

есть кстати еще проблема, я не могу разобраться с подзапросом. Пробовала но не получилось. Нужно чтобы у меня запрос который выводится в таблицу еще и сортировал записи по возрастанию (по полю дата)

Delphi
1
2
3
4
5
 QueryNaruzhMes.SQL.Text := 'SELECT * FROM ZakazNaruzh WHERE Data between :data1 and :data2 ';
   QueryNaruzhMes.Parameters.ParamByName('data1').Value := DateTimePicker1.DateTime;
  QueryNaruzhMes.Parameters.ParamByName('data2').Value := DateTimePicker2.DateTime;
  QueryNaruzhMes.Sort := 'Data ASC';
  QueryNaruzhMes.Active:=true;

не работает сортировка тут
0
5982 / 4557 / 1095
Регистрация: 29.08.2013
Сообщений: 28,193
Записей в блоге: 3
18.03.2018, 14:47
потому что это неправильно

Delphi
1
2
3
4
 QueryNaruzhMes.SQL.Text := 'SELECT * FROM ZakazNaruzh WHERE Data between :data1 and :data2 order by Data ';
 QueryNaruzhMes.Parameters.ParamByName('data1').Value := DateTimePicker1.DateTime;
 QueryNaruzhMes.Parameters.ParamByName('data2').Value := DateTimePicker2.DateTime;
 QueryNaruzhMes.Active:=true;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.03.2018, 14:47
Помогаю со студенческими работами здесь

Запрос ADOQuery внутри другого ADOQuery реален?
Помогите сформировать запрос для двух ADOQuery. Есть 2 таблицы БД mssql: sotrudniki , table_hlp(Вспомогательная таблица для делания...

Sql- запрос количество записи за месяц Аксес Делфи
Мир всем и привет ! как посчитать количество записи по дате. ADOQuery1.SQL.Add('SELECT * FROM Таб WHERE дата BETWEEN #16/01/2018#...

Запрос: вывести все записи одной таблицы, и совпадающие записи другой
SELECT .ФИО AS ФИО, .Паспорт AS , .Телефон AS Телефон FROM Source INNER JOIN Compare ON (.ФИО=.ФИО) AND (.Паспорт=.Паспорт); Запрос...

Запрос выводит не всё
Добрый день! Есть таблица со статьями расходов и таблица с финансовыми операциями по этим статьям. Надо вывести все статьи независимо от...

Выводит не все записи из базы
Здравствуйте! Такая проблема, почему-то php код выводит только одну запись из базы. Хотя, если выполнить запрос непосредственно из...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru