Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

QUERY-SQL [D7, XP]


Страницы:   1 2

Alex8 ©   (2007-06-28 12:30:00) 

Уважаемые мастера!
Подскажите, пожалуйста,где я ошибаюсь.

Есть форма с такими компонентами:

 DBGrid1 ( DataSource = DataSource1),
 DataSource1 (DataSet = Query1),
 Query1 ( DataBaseName = MyBD,
         SQL='SELECT * FROM Table1',
         Редактором полей включены все поля из Table1:
                                 ikod, cName и т.д.),

 Button1 (procedure buton1Click(Sender: TObject);
           Var zapros:String;
          begin
            Zapros := 'Select * From Table1';
            Query1.Active := False;
            Query1.SQL.Clear;
            Query1.SQL.Add(zapros);
            Query1.Active := True;
          end;)

В этом варианте все работает.    
Но стоит в Zapros заменить * на имя любого поля из Table1
(Например 'Select cName From Table1'), то при выполнении
оператора  Query1.Active := True; выдается ошибка
"Поле iKod не найдено ". iKod - первый в списке полей.

Не могу понять в чем дело. Спасибо


homm   (2007-06-28 14:56:00) [21]

> Никогда не используй * в запросе, разве только для тестовых целей.

Меньше знаешь, крпче спишь? :)


Anatoly Podgoretsky   (2007-06-28 14:55:00) [22]

> Alex8  (28.06.2007 14:18:03)  [3]

Никогда не используй * в запросе, разве только для тестовых целей.


Alex8   (2007-06-28 14:18:00) [23]

>Редактором полей DBGrid? Если да, то все правильно,
будет ошибка.

 Речь идет о редакторе полей в Query
А пользуюсь я им, чтобы получить русские заголовки
граф в Гриде из DisplayLabel, т.к.  AS в SELECT
не обрабатывает букву "ч" и требует заголовков из
одного слова. Kак обойти эту проблему.
Можно было бы пойти на * , чтобы сделать лишние
поля невидимыми, но в Table1 ecть вычисляемые поля.


pavel_guzhanov   (2007-06-28 12:36:00) [24]


> Редактором полей включены все поля из Table1:
>                                  ikod, cName и т.д.),

Редактором полей DBGrid? Если да, то все правильно, будет ошибка. Ты же указал, что в грид надо помещать значения всех полей, а запросом выдаешь значение только одного поля. Чтобы работало все корректно, не надо редактором полей ничего делать, очистить его надо. Тогда в гриде будут отображаться только поля, которые возвращает запрос.


Плохиш   (2007-06-28 12:32:00) [25]


> Не могу понять в чем дело. Спасибо

Дело вот в этом

>          Редактором полей включены все поля из Table1:
>                                  ikod, cName и т.д.),


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо