Есть небольшой вопросик.
Имеется база данных, там куча полей, одна из которых 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? Вернее. как его правильно использовать дабы базу не поломать в случае чего