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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 26.05.2009, 07:32   #1
LIEN
Пользователь
 
Регистрация: 26.04.2008
Сообщений: 44
По умолчанию ADO Query

Всем доброго времени суток!)))

Вот у меня есть дбгрид отображающий таблицу базы данных... в нем несколько полей и последнее отображает общую сумму за работы!
а мне на эту сумму надо накинуть НДС!
я хочу вывести общую сумму с учетом НДС в Edit!

Попробывала ввести следующий код
Edit1.Text:=ADOTable3.FieldByName(' Общая цена').AsFloat*0.18;
но он ругается, говорит что несовместимы типы String / Extended!

Подскажите пожалуйста что делать, а то я не особо сильна в делфе!

Последний раз редактировалось LIEN; 27.05.2009 в 06:22.
LIEN вне форума
Старый 26.05.2009, 07:48   #2
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

Edit1.Text:=FloatToStr(ADOTable3.FieldByName(' Общая цена').AsFloat*0.18);
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.
Andrei вне форума
Старый 26.05.2009, 07:52   #3
LIEN
Пользователь
 
Регистрация: 26.04.2008
Сообщений: 44
По умолчанию

Спасибки!))

А вот еще вопросик! Мне в моей БД надо задать параметры обновления, чтоб при вводе новых данных все персчитывалось и выводилось...
Проблема в том что SQL запросами я не работала....
Код написала такой:

Код:
ADOQuery2.Close;
ADOQuery2.Parameters.ParamByName('[k]').Value:=ADOTable2.FieldByName('Код').AsInteger;
ADOQuery2.Open;
ADOTable2.edit;
ADOTable2.FieldByName('Цена за материалы').AsFloat:=ADOTable2.FieldByName('Цена за единицу').AsFloat*ADOTable2.FieldByName('Количество').AsFloat;
ADOTable2.Post;
ADOQuery2.Close;
в SQL запросе написала следующее:

Код:
SELECT Sum([Материалы]!Количество*[Материалы]!Цена за единицу) AS [Цена за материалы]
FROM [Материалы]
GROUP BY [Материалы]
HAVING (([Материалы])=([k]));
При запуске он ругается на ошибку синтаксиса (пропущен оператор) в

Sum([Материалы]!Количество*[Материалы]!Цена за единицу)

Последний раз редактировалось Stilet; 26.05.2009 в 10:31.
LIEN вне форума
Старый 26.05.2009, 10:37   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А если убрать [Материалы]!, оставив только имена полей?
И имена в [] заключить
I'm learning to live...
Stilet вне форума
Старый 26.05.2009, 10:38   #5
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

попробуй в запросе "Цена за единицу" взять в квадратные скобки ...
т.е.
Код:
SELECT Sum([Материалы]!Количество*[Материалы]![Цена за единицу]) AS [Цена за материалы]
FROM [Материалы]
GROUP BY [Материалы]
HAVING (([Материалы])=([k]));
Это по синтаксису SQL имена полей с пробелами нужно брать в квадратные скобки
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума
Старый 26.05.2009, 10:41   #6
LIEN
Пользователь
 
Регистрация: 26.04.2008
Сообщений: 44
По умолчанию

Помогло Kotofff !!!!))
LIEN вне форума
Старый 27.05.2009, 06:27   #7
LIEN
Пользователь
 
Регистрация: 26.04.2008
Сообщений: 44
Восклицание

