
Есть небольшой вопросик.
Имеется база данных, там куча полей, одна из которых date в формате timestamp. Нужные поля отображаются в гриде. Дату привел к "читабельному формату" чтобы нормально в DBGrid видно было:
- Код: Выделить всё
- procedure TForm1.ConnectToBase(Sender: TObject);
 begin
 try
 MySql56Conn.Connected:=true;
 except
 ShowMessage('Нет соединения с базой данных');
 end;
 try
 QueryNews.SQL.Text:='SET CHARACTER SET UTF8 ';
 QueryNews.ExecSQL;
 QueryNews.Close;
 QueryNews.SQL.Text:='SELECT *,FROM_UNIXTIME(Date) as NewsDate FROM d_post WHERE '+
 'from_unixtime(date) >= now() - interval 1 day ' +
 'ORDER BY Date DESC';
 QueryNews.Open;
 except
 ShowMessage(' Ошибка при выполнении SQL запроса.');
 MySql56Conn.Connected:=false;
 end;
 // далее разные обработки
 end;
 procedure TForm1.Approve(Sender: TObject);
 var
 NewsApprove:TDBEdit:
 begin
 NewsApprove:=TDBEdit.Create(nil);
 NewsApprove.DataSource:=DataSource1;
 NewsApprove.DataField:='Approve':
 while not SQLNews.EOF do begin
 SQLNews.Edit;
 IF NewsApprove='0' then NewsApprove:='1';
 SQLNews.Post;
 end;
 SQLNews.ApplyUpdates;
 end;
Так вот в DBGrid все показывается нормально, но при выполнении TForm1.Approve ругается что поле NewsDate не найдено.. В реальное базе его же нет, ибо оно создано в selecte, что он туда хочет записать?
В примере могут быть ошибки, пишу по памяти
И попутный вопрос, как работает SQLTransaction? Вернее. как его правильно использовать дабы базу не поломать в случае чего




