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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2011, 02:35   #1
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
Стрелка ADOQuery1.SQL.Add построение запроса

Код:
    IDstr: string;

    ADOQuery1.Active:=False;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('SELECT *');
    ADOQuery1.SQL.Add('FROM FirstTable');
    ADOQuery1.SQL.Add('Where FTCol Like "'+IDstr+'"');
    ADOQuery1.SQL.Add('FROM SecondTable');
    ADOQuery1.SQL.Add('Where STCol Like "'+IDstr+'"');
    ADOQuery1.Active:=True;
выводит страшную ошибку), из за граматических ошибок,
но не могу наити как правельно записать запрос к 2 таблицам
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 15.04.2011, 08:26   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
ADOQuery1.SQL.Add('SELECT *');
ADOQuery1.SQL.Add('FROM FirstTable F,SecondTable S');
ADOQuery1.SQL.Add('WHERE F.FTCol='''+IDstr+''' AND S.STCol='''+IDstr+'''');
upd

Возможно вам при полностью идентичной структуре таблиц подойдет и такой вариант:
Код:
ADOQuery1.SQL.Add('SELECT * FROM FirstTable WHERE FTCol='''+IDstr+'''');
ADOQuery1.SQL.Add('UNION');
ADOQuery1.SQL.Add('SELECT * FROM SecondTable WHERE STCol='''+IDstr+'''');
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 15.04.2011 в 09:31.
Аватар вне форума Ответить с цитированием
Старый 15.04.2011, 16:46   #3
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Спасибо, очень помог.
а что касаеца второго варианта, он подходит ток если полностью таблицы идентичны, или когда есть идентичные столбцы?
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 15.04.2011, 16:57   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Когда идентична структура - к-во столбцов, их положение, типы и размерность. Но это если SELECT *. Если вместо * список полей и/или выражений, то выше сказанное роли не играет, поскольку можно в этих списках приводить типы, имена, расположение к единному знаменателю. + данные будут доступны только для чтения
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 15.04.2011 в 16:59.
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить через SQL строку в таблице ADOQuery1 UNToxa БД в Delphi 2 20.03.2011 15:44
Проблема с запросом SQL ADOQuery1 UNToxa БД в Delphi 4 11.01.2011 21:46
Структура ADOQuery.SQL.Add Explosion БД в Delphi 3 17.04.2010 07:11
SQL.add Grom48 БД в Delphi 2 13.12.2009 16:42
Удаление строки с помощью SQL запроса (Query1.SQL.ADD('Delete....')) Schutze Помощь студентам 6 29.11.2009 22:15