Опять все не ладно..((

вот у меня есть код:

ADOQuery2.Close;
ADOQuery2.Parameters.ParamByName('[k]').Value:=ADOTable2.FieldByName('Ко д').AsInteger;
ADOQuery2.Open;
ADOTable2.edit;
ADOTable2.FieldByName('Цена за материалы').AsFloat:=ADOTable2.Fiel dByName('Цена за единицу').AsFloat*ADOTable2.FieldBy Name('Количество').AsFloat;
ADOTable2.Post;
ADOQuery2.Close;

ADOQuery1.Close;
ADOQuery1.Parameters.ParamByName('[k]').Value:=ADOTable1.FieldByName('Ко д').AsInteger;
ADOQuery1.Open;
ADOTable1.edit;
ADOTable1.FieldByName('Общая цена').AsFloat:=ADOTable1.FieldByNa me('Цена работ').AsFloat+ADOTable2.FieldByNa me('Цена за материалы').AsFloat;
ADOTable1.Post;
ADOQuery1.Close;

ADOQuery3.Close;
ADOQuery3.Parameters.ParamByName('[k]').Value:=ADOTable3.FieldByName('Ко д').AsInteger;
ADOQuery3.Open;
ADOTable3.edit;
ADOTable3.FieldByName('Общая цена').AsFloat:=ADOTable1.FieldByNa me('Общая цена').AsFloat;
ADOTable3.Post;
ADOQuery3.Close;



Для каждой Query прописано следующее
ADOQuery1:
SELECT Sum([Материалы]!Количество*[Материалы]![Цена за единицу]) AS [Цена за материалы]
FROM [Материалы]
GROUP BY [Материалы]
HAVING (([Материалы])=([k]));

ADOQuery2:
SELECT Sum([Объект строительства]![Цена работ]*[Материалы]![Цена за материалы]) AS [Общая цена]
FROM ([Материалы], [Объект строительства])
GROUP BY ([Материалы], [Объект строительства])
HAVING (([Материалы], [Объект строительства])=([k]));

ADOQuery3:
SELECT ([Объект строительства]![Общая цена]) AS [Общая цена]
FROM [Объект строительства]
GROUP BY [Объект строительства]
HAVING ([Объект строительства] = [k]);

А при расчете он мне выдает ошибку синтаксиса в операции JOIN!!!!!

что это? я ведь JOIN даже не использовала!
Помогите пожалуйтса разобраться! Заранее благодарна!
LIEN вне форума
Старый 27.05.2009, 07:51   #8
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Приведи полностью что пишет при ошибке: весь текст самой ошибки.

И еще по ходу вопрос: вот ты пишешь ....
Код:
Для каждой Query прописано следующее
ADOQuery1:
SELECT Sum([Материалы]!Количество*[Материалы]![Цена за единицу]) AS [Цена за материалы]
.... где именно это у тебя прописано ? Просто из приведенного кода непонятно ...
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума
Старый 27.05.2009, 09:10   #9
LIEN
Пользователь
 
Регистрация: 26.04.2008
Сообщений: 44
По умолчанию

А! это прописано в SQL для каждой Query!
а полный текст ошибки вот:
Project Project1.exe raised exception class EOIeException with message 'Ошибка синтаксиса в операции JOIN'.
LIEN вне форума
Старый 27.05.2009, 09:54   #10
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Попробуй так : (красным - изменения)
Код:
ADOQuery2.Close;
ADOQuery2.Parameters.ParamByName('k').Value:=ADOTable2.FieldByName('Код').AsInteger;
ADOQuery2.Open;
ADOTable2.edit;
ADOTable2.FieldByName('Цена за материалы').AsFloat:=ADOTable2.Fiel dByName('Цена за единицу').AsFloat*ADOTable2.FieldBy Name('Количество').AsFloat;
ADOTable2.Post;
ADOQuery2.Close;

ADOQuery1.Close;
ADOQuery1.Parameters.ParamByName('k').Value:=ADOTable1.FieldByName('Код').AsInteger;
ADOQuery1.Open;
ADOTable1.edit;
ADOTable1.FieldByName('Общая цена').AsFloat:=ADOTable1.FieldByNa me('Цена работ').AsFloat+ADOTable2.FieldByNa me('Цена за материалы').AsFloat;
ADOTable1.Post;
ADOQuery1.Close;

ADOQuery3.Close;
ADOQuery3.Parameters.ParamByName('k').Value:=ADOTable3.FieldByName('Код').AsInteger;
ADOQuery3.Open;
ADOTable3.edit;
ADOTable3.FieldByName('Общая цена').AsFloat:=ADOTable1.FieldByName('Общая цена').AsFloat;
ADOTable3.Post;
ADOQuery3.Close;



Для каждой Query прописано следующее
ADOQuery1:
SELECT Sum([Материалы]!Количество*[Материалы]![Цена за единицу]) AS [Цена за материалы]
FROM [Материалы]
GROUP BY [Материалы]
HAVING (([Материалы])=(:k);

ADOQuery2:
SELECT Sum([Объект строительства]![Цена работ]*[Материалы]![Цена за материалы]) AS [Общая цена]
FROM ([Материалы], [Объект строительства])
GROUP BY ([Материалы], [Объект строительства])
HAVING (([Материалы], [Объект строительства])=(:k);

ADOQuery3:
SELECT ([Объект строительства]![Общая цена]) AS [Общая цена]
FROM [Объект строительства]
GROUP BY [Объект строительства]
HAVING ([Объект строительства] = (:k);
Просто когда работаешь с параметрами нужно примерно так ...
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос данных из DBGrid в DBGrid KingSize БД в Delphi 17 24.04.2009 09:30
Сохранить DBGrid и Edit в файл (Delphi) Nair Помощь студентам 1 27.09.2008 09:38
из DBGrid в Edit nevo БД в Delphi 4 24.04.2008 16:03
Edit! Abbatik Помощь студентам 7 25.11.2007 15:39