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

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

Помогите с SQL запросом в ADO


Rauf ©   (2004-03-04 08:21:00) 

Если имеется 2 таблицы, в которых присутствуют поля с одинаковыми названиями, то как их отличать в запросе SQL, точнее не запросе, а TADOCommand???


sniknik   (2004-03-04 10:39:00) [1]

Rauf ©   (04.03.04 10:26) [6]
> Ой извините, такой тоже не проходит
попробуй взять в качестве алиаса незарезервированные слова (неуказан движок но наверняка одно из двух будет зарезервированным почти в любом)

Rauf ©   (04.03.04 10:28) [7]
> А нельзя без этих алиасов???
> Если много полей, то это извините неудобно!!!
а сам то сможеш отличить? и если да то по какому признаку? вот у меня есть две таблицы там поля bar и bar скажи мне в какой (table1, table2) какое? (порядок и первичность назначения в sql а значит и здесь роли ни имеет). так как скажеш?


Asdor   (2004-03-04 10:32:00) [2]

Можно и без алиасов, но тогда надо самому смотреть, как в каждом конкретном случае СУБД разрешит конфликт имен...


Rauf   (2004-03-04 10:28:00) [3]

А нельзя без этих алиасов???
Если много полей, то это извините неудобно!!!


Rauf   (2004-03-04 10:26:00) [4]

Ой извините, такой тоже не проходит
select * from Table1 Main, Table2 Language where Main.LangID=Language.ID


Asdor   (2004-03-04 10:22:00) [5]

Select A.Field1 as A_FIELD1,
      B.Field1 as B_FIELD1
From Table1 A,
    Table2 B
Where A.LangID=B.ID

А потом просто обращаешься:
ADODataset1.FieldByName('A_FIELD1').AsString
ADODataset1.FieldByName('B_FIELD1').AsString.


SPIRIT   (2004-03-04 10:20:00) [6]

lol


Nikolay M.   (2004-03-04 10:18:00) [7]


> select * from Table1.Main, Table2.Languagewhere Main.LangID=Language.ID

Это откуда такой синтаксис?


Rauf   (2004-03-04 10:17:00) [8]

Я не совсем верно выразился, мне может понадобиться и в тексте комманды выбирать поля с одинаковыми именами с разных таблиц, но кроме того еще и в при взятии значения через TADODataSet.
Но при использовании запроса
select * from Table1.Main, Table2.Language where Main.LangID=Language.ID
Выводит эксепшн Could find input table or query Table1.
База сама находится MSACCESS'е.
Кроме того как считывать значения с таких "одинаковых" полей.
Так ADODataSet1.FieldByName( 'Main.Name' ).AsString?


BoxTer   (2004-03-04 09:08:00) [9]

используй префиксы:

select A.Field1 from Table1 A, Table2 B
where A.Id=B.Id


Наверх

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