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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2011, 14:16   #1
ара
Форумчанин
 
Регистрация: 11.04.2007
Сообщений: 106
По умолчанию

Доброго времени суток! Есть БД (схема:схема.jpg). В таблице Tovarn_pozicia хранятся остатки товара по конкретной позиции. В таблицах Prochod (Raschod) соответственно, приходуется и расходуется товар. Подскажите, пожалуйста, как примерно составить запрос к БД, чтобы приходуемый товар прибавлялся к товару в таблице Tovarn_pozicia и там сохранялось новое значение.( С расходом также). Использую Delphi+Access. Заранее спс!

Наверное я не очень правильно изложил суть вопроса. Подскажите, пож., какая конструкция позволит мне сначала сложить значение в таблице Приход товара (Количество) и значение в таблице Товар(Остаток), а затем записать это значение в таблицу Товар (Остаток).?

Последний раз редактировалось artemavd; 30.04.2011 в 19:38.
ара вне форума Ответить с цитированием
Старый 30.04.2011, 19:37   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Через Insert, а связь между таблицами можно прописать в запросе и используй параметры в запросе.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 30.04.2011, 20:34   #3
ара
Форумчанин
 
Регистрация: 11.04.2007
Сообщений: 106
По умолчанию

Вы имеете ввиду DataModule1.ADOTable1.Insert ?????
ара вне форума Ответить с цитированием
Старый 01.05.2011, 06:42   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Нет, я имею ввиду:
Код:
     Form2.qry1.Close;
     Form2.qry1.SQL.Clear;
     Form2.qry1.SQL.Text:='insert into jurnal (ПОЛЯ) values(ЗНАЧЕНИЯ ПАРАМЕТРОВ)';
     Form2.qry1.Parameters.ParamByName('ЗНАЧЕНИЕ ПАРАМЕТРА').Value:=Form2.sRichEdit2.Text;
     Form2.qry1.ExecSQL;
     Form2.qry1.Close;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 01.05.2011, 13:38   #5
ара
Форумчанин
 
Регистрация: 11.04.2007
Сообщений: 106
По умолчанию

А qry1 это -
Код:
qry1: TADOQuery;
???
ара вне форума Ответить с цитированием
Старый 01.05.2011, 15:07   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да это ADOQuery.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.05.2011, 12:32   #7
ара
Форумчанин
 
Регистрация: 11.04.2007
Сообщений: 106
По умолчанию

А может в этом случае лучше использовать UPDATE? Что будет правильнее?

Еще раз здравствуйте! Возвращаюсь к моей теме. Использую Делфи + Аксес. Мне нужно написать запрос на изменение поля Ostatok в таблице Tovarn_pozicia, поле по умолчанию имеет значение 0. В данное поле надо записать сумму Ostatok и Kol-vo в таблице Prichod.
Начал писать, окончательно запутался:
Код:
procedure TPrichodForm.PrichButtonClick(Sender: TObject);
var
  qry1: TADOQuery;
begin
  qry1.close;
  qry1.SQL.Clear;
  qry1.SQL.Text:='UPDATE Prichod INNER JOIN Tovarn_pozicia ON Prichod.id_tovarn_pozicia=Tovarn_pozicia.id_tovarn_pozicia';
  qry1.SQL.Text:='SET Tovarn_pozicia.Ostatok=Prichod.Kol-vo + Tovarn_pozicia.Ostatok';
end;
Посмотрите, пожалуйста, где в запросе что добавить, что исправить, как правильно записать WHERE?
И что надо писать дальше, как указывать параметры? Заранее спасибо

Последний раз редактировалось artemavd; 13.05.2011 в 19:01.
ара вне форума Ответить с цитированием
Старый 11.05.2011, 18:15   #8
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Здравствуйте
В два раза пишите qry1.SQL.Text, вторая строка полностью заменяет текст и у Вас остаётся только 'SET Tovarn_pozicia.Ostatok=Prichod.Kol-vo + Tovarn_pozicia.Ostatok'. Тогда уж пишите полностью одной строкой или qry1.SQL.Add. Попробуйте так.
До свидания
OlegVE вне форума Ответить с цитированием
Старый 11.05.2011, 18:24   #9
ара
Форумчанин
 
Регистрация: 11.04.2007
Сообщений: 106
По умолчанию

Исправил:
Код:
procedure TPrichodForm.PrichButtonClick(Sender: TObject);
var
  qry1: TADOQuery;
begin
  qry1.close;
  qry1.SQL.Clear;
  qry1.SQL.Text:='UPDATE Prichod INNER JOIN Tovarn_pozicia ON Prichod.id_tovarn_pozicia=Tovarn_pozicia.id_tovarn_pozicia SET Tovarn_pozicia.Ostatok=Prichod.Kol-vo + Tovarn_pozicia.Ostatok';


end;
ара вне форума Ответить с цитированием
Старый 11.05.2011, 18:38   #10
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Цитата:
Сообщение от ара Посмотреть сообщение
Исправил:
Код:
procedure TPrichodForm.PrichButtonClick(Sender: TObject);
var
  qry1: TADOQuery;
begin
  qry1 := TADOQuery.Create(nil);

  qry1.ConnectionString := 'Provider=................
или
  qry1.Connection := ADOConnection1;

//  qry1.close;
//  qry1.SQL.Clear;

  qry1.SQL.Text:='UPDATE Prichod INNER JOIN Tovarn_pozicia ON Prichod.id_tovarn_pozicia=Tovarn_pozicia.id_tovarn_pozicia SET Tovarn_pozicia.Ostatok=Prichod.[Kol-vo] + Tovarn_pozicia.Ostatok';

  qry1.ExecSQL;
  qry1.Close;
  qry1.Free;
end;
Добавьте выделенное красным. НО!!! У Вас не устанавливаются в коде ни Connection ни ConnectionString ... только Вы знаете где хотите внести изменения, а qry1 не знает И упустил из вида: Вы не создаёте qry1 := TADOQuery.Create(nil);

Последний раз редактировалось OlegVE; 11.05.2011 в 18:49.
OlegVE вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить таблицу в делфи xJohnx БД в Delphi 4 14.04.2011 09:23
Как списать данные в таблицу через кнопку БД cделана с Access MikaS007 БД в Delphi 4 07.06.2010 12:46
Как добавлять данные в таблицу выведенную из ACCESS в DBGrid (Delphi ADO) Ce4kok БД в Delphi 26 26.01.2009 20:35
Как при запросе открыть таблицу Repair и добавить в неё новые данные, согласно этого листинга. TitAn БД в Delphi 2 11.06.2007 10:07
Добавить таблицу в MS ACCESS Seqular БД в Delphi 5 21.02.2007 02:14