Помощь с запросом (adoquery)

545
.
♪♪♪ЗвЭрЪ ЙА♪♪♪
всем привет давно я сюда не заходил) нужна помощь с запросом.
Есть у меня таблица с id, date1, date2, res. Мне нужно запросом в цикле обновить каждую строчку(res присвоить date2 - date1 .так каждое поле). мозги както не варят)
Заранее спасибо)
.
Light in Night
# Vl@dimir (04.07.2014 / 15:35)
всем привет давно я сюда не заходил) нужна помощь с запросом.
Есть у меня таблица с id, date1, date2, res. Мне нужно запросом в цикле обновить каждую строчку(res присвоить date2 - date1 .так каждое
UPDATE `table` SET `table`.`res` = `table`.`date2` where `table`.`id` = `table`.$id
Что-то типа такого. Просто не совсем до конца понял, что ты обновить хочешь и как.
.
♪♪♪ЗвЭрЪ ЙА♪♪♪
я ячейке res хочу присвоить разницу двух полей: data 2 и data1
.
MoD
Light in Night
# Vl@dimir (04.07.2014 / 16:07)
я ячейке res хочу присвоить разницу двух полей: data 2 и data1
Ну и юзай значит
mysql_query("UPDATE `table` SET `res` = (`date2` -`date1`) where `id` = '$id';");
.
♪♪♪ЗвЭрЪ ЙА♪♪♪
в adoquery такое не прокатит
.
Light in Night
Vl@dimir, А по аналогии сделать не судьба?
.
♪♪♪ЗвЭрЪ ЙА♪♪♪
уже условие изменилось. Нужно от текущей даты отнимать date, переводить в дни и записывать в res. Или что-то придумать с вычисляемыми полями
.
Light in Night
Для начала вытащи date.
ADOQuery1.Active := false;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT *');
ADOQuery1.SQL.Add('FROM table');
ADOQuery1.SQL.Add('WHERE id=:id');
ADOQuery1.Active := true;
ADOQuery1.FieldByName('date').AsString;

Потом, соответственно, найди разницу с текущим временем(difference), переведи в дни (не буду искать как, однозначно можно, есть же strtodate) и запиши в поле.
ADOQuery1.SQL.Add('UPDATE table SET res=:difference WHERE id=:id');


Ну, думаю, общую концепцию ты понял. Могу и ошибиться где-то, ибо не знаток ADOQuery.
.
♪♪♪ЗвЭрЪ ЙА♪♪♪
но тут будет проблема, если у меня 500 записей, и будет циклом все, то это 1000 запросов к бд. А на счет вычислительных полей что скажешь?
.
Light in Night
# Vl@dimir (04.07.2014 / 21:11)
но тут будет проблема, если у меня 500 записей, и будет циклом все, то это 1000 запросов к бд. А на счет вычислительных полей что скажешь?
Слушай, мне кажется немного форумом ты все же ошибся... Поспрашивай на спец.форумах. Я так вообще вот только узнал о ADOQuery. Так что, я тебе не советчик
Всего: 11