![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.05.2010
Сообщений: 14
|
![]()
Написал код:
procedure TForm2.Button7Click(Sender: TObject); begin with dm.Query9 do begin with SQL do begin Clear; Add( 'Select Kod_tovara, Kod_firmy FROM (Tovar INNER JOIN Zakaz_tovar ON Zakaz_tovar.Kod_zakaza = Zakaz_tovar.Kod_zakaza) INNER JOIN Zakaz_firma ON Zakaz_tovar.Kod_zakaza = Zakaz_firma.Kod_zakaza WHERE Zakaz_firma.Kod_firmy = '); Add( inttostr(dm.Firma.FieldValues['Kod_firmy']) ); end; Active := true; ExecSQL; end; DBGrid3.DataSource := DM.DataSource7; end; вроде как всё правильно, но какого то хера вылетает ошибка:First chance exception at $75D49617. Exception class EDBEngineError with message 'Key violation. [Microsoft][Драйвер ODBC Microsoft Access] Не поддерживается выражение объединения.'. Process Project5.exe (4536) и указывает на ExecSQL; Объясните в чём проблема??? |
![]() |
![]() |
#2 | |||
!=
Участник клуба
Регистрация: 08.09.2008
Сообщений: 1,751
|
![]()
ну для начала не помешало бы воздержатся от ненормативной лексики.
потом 1) Цитата:
далше 2) Цитата:
3) ещё Цитата:
это TQuery? в общем Active := true; равносильно Open и для TQuery используется для открытия набора данных, т.е запроса возвращающего набор данных, ExecSQL в этом компоненте применяется для запросов изменяюих табдлицы, то есть UPDATE, DELETE, CREATE , но не SELECT. Для ADOQuery это тоже будет верно. |
|||
![]() |
![]() |
#3 |
!=
Участник клуба
Регистрация: 08.09.2008
Сообщений: 1,751
|
![]()
повтор, удалите пожалуйста
|
![]() |
![]() |
#4 |
Пользователь
Регистрация: 15.05.2010
Сообщений: 14
|
![]()
Верно, тут я хоел написать так:
'Select Kod_tovara, Kod_firmy FROM (Tovar INNER JOIN Zakaz_tovar ON Tovar.Kod_zakaza = Zakaz_tovar.Kod_zakaza) INNER JOIN Zakaz_firma ON Zakaz_tovar.Kod_zakaza = Zakaz_firma.Kod_zakaza Использую TQuery, но я незнал что ExecSQL; не испльзуется для select.. Прикрепил базу.. |
![]() |
![]() |
#5 |
!=
Участник клуба
Регистрация: 08.09.2008
Сообщений: 1,751
|
![]()
ну скорее Tovar.Kod_tovara = Zakaz_tovar.Kod_tovara
вроде тогда должно работать, единственное поле Kod_tovara может относится к 2 таблицам, нужно уточнить либо Tovar.Kod_tovara, или Zakaz_tovar.Kod_tovara |
![]() |
![]() |
#6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Мат в эфире.
Неформатирование поста. Закрываю за нарушения
I'm learning to live...
|
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
посмотрите пожалуйста | merets | Помощь студентам | 7 | 08.09.2009 23:54 |
Посмотрите пожалуйста правильно ли написана программа,если нет укажите ошибку. | Викулька | Помощь студентам | 1 | 10.12.2007 22:49 |