Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.04.2009, 15:24
mito mito вне форума
Прохожий
 
Регистрация: 11.04.2009
Сообщения: 4
Репутация: 10
По умолчанию SQL запрос в Delphi 7

Здравствуйте!
У меня есть одна проблема с которой давно уже не могу разобраться.
Почему то ни где ничего похожего не встречал ...
Помогите пожалуйста разобраться с кодом. Где моя ошибка?
Во время компиляции выходит сообщение:
Project Forma.exe raised exeption class EDatabaseError with messahe 'Query1: Field 'Name' not found'. Process stopped. Use Step or Run to continue.
Я со вчерашнего дня не могу решить эту проблему.
В компонентах Table, Query1, Query2 прописал все поля (Name, Kod, Line, A1, A2, A3, A4, Par, Lev, ID). Открываю SQL Explorer пишу SELECT * FROM ATABLE выходит вся таблица.
Вот код: {даже ShowMessage('YES'); не выходит((}
Код:
var
  Form1: TForm1;
  i, j: integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Table1.Open;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i, j:integer;
begin
for i:=3 downto 1 do
  begin
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Text:='SELECT SUM (A1) AS ASUM, PAR, LEV FROM ATABLE WHERE LEV = :LEV GROUP BY PAR, LEV ORDER BY LEV, PAR';
  Query1.Params[0].AsInteger := i;
  Query1.Open;
  ShowMessage('YES');
  end;
for j := 1 to query1.recordcount do
  begin
  ShowMessage('TUTTO');
  Query2.sql.text := 'UPDATE ATABLE SET A1=' + query1.FieldByName('ASUM').AsString + ' WHERE ID= :ID';
  Query2.Params[0].AsString := query1.FieldByName('PAR').AsString;
  Query2.ExecSQL;
  Query1.Next;
  end;
end;
Admin: Пользуемся тегами!

Программа предназначена для автоматического подсчета. Есть форма, столбцов в ней больше, но если я разберусь с одним остальное работает точно так же!
Разделил я на 3 уровня потому что именно так должно быть в итоговом отчете.
Таблица где первая запись (уровень 0) итог, (далее уровень 1) к которому относятся (ур2) и (ур3).
На пример:

1 Итог (ур 0)

2 Выплата Зарплат (ур 1)
3 Зарплата (ур 2)
4 Штатных раб-ков (ур 3)
5 Внештатных ... (ур 3)
6 Доп-ые перечисления (ур 3)
7 Добавка (ур 3)

8 Надбавка к з/п (ур 2)
9 Перечисления в фонд (ур 3)
10 Гос. страх-ие (ур 3) и т.д.

Сумма (7,6,5,4) должны сесть в (3), сумма (10,9) в (Крутой далее сумма (8,3) в (1) таких записей около 200 (в принципе не много) после суммирования всех уровней №1 получается итог который записывается в (ур 0) потом распечатка.
Дело в том что я новичок, изучаю самостоятельно, давно уже ломаю голову над этим, сложно ...
Я в начале сделал примитивно т.е. для каждого уровня отдельно таблицу, все работало. Хочу сделать нормально.

Последний раз редактировалось Admin, 12.04.2009 в 13:02.
Ответить с цитированием
  #2  
Старый 11.04.2009, 16:40
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Поскольку грубых ошибок в коде я неувидел, могу предположить, что проблема в настройках визуальных компонентов, скорее всего в одном из квери на форме есть неправильное поле. Попробуйте для всех квери на форме провести генеральную чистку полей.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 13.04.2009, 16:49
mito mito вне форума
Прохожий
 
Регистрация: 11.04.2009
Сообщения: 4
Репутация: 10
Хорошо Теперь новая проблемма ...

Большое спасибо Страдалецъ!
Я очистил список полей в Query1 и Query2, теперь половина программы работает, но появляется другая ошибка! Курсор останавливается на Query1.Next;
По идее Query2 должен вставлять вычисленное значение в базу но этого не происходит(((
Ответить с цитированием
  #4  
Старый 13.04.2009, 18:38
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Поставьте точку останова на Query2.ExecSQL; и посмотрите правильно ли у вас сформировался запрос в Query2.sql.text
У меня есть подозрение, что передаваемый вами параметр имеет неверный тип.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:20.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter