Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Как правильно в SQL-запросе
Goto page Previous  1, 2
 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование отчетов в БЭСТ-5
View previous topic :: View next topic  
Author Message
dshlykov



Joined: 02 Aug 2005
Posts: 172
Location: Дмитрий Шлыков
Occupation: Компания "БЭСТ"
Interests: Москва

PostPosted: 25 Oct 2007 16:02    Post subject: Reply with quote

Марина wrote:
Код в свойстве OnActivate кнопки. MESSAGEBOX ничего не сказал, как будто не сработал!
А он и не дошел до него. Так как код написан с ошибкой. Правильный код такой:
Code:
  cSql:='select img.nnum, img.image, img.partia'+
        ' from [sclad\spartimg] as img'+
        ' inner join '+[DialogForm.DataSet1."finame"]+' as tmp'+
        ' on tmp.nnum=img.nnum and tmp.partia=img.partia';
  Query1.Sql:=cSql;
  Query1.Open;

_________________
С уважением, Дмитрий Шлыков
Компания "БЭСТ"
Back to top
View user's profile Send private message Send e-mail
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 25 Oct 2007 16:42    Post subject: Reply with quote

Теперь страшно ругается, что можно использовать только CREATE,DROP,SELECT и т п. проверила, ноименование файла попадает в датасет1 правильн
Back to top
View user's profile Send private message
dshlykov



Joined: 02 Aug 2005
Posts: 172
Location: Дмитрий Шлыков
Occupation: Компания "БЭСТ"
Interests: Москва

PostPosted: 25 Oct 2007 17:00    Post subject: Reply with quote

Марина wrote:
Теперь страшно ругается, что можно использовать только CREATE,DROP,SELECT и т п. проверила, ноименование файла попадает в датасет1 правильно
Файл лежит вне каталога базы данных БЭСТ-4+? Если да то ошибка понятна почему - мы об этом говорили выше. Если в каталоге с базой данных то как передается его имя конкретно (если можно напишите пример)?
_________________
С уважением, Дмитрий Шлыков
Компания "БЭСТ"
Back to top
View user's profile Send private message Send e-mail
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 26 Oct 2007 08:14    Post subject: Reply with quote

Теперь этот пример получился. Просто удалила cSql из словаря данных, хотя и не поняла, что там с ним могло плохого происходи
Back to top
View user's profile Send private message
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 26 Oct 2007 08:43    Post subject: Reply with quote

Давайте пожалуйста еще доконаем пример с параметрами. Пока я пишу
Code:

select nnum, image, partia
from [sclad\mdocm] as nak
where nak.numdoc=:p1 and nak.date=:p2

то все работает,
но стоит только добавить join, как все ломается
Code:

select img.nnum, img.image, img.partia
from [sclad\mdocm] as nak
where nak.numdoc=:p1 and nak.date=:p2
outer join [sclad\spartimg] as img
on nak.nnum=img.nnum and nak.partia=img.partia

Что, в случае использования параметров нельзя использовать join, или надо искать неверный синтаксис?
ругается "Unenspected token: outer: found extra tokens after enspected end of statement -- location of error in the sql statement is 108 (line1, column1)"
Back to top
View user's profile Send private message
dshlykov



Joined: 02 Aug 2005
Posts: 172
Location: Дмитрий Шлыков
Occupation: Компания "БЭСТ"
Interests: Москва

PostPosted: 26 Oct 2007 09:45    Post subject: Reply with quote

Добрый день!
Марина wrote:

но стоит только добавить join, как все ломается
Code:

select img.nnum, img.image, img.partia
from [sclad\mdocm] as nak
where nak.numdoc=:p1 and nak.date=:p2
outer join [sclad\spartimg] as img
on nak.nnum=img.nnum and nak.partia=img.partia
Я так понимаю, что ошибка в тексте запроса:
1. Описание таблиц делается в опции FROM, а не WHERE.
2. Опиця OUTER может использоватся только вместе с опциями LEFT или RIGHT.
По этому ваш запрос должен иметь вид:
Code:
select img.nnum, img.image, img.partia
from [sclad\mdocm] as nak LEFT outer join [sclad\spartimg] as img
on nak.nnum=img.nnum and nak.partia=img.partia
where nak.numdoc=:p1 and nak.date=:p2

_________________
С уважением, Дмитрий Шлыков
Компания "БЭСТ"
Back to top
View user's profile Send private message Send e-mail
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 26 Oct 2007 10:01    Post subject: Reply with quote

Марина wrote:

Code:

select img.nnum, img.image, img.partia
from [sclad\mdocm] as nak
where nak.numdoc=:p1 and nak.date=:p2
outer join [sclad\spartimg] as img
on nak.nnum=img.nnum and nak.partia=img.partia



А что должен делать этот код?
Back to top
View user's profile Send private message
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 26 Oct 2007 10:38    Post subject: Reply with quote

Большое Вам спасибо, теперь все стало поня
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование отчетов в БЭСТ-5 All times are GMT + 4 Hours
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru