Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.07.22;
Скачать: [xml.tar.bz2];

Вниз

QUERY-SQL   Найти похожие ветки 

 
Alex8   (2007-06-28 12:30) [0]

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

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

 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 - первый в списке полей.

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


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


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

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

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


 
pavel_guzhanov ©   (2007-06-28 12:36) [2]


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

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


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

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

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


 
Anatoly Podgoretsky ©   (2007-06-28 14:55) [4]

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

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


 
homm ©   (2007-06-28 14:56) [5]

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

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


 
Alex8   (2007-06-28 15:03) [6]

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

Так как решить проблему?


 
Плохиш ©   (2007-06-28 15:18) [7]


> А пользуюсь я им, чтобы получить русские заголовки
> граф в Гриде из DisplayLabel, т.к.  AS в SELECT

Это что ли проблема? Так и присвой заголовки столбцам в гриде, вся информация есть в справке...


 
Johnmen ©   (2007-06-28 15:18) [8]

Заведи массив соответствия настоящих имен полей и отображаемых.
После получения набора данных проходи по коллекции полей и подставляй DisplayLabel.


 
Anatoly Podgoretsky ©   (2007-06-28 15:47) [9]

> Alex8  (28.06.2007 15:03:06)  [6]

Тебе уже ответили


 
Alex8   (2007-06-29 08:26) [10]

Все понял. Спасибо.
Только возник дополнительный вопрос.
Если редактор полей в Query д.б. пустым, то
где он может использоваться ?


 
Johnmen ©   (2007-06-29 09:20) [11]

Где угодно. Кроме как на полевых работах...


 
ЮЮ ©   (2007-06-29 09:54) [12]

Он должен быть пустым в случае изменяемого в RunTime текста запроса. Если он не миняется, то может быть заполнен и настроен и в Disign-е


 
Alex8   (2007-06-29 12:02) [13]

Понятно. Прошу прощения, но у меня еще 1 вопрос.

 В Table1 есть вычисляемое поле Р1.
Если  SELECT * FROM Table1 ,
то Р1 Нормально отображается в соответствующем DBGrid,

а при SELECT Р1 FROM Table1
 выдается "Invalid field name P1 ".
Где-то портачу ?


 
homm ©   (2007-06-29 12:16) [14]

Может стоить по английски написать P1 ?


 
Плохиш ©   (2007-06-29 12:22) [15]


> Может стоить по английски написать P1 ?

Или в запросе по-русски :-)


 
Johnmen ©   (2007-06-29 12:23) [16]

Вычисляемое поле в таблице... А что за СУБД?


 
Alex8   (2007-06-29 12:41) [17]

СУБД- PARADOX.
Имя поля написано Латынью.
Р1-это условно.


 
Плохиш ©   (2007-06-29 12:53) [18]


> Р1-это условно.

Всё, счастливо оставаться...


 
homm ©   (2007-06-29 13:32) [19]

> Р1-это условно.

Крнкретный код давай, который не пашет.


 
Alex8   (2007-06-29 13:59) [20]

> Крнкретный код давай, который не пашет.

procedure TfrmAbr.btAbrClick(Sender: TObject);
Var zpr:String;
begin
//  zpr := "Select * FROM Tiz";   Здесь все проходит
 zpr := "Select Tiz.Mesto FROM Tiz";  // А здесь ошибка
 Qabr.Active := False;
 Qabr.SQL.Clear;
 Qabr.SQL.Add(zpr);
 Qabr.Active := True;
end;


 
Плохиш ©   (2007-06-29 14:14) [21]


> Alex8   (29.06.07 13:59) [20]

А я АДО верю, что у тебя поля в таблице нет.

>  Qabr.SQL.Clear;
>  Qabr.SQL.Add(zpr);

Как баран, право слово, ему всю ветку твердят, как запросы присваивать надо, а он упёрся :-(


 
Anatoly Podgoretsky ©   (2007-06-29 14:33) [22]

> Плохиш  (29.06.2007 14:14:21)  [21]

Возможно и есть, но советы он слушать не хочет.


 
Alex8   (2007-06-29 14:39) [23]

>  Как баран, право слово, ему всю ветку твердят....

 Ну ругаться-то зачем. Лучше объяснил бы в чем дело
 (если хочешь помочь).
 Для сведения (на всякий случай): Полей в Qabr нет


 
Anatoly Podgoretsky ©   (2007-06-29 14:49) [24]

> Alex8  (29.06.2007 14:39:23)  [23]

Уже объяснили, повторяться что ли?


 
Alex8   (2007-06-29 15:10) [25]

> Уже объяснили, повторяться что ли?

 Ну не надо. Не переутомляйтесь.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.07.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.04 c
15-1182495639
Serg 1968
2007-06-22 11:00
2007.07.22
Хочется понять


3-1177079096
roman_ln
2007-04-20 18:24
2007.07.22
TDBNavigator как обработать событие кнопки


15-1182203401
SerJaNT
2007-06-19 01:50
2007.07.22
Сеть...


4-1171017251
tytus
2007-02-09 13:34
2007.07.22
Как получить доступ к контролам окна?


2-1182938100
Q8
2007-06-27 13:55
2007.07.22
Поиск по Query





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский