Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрос со связанной таблицей 
:(
    Опции темы
this
Дата 18.3.2006, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 12.9.2005

Репутация: нет
Всего: 1



Делаю вот такой запрос:

Код

select o.*, c.NAME as name  from Orders as o, Customers c where o.STATE < 6 and c.ID = o.CUSTID order by o.CODE;


и после
Код

 qOrders.FieldByName('name').AsString
получаю сообщение об ошибке, что такого столбца('name') нету. Хотя в MySql query browser такой запрос возвращает нужный столбец. В чем может быть проблема?
Использую Zeos(впервые), MySql.
PM MAIL   Вверх
Vit
Дата 18.3.2006, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



А query открыта?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
DeadSoul
Дата 18.3.2006, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: нет
Всего: 11



Цитата(this @ 18.3.2006, 16:42 Найти цитируемый пост)
from Orders as o

Разве тут слово AS нужно?


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
this
Дата 18.3.2006, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 12.9.2005

Репутация: нет
Всего: 1



Цитата(Vit @ 18.3.2006, 19:00)
А query открыта?

Да, и возвращает все столбцы из "orders", но связанный столбец из "customers" нет.
PM MAIL   Вверх
ADAM83
Дата 23.3.2006, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 13.1.2006

Репутация: нет
Всего: нет



this,
Цитата

получаю сообщение об ошибке, что такого столбца('name') нету. Хотя в MySql query browser такой запрос возвращает нужный столбец. В чем может быть проблема?

Зачем тебе псевдоимя столбца? используй как есть. А не пробовал написать так
Код

var s:string;
...
qOrders.Close;
qOrders.SQL.Clear;
qOrders.SQL.Add('select o.*, c.NAME as name  from Orders o LEFT OUTER JOIN Customers c '+
'ON c.ID = o.CUSTID AND o.STATE < 6 order by o.CODE');
qOrders.Open;
s:=qOrders.FieldByName('NAME').AsString;


PM MAIL   Вверх
Pakshin A. S.
Дата 23.3.2006, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 2
Всего: 61



Цитата(this @ 18.3.2006, 16:42 Найти цитируемый пост)
В чем может быть проблема?


Если говорит, что столбца нет, но информация выводится, значит у него есть индекс... Посему почему бы нам не использовать вот это:
Код

 ShowMessage(Query1.Fields[<индекс, начиная с нуля у первого столбца>].AsString);

Добавлено @ 10:42
Через
Код

 Memo1.Lines.Clear;
 for i:=0 to Query1.FieldCount-1 do
  Memo1.Lines.Add(Query1.Fields[i].FieldName);

Мы получим (скорее всего) все имена полей в Мемо, поэтому мы сможем сравнить посимвольно то, что есть в Query и то, что мы пытаемся всунуть в FieldByName()
PM   Вверх
Dimich
Дата 24.3.2006, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 3
Всего: 7



Zeos не юзал, но есть предположение. Посмотри qOrders.Fields (или что-то подобное должно быть). Наверняка там перечислены какие либо поля, но нет "NAMES". Или очисти его вовсе или добавь туда нужные поля (NAMES).
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0506 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.