Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2009, 19:00   #1
Gapro
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 256
Вопрос SQL не работает

Подскажите пожалуйста, почему может не работать данный код. Никаких ошибок не выдает, но и результат нулевой

Код:
 FindQuery3.SQL.Clear;
 FindQuery3.SQL.Add('SELECT Город, ');
 FindQuery3.SQL.Add('COUNT(Город) ');
 FindQuery3.SQL.Add('FROM klient');
 FindQuery3.SQL.Add('WHERE Страна=''+Edit1.Text+''');
 FindQuery3.SQL.Add('GROUP BY Город');

Я вообще незнаю в чем дело, уже готов комп разорвать на части

Последний раз редактировалось Gapro; 09.12.2009 в 19:07.
Gapro вне форума Ответить с цитированием
Старый 09.12.2009, 19:11   #2
program123
Подтвердите свой е-майл
 
Регистрация: 12.02.2009
Сообщений: 144
По умолчанию

Код:
FindQuery3.Open;
program123 вне форума Ответить с цитированием
Старый 09.12.2009, 19:17   #3
Gapro
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 256
По умолчанию

Не помогает,
Код:
FindQuery3.Open;
нужно поставить перед началом моего кода?
Gapro вне форума Ответить с цитированием
Старый 09.12.2009, 19:21   #4
program123
Подтвердите свой е-майл
 
Регистрация: 12.02.2009
Сообщений: 144
По умолчанию

а так:
Код:
 FindQuery3.close;
 FindQuery3.SQL.Clear;
 FindQuery3.SQL.Add('SELECT Город, ');
 FindQuery3.SQL.Add('COUNT(Город) ');
 FindQuery3.SQL.Add('FROM klient');
 FindQuery3.SQL.Add('WHERE Страна=''+Edit1.Text+''');
 FindQuery3.SQL.Add('GROUP BY Город');
 FindQuery3.Open;
program123 вне форума Ответить с цитированием
Старый 09.12.2009, 19:26   #5
Gapro
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 256
По умолчанию

Но, только первый раз сработало, сейчас снова ошибку выдает %(

Помогите плиз, а то я уже и за монитор свой боюсь...

Последний раз редактировалось Gapro; 09.12.2009 в 19:41.
Gapro вне форума Ответить с цитированием
Старый 09.12.2009, 20:36   #6
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

а так:
Код:
 FindQuery3.SQL.Add('WHERE Страна='''+Edit1.Text+''');
soleil@mmc вне форума Ответить с цитированием
Старый 09.12.2009, 22:24   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Или
Код:
FindQuery3.SQL.Add('WHERE Страна=QuotedStr(Edit1.Text))
Sparky (см. ниже) абсолютно прав, у меня тоже это вызывает недоумение...
Почему не написать:
Код:
FindQuery3.SQL.Text:='SELECT Город, COUNT(Город) FROM klient WHERE Страна='+QuotedStr(Edit1.Text)+' GROUP BY Город';
Тогда и
Код:
FindQuery3.SQL.Clear;
совершенно не нужно.

Последний раз редактировалось mihali4; 10.12.2009 в 17:15.
mihali4 вне форума Ответить с цитированием
Старый 10.12.2009, 14:38   #8
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

Извините, а откуда вообще привычка вот так писать?
Код:
FindQuery3.SQL.Add('SELECT Город, ');
 FindQuery3.SQL.Add('COUNT(Город) ');
 FindQuery3.SQL.Add('FROM klient');
 FindQuery3.SQL.Add('WHERE Страна=''+Edit1.Text+''');
 FindQuery3.SQL.Add('GROUP BY Город');
Ну как-то вообще не смотрится, и вам не лень каждый раз писать?
Единственное, что ограничивает полет мысли программиста-компилятор

Последний раз редактировалось mihali4; 10.12.2009 в 17:16.
Sparky вне форума Ответить с цитированием
Старый 10.12.2009, 17:14   #9
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

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

Последний раз редактировалось mihali4; 25.12.2009 в 13:11.
soleil@mmc вне форума Ответить с цитированием
Старый 12.12.2009, 20:06   #10
Toky
Пользователь
 
Регистрация: 16.09.2009
Сообщений: 19
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
офф
я даже видел в продакшене проджект, в котором весь код такой
обычно за такое ататат делают
Ну так как правильно написать?
Toky вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает SQL Monitor Lion-Tiger БД в Delphi 1 02.06.2009 10:43
Не работает SQL запрос Всеслав БД в Delphi 8 27.05.2009 20:09
Библиотека НЕ работает с 2008, но работает с 2000 SQL namenike Общие вопросы C/C++ 0 26.05.2009 11:04
Не работает MS-SQL-запрос pkv БД в Delphi 7 01.11.2007 14:32
Не работает SQL запрос EVG44 БД в Delphi 4 21.10.2007 22:28