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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2008, 22:17   #21
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Сообщений: 103
По умолчанию

Если таблица ADO страна = ADOStrana и ADO Пилот = ADOPilot тогда получается

Код:
'SELECT tPilot.*, tItog.*
FROM tPilot LEFT JOIN(SELECT tEtap.*, tProh.* FROM tEtap
LEFT JOIN 
tProh on tEtap.id = tProh.IDEtap
WHERE tEtap.IDStrana = ' + ADOStrana.FieldByName('ID').AsString +') AS tItog ON tPilot.id = tItog.IDPilot
WHERE tPilot.id = ' + ADOPilot.FieldByName('ID').AsString
Или можно DBGrid1.Fields[0].AsString только индекс надо указать поля ID

Или установить парамеры в в ADOQuery где выполняется запрос, ADOQuery.Parameters, а в запросе :<Имя параметра>


А может лучше просто установить фильтр на таблицу этапы?

Последний раз редактировалось AlexandrSid; 22.05.2008 в 16:09.
AlexandrSid вне форума Ответить с цитированием
Старый 22.05.2008, 09:33   #22
Speeker
Форумчанин
 
Аватар для Speeker
 
Регистрация: 01.12.2006
Сообщений: 241
По умолчанию

Проверь что у тебя пишеться в запрос. Все должно работать. Віведи скажем мемо на форму и после формирования запроса посматри что у тебя формирует програма
Програмисты - единственные люди, которым платят за исправления их же ошибок
Speeker вне форума Ответить с цитированием
Старый 22.05.2008, 15:22   #23
Tanuska___:)
Пользователь
 
Аватар для Tanuska___:)
 
Регистрация: 22.04.2008
Сообщений: 84
По умолчанию

кстати можно спросить как должен работать данный оператор в запросах
значение =: значение1 ,
потому как у меня тоже при использовании данного синтексиса появляется ошибка "неправильно определен объект parameter"
Tanuska___:) вне форума Ответить с цитированием
Старый 22.05.2008, 16:09   #24
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Сообщений: 103
По умолчанию

После : сразу идет имя параметра без пробелов
AlexandrSid вне форума Ответить с цитированием
Старый 05.06.2008, 05:00   #25
Chel
Пользователь
 
Регистрация: 21.05.2008
Сообщений: 22
По умолчанию

в итоге получился след код:
Код:
With ADOQuery5 do begin
     Close;
     SQL.Clear;
    With Parameters.AddParameter do
       begin
         Name:= 'idStrana';
         DataType:=ftInteger;
         Value:=1;
        end;
        With Parameters.AddParameter do
        begin
            Name:= 'idCar';
            DataType:=ftInteger;
            Value:=3;
        end;
        SQL.Add('select PR.* from Prohojdenie PR inner join Etapy E on E.[Код_этапа]=PR.[Код_этапа]');
        SQL.Add('inner join Car C on C.[№_машины]=E.[№_машины]');
        SQL.Add('left join Strana S on S.[Код_стр]=E.[Код_стр]');
        SQL.Add('where S.[Код_стр]=:idStrana and C.[№_машины]=:idCar');
       Open;
       ADOQuery5.Active:=true;
end;
вот только и тут пишет, что не правильно определен параметр
подскажите, плиз, в чем дело?
Chel вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста MaskEdit Фриланс 1 21.04.2008 14:27
Как оптимизировать запрос MySQL с выборкой из двух таблиц. Johnatan SQL, базы данных 6 13.04.2008 03:10
Помогите пожалуйста Rifel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 19.12.2006 14:13