Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 18

Delphi 7 ошибка в запросе

23.11.2013, 05:38. Показов 739. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа компилируется, но стоит задать критерии и программа выдает ошибку.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.Button3Click(Sender: TObject);
begin
Query3.Active := False;
Query3.SQL.Clear;
Query3.SQL.Add('SELECT Фамилия, Имя_Отчество, Дата_рождения, Код_группы, Адрес, Телефон');
Query3.SQL.Add('FROM "Студенты.DB"');
Query3.SQL.Add('WHERE');
Query3.SQL.Add('(Дата_рождения =  > like :t ) and (Дата_рождения < like :v )');
Query3.Params[0].AsString:= MaskEdit1.text;
Query3.Params[1].AsString:= MaskEdit2.text;
Query3.Active := True;
end;
Запрос SQL:
SQL
1
2
3
SELECT  Фамилия, Имя_Отчество, Дата_рождения, Код_группы, Адрес, Телефон
FROM "Студенты.DB"
WHERE  (Дата_рождения =  > LIKE :t ) AND (Дата_рождения < LIKE :v )
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.11.2013, 05:38
Ответы с готовыми решениями:

Delphi 7 и Mysql 5.1, Ошибка при запросе SELECT
procedure TForm1.FormCreate(Sender: TObject); var Connection: TSQLConnection; begin Connection := TSQLConnection.Create(nil); ...

вычислить в SQL запросе Delphi
Надо сделать вычисление по SQL запросу в двух таблицах связанных. программа должна сначала отобрать из таблицы1 данные по...

Ошибка в запросе на Редактирование: ошибка синтаксиса (пропущен оператор)
string strSQL1 = &quot;UPDATE SET .='&quot; + dataGridView1.CurrentRow.Cells.Value.ToString() + &quot;',.='&quot; +...

8
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
23.11.2013, 12:12
Слово LIKE не к месту (не нужно). Используется только с текстовыми полями.
Символы "равно или больше", "равно или меньше" пишутся без пробелов (>=). Если вообще сервер СУБД позволяет такие символы.
0
8 / 8 / 1
Регистрация: 28.11.2011
Сообщений: 84
28.11.2013, 20:29
Цитата Сообщение от Скандербег Посмотреть сообщение
Слово LIKE не к месту (не нужно). Используется только с текстовыми полями.
Символы "равно или больше", "равно или меньше" пишутся без пробелов (>=). Если вообще сервер СУБД позволяет такие символы.
Я пишу запросы с LIKE и без текстовых полей - работает. Пробелы тоже роли не играют. А вот насчет сочетания (>=), у меня тоже сомнения... Хотя может я и не права!

И тем не менее, если сам SQL-запрос работает, и вы его проверяли без приложения, то может вот так получиться чего (хотя нужно знать что за ошибку Delphi пишет, что бы вам помочь ):
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
begin
    if dstQuery3.Active then dstQuery3.Close;
    dstQuery3.SelectSQL.Clear;
    Query3.SelectSQL.Add('SELECT Фамилия, Имя_Отчество, Дата_рождения, Код_группы, Адрес, Телефон');
    Query3.SelectSQL.Add('FROM "Студенты.DB"');
    Query3.SelectSQL.Add('WHERE');
    Query3.SelectSQL.Add('(Дата_рождения =  > like :t ) and (Дата_рождения < like :v )');
    Query3.Params[0].AsString:= MaskEdit1.text;
    Query3.Params[1].AsString:= MaskEdit2.text;
    Query3.Active := True;
    dstQuery3.Open;
end;
0
 Аватар для Игорь[Igor]
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
29.11.2013, 03:23
А откуда беруться эти значения ":t", ":v"?
0
 Аватар для ZfoxAK
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
29.11.2013, 06:05
Цитата Сообщение от Игорь[Igor] Посмотреть сообщение
А откуда беруться эти значения ":t", ":v"?
это параметры.
Цитата Сообщение от Алек-санра Посмотреть сообщение
Query3.Params[0].AsString:= MaskEdit1.text;
Query3.Params[1].AsString:= MaskEdit2.text;
В данном запросе меня смущает
Цитата Сообщение от Натали@Shirley Посмотреть сообщение
= *>
>= я думаю правильней будет.
если ТС не появляется с 23 предпологаю, что решение проблемы его не интересует.
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
29.11.2013, 09:34
Цитата Сообщение от Натали@Shirley Посмотреть сообщение
Я пишу запросы с LIKE и без текстовых полей - работает
В большинстве случаев - зря. Работать будет, но медленнее, чем равенство/неравенство.
А LIKE, когда в аргументе нет шаблонных символов (типа %) вообще не имеет смысла, ибо эквивалентен равенству
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
29.11.2013, 10:09
Цитата Сообщение от Grossmeister Посмотреть сообщение
А LIKE, когда в аргументе нет шаблонных символов (типа %) вообще не имеет смысла, ибо эквивалентен равенству
Есть варианты, когда не эквивалентен. Тут, например.
0
 Аватар для ZfoxAK
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
29.11.2013, 10:28
Цитата Сообщение от Grossmeister Посмотреть сообщение
В большинстве случаев - зря. Работать будет, но медленнее, чем равенство/неравенство.
У него тип поля: дата_рождения является String поэтому like. Или я что-то путаю?!
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
29.11.2013, 11:04
Цитата Сообщение от arni
Есть варианты, когда не эквивалентен. Тут, например.
Видимо зависит от СУБД.
Например, этот пункт:
Примеры 2 и 5 показывают, что = всеже НЕ эквивалентно like, т.к. последний не игнорирует конечные пробелы.
В Oracle
SQL
1
2
3
4
5
6
7
8
9
10
11
SELECT *
FROM tab1
WHERE fld1 = 'abc'
 
-- эквивалентно
 
SELECT *
FROM tab1
WHERE fld1 LIKE  'abc'
 
-- т.е. возвращают строку
SQL
1
2
3
4
5
6
7
8
9
10
11
SELECT *
FROM tab1
WHERE fld1 = 'abc  '
 
-- эквивалентно
 
SELECT *
FROM tab1
WHERE fld1 LIKE  'abc  '
 
-- т.е. НЕ возвращают строк
Т.е. концевые пробелы НЕ игнорируются ни в том, ни в другом случае
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.11.2013, 11:04
Помогаю со студенческими работами здесь

Delphi удаляет символы amp; в post запросе
Вот что посылаю: authp=nonce.tt.time.new_audio_default&amp;amp;psig=dh0veIh-em6lba1FEhb74ejBGxs&amp;amp; Вот что посылается: ...

Ошибка в запросе на вставку: ошибка синтаксиса
private void button2_Click(object sender, EventArgs e) { goods = null; goods = new ADODB.Recordset();...

Ошибка в запросе
Нужен такой запрос: SELECT WORDRUS FROM WORd_level3 WHERE WORDENG=&quot;borrow&quot; (слово к примеру). При выполнении такого запроса в DB Browser...

Ошибка в запросе
OleDbCommand command = new OleDbCommand(&quot;SELECT * FROM sob WHERE data&gt;@DT And &lt;@DT1&quot;, connection); ...

Ошибка в запросе
Всем привет, есть запрос такого вида SELECT ., ., . FROM WHERE = '{0}'; Просит ввести наименование раздела, ввожу что полное...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru