Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
Владий   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.011 c
6-43746
E1
2004-01-09 02:38
2004.03.14
Отвлеченная: Проблема работы ICQ через маскарадинг NATD


14-43815
Феликс
2004-02-22 18:44
2004.03.14
Просьба подсказать программу для торговой фирмы.


14-43894
RealRascal
2004-02-16 06:22
2004.03.14
Идеи...


7-43927
Mihin
2003-12-25 08:29
2004.03.14
Печать в текстовом режиме


8-43695
Sceleton
2003-11-10 08:07
2004.03.14
Как дать имя хранителю экрана.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский