Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Delphi

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 23.04.2008, 09:24   #1
Неактивный пользователь
 
Пол:Мужской
Регистрация: 04.03.2007
Сообщений: 21
Репутация: 1
Arrow Простой вопрос, но нет ответа...

Есть таблицы Т1 и Т2, связанные между собой Query.

SELECT * FROM T1

Использую CalcField
DM.TableVsego.Value:=TableOstatok.AsFloat+TablePri hod.AsFloat;

Работает или Query или CalcField.
При вводе данных в DBGrid выводится сообщение Stack overflow.

Как исправить это?
Что я не так сделал?
Artispro вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: Мебельный магазин: столы кухонные стеклянные - Переходи на сайт!yandex gpt apiбудут ли ледовое шоу в хабаровске - redkassa.ruМебельный магазин: гуд лакк - Переходи на сайт!интеграция озон с вайлдберриз


Старый 23.04.2008, 23:45   #2
Dumpil
Неактивный пользователь
 
Пол:Мужской
Регистрация: 07.04.2008
Сообщений: 45
Репутация: 12
По умолчанию Ответ: Простой вопрос, но нет ответа...

А что ты хотел при открытом DataSet'e пытаешься добавить поля?
Скажи а что тебе мешает добавить это поле в самом запросе?

Типа: SELECT T1.Ostatok,T1.Prihod, (T1.Prihod+T1.Ostatok) as Vsego FROM T1
Dumpil вне форума
 
Ответить с цитированием Вверх
Старый 29.04.2008, 09:10   #3
BenGun
Неактивный пользователь
 
Регистрация: 06.12.2007
Сообщений: 6
Репутация: 3
По умолчанию Ответ: Простой вопрос, но нет ответа...

при открытом датасете добавлять вычисляемые поля сам бог велел (нафиг они еще нужны? или на дизайнтайме свет клином сошелся?)
Делаем так: связку DataSource1 + DbGrid1 создаем в дизайнтайме. Заводим обработчик OnCalcFields

procedure TForm1.MyCalcFields(DataSet: TDataSet);
var
Calc, Fld: TField;
begin
Fld := DataSet.FieldByName('Weight');
Calc := DataSet.FieldByName('Calc');
if Assigned(Calc) and Assigned(Fld) then // это на всякий случай. можно убрать
Calc.AsFloat := Fld.AsFloat * 2;
end;

затем выполняем процедуру
procedure Form1.a;
var
Q: TQuery;
Fld: TField;
i: Integer;
begin
Q := TQuery.Create(Database1);
Q.DatabaseName := Database1.DatabaseName;
Q.SQL.Text := 'select Weight from Animals';
Q.OnCalcFields := Query1CalcFields;
Q.Prepare;
Q.FieldDefs.Updated := false;
Q.FieldDefs.Update;
for i := 0 to Q.FieldDefs.Count - 1 do
if Q.FindField(Q.FieldDefs[i].Name) = nil
then Q.FieldDefs.Items[i].CreateField(Q);
Fld := TFloatField.Create(Q);
with Fld do
begin
FieldKind := fkCalculated;
FieldName := 'Calc';
DisplayLabel := 'this is Calc!';
Visible := True;
DataSet := Q;
end;

DataSource1.DataSet := Q;
Q.Open;
end;

а путь

SELECT T1.Ostatok,T1.Prihod, (T1.Prihod+T1.Ostatok) as Vsego FROM T1

еретичен, ибо тянет лишнее на клиента
BenGun вне форума
 
Ответить с цитированием Вверх
Старый 29.04.2008, 11:42   #4
BenGun
Неактивный пользователь
 
Регистрация: 06.12.2007
Сообщений: 6
Репутация: 3
По умолчанию Ответ: Простой вопрос, но нет ответа...

забыл сказать, что Database1.AliasName = 'DbDemos', что в данном примере тоже было проделано в дизайнтайме
BenGun вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод Яндексом ответа на запрос panadol Раскрутка вебсайта 1 20.01.2009 23:32
Простой вопрос по ssh wolx UNIX, Linux, MacOs для PC и другие ОС 19 27.08.2007 17:11
самый простой вопрос! Plush Windows XP 6 13.03.2007 10:43
WordPad нет ответа shatuna Архив 8 20.11.2006 13:52

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 14:01. Часовой пояс GMT +3.


Copyright ©2004 - 2026 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.04106 секунды с 13 запросами