В одном из SQL запросов(конкретно в SQLQuery1) фигурирует подключения двух ранее созданных view (Создавал их в том же файле БД при помощи SQLite). Наткнулся вот на такую штуку на вики в пункте "примечание" http://wiki.freepascal.org/Lazarus_Database_Tutorial/ru
Также возможно применение сложных операторов SQL, используя псевдонимы, объединения, представления из нескольких таблиц (помните, что они должны постоянно находится в том же файле данных), но в этом случае ApplyUpdates не будет работать. Если кто-то хочет использовать сложные запросы и применить обновления файла данных, сообщите мне по почте и я дам некоторые советы, как это сделать
После чего расстроился окончательно =)
Unit1
- Код: Выделить всё
procedure TForm1.FormCreate(Sender: TObject);
begin
//form1.SQLite3Connection1.Connected:=true;
SQLite3Connection1.Open;
form1.SQLTransaction1.Active:=true;
form1.SQLQuery1.Active:=true;
form1.SQLQuery2.Active:=true;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.Show;
end;
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
SQLQuery1.ApplyUpdates;
SQLQuery2.ApplyUpdates;
form1.SQLTransaction1.Active:=false;
//form1.SQLQuery1.Active:=false;
//form1.SQLQuery2.Active:=false;
form1.SQLTransaction1.Commit;
end;
Unit2
- Код: Выделить всё
procedure TForm2.Button1Click(Sender: TObject);
datestr1,year1,month1,day1,datestr2,year2,month2,day2:string;
q:TSQLQuery;
begin
// Здесь работа с датой:, преобразование даты из вида, который нравится лазарусу в вид для sqlite
datestr1:=datetostr(DateEdit1.Date);
day1:=copy(datestr1,1,2);
month1:=copy(datestr1,4,2);
year1:=copy(datestr1,7,4);
datestr1:=year1+'-'+month1+'-'+day1;
datestr2:=datetostr(DateEdit3.Date);
day2:=copy(datestr2,1,2);
month2:=copy(datestr2,4,2);
year2:=copy(datestr2,7,4);
datestr2:=year2+'-'+month2+'-'+day2;
q := TSQLQuery.Create(self);
q.DataBase := Form1.SQLite3Connection1;
q.Transaction := Form1.SQLTransaction1;
form1.SQLQuery1.Active:=false;
form1.SQLQuery2.Active:=false;
// form1.SQLQuery1.edit;
// form1.SQLQuery2.edit;
q.SQL.Add('INSERT INTO magazine(DateJoin, FIO, Place, DateBurn, Dep, matherial, Dia, desc, Answer, Date, FIODoc) VALUES("'+datestr1+'","'+edit1.text+'","'+edit2.Text+'","'+inttostr(Spinedit3.Value)+'","'+inttostr(spinedit4.Value)+'","'+memo1.Text+'","'+memo2.Text+'","'+memo3.Text+'","'+memo4.Text+'","'+datestr2+'","'+edit3.text+'");');
q.ExecSQL;
// form1.SQLQuery1.Post;
// form1.SQLQuery2.Post;
form1.SQLQuery1.Active:=true;
form1.SQLQuery2.Active:=true;
form1.SQLQuery1.ApplyUpdates;
form1.SQLQuery2.ApplyUpdates;
// q.ApplyUpdates;
end;