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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 11.03.2009, 19:03   #1
Yrok
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 16
По умолчанию Ошибка Sql запроса

Привет всем!!
Начал изучать БД--столкнулся с такой проблемой --делаю запрос
Код:
with form1.Query1 do begin
         Close; 
         SQL.Clear;
         SQL.Add('SELECT *');
         SQL.Add('FROM ":Stend:Data.db"');
         SQL.Add('WHERE');
         SQL.Add('(Number = "'+ Edit1.Text + '")');
//SQL.Add('ORDER BY Size');
         Open;
        end;
как только расскоментирую строку //SQL.Add('ORDER BY Size');--то вылетает ошибка "Invalid use of keyword" и при выборе любого поля вместо * в Select тоже приводит к ошибке
Поля в базе созданы.

Помогите новичку плиз!!!!
Yrok вне форума
Старый 11.03.2009, 19:15   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ищите, куда у вас подевалось поле SIZE.
И если оно есть, переименуйте его - что за дурная привычка давать полям имена, совпадающие с зарезервированными именами?
Вы бы еще назвали поле "SELECT"...
mihali4 вне форума
Старый 11.03.2009, 19:42   #3
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Думаю проблема в том, что пробелов не хватает между полями и поэтому текст просто сливается, то есть SQL.Add(' ORDER BY Size'), но лучше данное выражение записывать одной строкой и пользоваться для удобства функцией quotedstr, которая создает кавычки, то есть код примерно такой
with Form1.Query1 do
begin
Close;
SQL.Add('SELECT * FROM ":Stend:Data.db" WHERE Number='+quotedstr(Edit1.text)+' ORDER BY Size');
Open;
end;

Обычно примерно так прописываю для удобства, данную строку не проверял в Delphi, но должно сработать
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума
Старый 11.03.2009, 20:13   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Это не влияет. Я еще раньше проверил синтаксис именно в том виде - все работает.
Хотя сам предпочитаю немного по-другому:
SQL.Text:='SELECT * FROM ":Stend:Data.db" WHERE Number='+quotedstr(Edit1.text)+' ORDER BY Size';
Потому как в вашем варианте нужно еще добавлять
SQL.Clear;
А мою строку никто не мешает разбить на несколько для удобства. Например:
SQL.Text:='SELECT * FROM ":Stend:Data.db" WHERE Number='+
quotedstr(Edit1.text)+
' ORDER BY Size';

Последний раз редактировалось mihali4; 11.03.2009 в 20:16.
mihali4 вне форума
Старый 12.03.2009, 10:13   #5
Yrok
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 16
По умолчанию

Ребята спасибо за ответы--но к сожалению оба варианта не проходят --все та же ошибка

Насчет поля Size--пробовал вставлять другие поля --то же самое
у меня 5 полей: Number-A,Date-D;Size-A;Stend-S;Reserv-A;
В DBGrid--все поля выводятся без проблем , но вот с запросом никак--единственное поле которое принимает запрос это Number--причем и в Select и в ORDER BY --при подстановке других полей выдается ошибка.
Может я в самой базе мог что нибудь с полями наортачить????
Yrok вне форума
Старый 12.03.2009, 10:18   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Переименуйте поля, вам же сказали...
Пусть хоть MyDate, MySize, MyNumber...
Не получится - прикрепляйте сюда вашу табличку.
mihali4 вне форума
Старый 12.03.2009, 10:51   #7
Yrok
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 16
По умолчанию

mihail4--огромное Спасибо--действительно помогло--после переименования все заработало!!!!!
Yrok вне форума
Старый 12.03.2009, 18:33   #8
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

если не рассматривать траблу с именованием полей, то еще есть вариант сортировки по порядку выборки полей
order by 3
soleil@mmc вне форума
Старый 13.03.2009, 09:08   #9
Yrok
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 16
По умолчанию

Цитата:
если не рассматривать траблу с именованием полей, то еще есть вариант сортировки по порядку выборки полей
order by 3
--спасибо буду иметь ввиду
Yrok вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка выполнения sql запроса при изменении данных XATAB БД в Delphi 4 28.02.2009 15:44
Обработка SQL-запроса iid2007 Microsoft Office Access 2 10.07.2008 12:41
1С: debug SQL-запроса. crazy horse SQL, базы данных 0 05.06.2008 08:19
Некоректная работа SQL- запроса Tan БД в Delphi 4 05.04.2008 20:40