Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.14;
Скачать: CL | DM;

Вниз

Помогите найти причину - где у меня проблема, кроме головы?   Найти похожие ветки 

 
Владий ©   (2004-02-12 16:25) [0]

Запрос вида

SELECT Payments.*, LastCoursEUR.Cours*Payments.Sum AS SumPlanRub, Polices.*
FROM Polices INNER JOIN (LastCoursEUR INNER JOIN Payments ON LastCoursEUR.Val=Payments.Val) ON Polices.P_Num=Payments.Police
WHERE ((Payments.Val)="EUR") And (Month(Payments.Date)=Month(Now())) And (Year(Payments.Date)=Year(Now()))
Union
SELECT Payments.*, LastCoursUSD.Cours*Payments.Sum AS SumPlanRub, Polices.*
FROM Polices INNER JOIN (LastCoursUSD INNER JOIN Payments ON LastCoursUSD.Val=Payments.Val) ON Polices.P_Num=Payments.Police
WHERE ((Payments.Val)="USD") And (Month(Payments.Date)=Month(Now())) And (Year(Payments.Date)=Year(Now()))
UNION
SELECT Payments.*, Payments.Sum AS SumPlanRub, Polices.*
FROM Polices INNER JOIN Payments ON Polices.P_Num=Payments.Police
WHERE ((Payments.Val)="RUB") And (Month(Payments.Date)=Month(Now())) And (Year(Payments.Date)=Year(Now()));


Работает как надо... Патыюсь месяц и год взять в качестве переменных. По кнопке:

procedure TMainForm.RepMonthBuildClick(Sender: TObject);
var
m, y: string;
begin
m:=MonthMonth.Text;
y:=MonthYear.Text;

MonthPolQ.Active := false;

MonthPolQ.SQL.Clear;
MonthPolQ.SQL.Add(" SELECT Payments.*, LastCoursEUR.Cours*Payments.Sum AS SumPlanRub, Polices.* "+
"FROM Polices INNER JOIN (LastCoursEUR INNER JOIN Payments ON LastCoursEUR.Val=Payments.Val) ON Polices.P_Num=Payments.Police "+
"WHERE Payments.Val = """EUR""" And (Month(Payments.Date)="""+m+""") And (Year(Payments.Date)="""+y+""") "+
"Union SELECT Payments.*, LastCoursUSD.Cours*Payments.Sum AS SumPlanRub, Polices.* "+
"FROM Polices INNER JOIN (LastCoursUSD INNER JOIN Payments ON LastCoursUSD.Val=Payments.Val) ON Polices.P_Num=Payments.Police "+
"WHERE ((Payments.Val)="""USD""") And (Month(Payments.Date)="""+m+""") And (Year(Payments.Date)="""+y+""") "+
"UNION SELECT Payments.*, Payments.Sum AS SumPlanRub, Polices.* "+
"FROM Polices INNER JOIN Payments ON Polices.P_Num=Payments.Police "+
"WHERE ((Payments.Val)="""RUB""") And (Month(Payments.Date)="""+m+""") And (Year(Payments.Date)="""+y+""" )");

MonthPolQ.Active := true;
end;

В таком вариант ругается - мон перед EUR должна быть ")",
Если сделать ""Eur"", то не ругается, но ничего и не выводит...

Пжаста - вправьте мен могги в нужную сторону - что сделать, чтоб работало?...

Хорошей Удачи!
Владий // ICQ: 74659886


 
Владий ©   (2004-02-12 16:26) [1]

Прошу прощения за очепятки...
PS. " " EUR " ", не в ковычках...


 
Fay ©   (2004-02-12 16:28) [2]

""" <> ""


 
Владий ©   (2004-02-12 16:32) [3]

Тогда ругается

[Error] Undeclared identifier: "EUR"

Хорошей Удачи!
Владий // ICQ: 74659886


 
Sandman25 ©   (2004-02-12 16:37) [4]

[3] Владий © (12.02.04 16:32)

Все кавычки из запроса 1 заменяются на двойные кавычки, если они находятся в строковой константе
... from "eur" = ... заменяется на ... + "from ""eur"" =" + ...


 
Владий ©   (2004-02-12 16:54) [5]

Не ругается... но и не работает... =(((


 
Sandman25 ©   (2004-02-12 17:00) [6]

Значит, нет таких данных.
Или при замене кавычек на 2 кавычки Вы допустили ошибку...
После всех присвоений сделайте, например так
Memo1.Text := Query1.Sql.Text и посмотрите, что же у Вас там записалось


 
Соловьев ©   (2004-02-12 17:04) [7]

не пойму, почему народ отказывается использовать AnsiQuotedStr?


 
Sandman25 ©   (2004-02-12 17:07) [8]

[7] Соловьев © (12.02.04 17:04)

Я, например, не вызываю AnsiQuotedStr с константами, потому что это приводит к вызову функции в run-time. Вот если бы Delphi могла это дело заменять еще при компиляции, тогда бы вызывал.
А так вызываю только с переменными.


 
Соловьев ©   (2004-02-12 17:12) [9]

а Format? очень удобная штука


 
Sandman25 ©   (2004-02-12 17:15) [10]

[9] Соловьев © (12.02.04 17:12)

Кто же спорит? Особенно если выражение для select считывается из ini-файла :)


 
ЮЮ ©   (2004-02-13 04:09) [11]

Month(Payments.Date) - очевидно, цедое число, поэтому всякие кавычки - лишние, достаточно
" ... And (Month(Payments.Date)=" + m + ") And ..."



Страницы: 1 вся ветка

Текущий архив: 2004.03.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
3-43381
Sergey-ZZZ
2004-02-14 12:15
2004.03.14
Фильтр на DataSet


14-43772
Beria
2004-02-17 06:49
2004.03.14
С чего начать делать игру? - КОНЕЧНО С ВЫБОРА СРЕДЫ!!


3-43349
Drozdov A
2004-02-16 14:13
2004.03.14
Select * from table1 order by pole1


1-43677
Mishenka
2004-03-01 00:16
2004.03.14
Кодировка Dos в RichEdit???


7-43914
Zhirnov Maxim
2003-12-17 22:58
2004.03.14
Как протоколировать изменения в файловой системе