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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2007, 20:56   #1
alikon1
Пользователь
 
Регистрация: 07.10.2007
Сообщений: 22
По умолчанию SQL запрос требует ненужные поля

title:=Edit1.Text;
begin
with form1.Query1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT Title, Director, Release, Actor, Description, Lenght, May, Genre, Picture');
SQL.Add('FROM ":MyProject:base.db"');
SQL.Add('WHERE');
SQL.Add('(Title = "'+ Title + '")');
SQL.Add('ORDER BY Title, Release');
Open;
end;

Почему пока в строчку SQL.Add('SELECT - не впишу все поля из БД, будет выдаваться ошибка, например если не допишу Rate:
DBEdit8: Field 'Rate' not found.
Но Rate ведь для поиска мне не нужна.
alikon1 вне форума Ответить с цитированием
Старый 11.10.2007, 21:25   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Здорово, наверное, задавать вопрос, имея перед собой структуру таблицы и текст модуля...
А нам как быть?
Кто такой DBEdit8? Причем он тут?
Эта вот конструкция у меня тоже вызвала недоумение:
SQL.Add('FROM ":MyProject:base.db"');
Какой тип имеют поля в конструкции
SQL.Add('ORDER BY Title, Release');?

Цитата:
Данные элементов БД (Alpha) выводятся в поля DBEdit1 .. DBEdit8, плюс еще есть DBGrid1, в которой должны показываться результаты поиска.
Весьма "содержательно"...
Вроде я про другое спросил...

Последний раз редактировалось mihali4; 11.10.2007 в 21:43.
mihali4 вне форума Ответить с цитированием
Старый 11.10.2007, 21:35   #3
alikon1
Пользователь
 
Регистрация: 07.10.2007
Сообщений: 22
По умолчанию

Данные элементов БД (Alpha) выводятся в поля DBEdit1 .. DBEdit8, плюс еще есть DBGrid1, в которой должны показываться результаты поиска.
alikon1 вне форума Ответить с цитированием
Старый 11.10.2007, 23:47   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Так, кажется понял.
У вас DBEdit8 привязано к полю Rate датасета Query1?
При попытке выполнения запроса все ваши дбэдиты хотят получить от квери содержимое того поля, с которым вы их связали.
Но для DBEdit8 тут получается облом, поскольку вы для него информацию не запрашиваете.
А вам неизвестна такая конструкция:
SELECT * FROM ... ?
mihali4 вне форума Ответить с цитированием
Старый 12.10.2007, 06:48   #5
alikon1
Пользователь
 
Регистрация: 07.10.2007
Сообщений: 22
По умолчанию

Спасибо. Теперь всё отлично работает.

Только DBEdit8 привязано к полю Rate датасета Table1, а не Query1.

Последний раз редактировалось alikon1; 12.10.2007 в 06:51.
alikon1 вне форума Ответить с цитированием
Старый 12.10.2007, 09:50   #6
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

... и еще... не стоит называть поля именами, которые могут совпадать со свойствами .... Lenght, Picture и т.п. Например, имена полей Date, Time, Short, Long в FoxPro работают нормально, а в BDE при sql-запросе выкидывают ошибку. Лучше сразу делать префикс fLenght, fPicture...
_SERGEYX_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос на добавление поля в таблицу mirawoo Microsoft Office Access 9 17.07.2008 16:44
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50
Флэшка постоянно требует установки nagval Компьютерное железо 5 03.05.2008 17:00
ПОМОГИТЕ DELPHI ТРЕБУЕТ ЛИЦЕНЗИЮ Toxa Общие вопросы Delphi 5 22.03.2007 16:05