|
@@ -1,24 +1,34 @@
|
|
|
unit customsqliteds;
|
|
|
|
|
|
{
|
|
|
- This is TCustomSqliteDataset, a TDataset descendant class for use with fpc compiler
|
|
|
- Copyright (C) 2004 Luiz Américo Pereira Câmara
|
|
|
- Email: [email protected]
|
|
|
-
|
|
|
- This program is free software; you can redistribute it and/or modify
|
|
|
- it under the terms of the GNU Lesser General Public License as published by
|
|
|
- the Free Software Foundation; either version 2.1 of the License, or
|
|
|
- (at your option) any later version.
|
|
|
-
|
|
|
- This program is distributed in the hope that it will be useful,
|
|
|
- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
- GNU Lesser General Public License for more details.
|
|
|
-
|
|
|
- You should have received a copy of the GNU Lesser General Public License
|
|
|
- along with this program; if not, write to the Free Software
|
|
|
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
-
|
|
|
+ This is TCustomSqliteDataset, a TDataset descendant class for use with fpc compiler
|
|
|
+ Copyright (C) 2004-2007 Luiz Américo Pereira Câmara
|
|
|
+ Email: [email protected]
|
|
|
+
|
|
|
+ This library is free software; you can redistribute it and/or modify it
|
|
|
+ under the terms of the GNU Library General Public License as published by
|
|
|
+ the Free Software Foundation; either version 2 of the License, or (at your
|
|
|
+ option) any later version with the following modification:
|
|
|
+
|
|
|
+ As a special exception, the copyright holders of this library give you
|
|
|
+ permission to link this library with independent modules to produce an
|
|
|
+ executable, regardless of the license terms of these independent modules,and
|
|
|
+ to copy and distribute the resulting executable under terms of your choice,
|
|
|
+ provided that you also meet, for each linked independent module, the terms
|
|
|
+ and conditions of the license of that module. An independent module is a
|
|
|
+ module which is not derived from or based on this library. If you modify
|
|
|
+ this library, you may extend this exception to your version of the library,
|
|
|
+ but you are not obligated to do so. If you do not wish to do so, delete this
|
|
|
+ exception statement from your version.
|
|
|
+
|
|
|
+ This program is distributed in the hope that it will be useful, but WITHOUT
|
|
|
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
|
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
|
|
|
+ for more details.
|
|
|
+
|
|
|
+ You should have received a copy of the GNU Library General Public License
|
|
|
+ along with this library; if not, write to the Free Software Foundation,
|
|
|
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
}
|
|
|
|
|
|
{$Mode ObjFpc}
|
|
@@ -138,6 +148,7 @@ type
|
|
|
//TDataSet overrides
|
|
|
function AllocRecordBuffer: PChar; override;
|
|
|
function CreateBlobStream(Field: TField; Mode: TBlobStreamMode): TStream; override;
|
|
|
+ procedure DoBeforeClose; override;
|
|
|
procedure DoAfterInsert; override;
|
|
|
procedure DoBeforeInsert; override;
|
|
|
procedure FreeRecordBuffer(var Buffer: PChar); override;
|
|
@@ -418,6 +429,13 @@ begin
|
|
|
Result:= TDSStream.Create(PPDataRecord(ActiveBuffer)^,Field.FieldNo - 1);
|
|
|
end;
|
|
|
|
|
|
+procedure TCustomSqliteDataset.DoBeforeClose;
|
|
|
+begin
|
|
|
+ if FSaveOnClose then
|
|
|
+ ApplyUpdates;
|
|
|
+ inherited DoBeforeClose;
|
|
|
+end;
|
|
|
+
|
|
|
procedure TCustomSqliteDataset.DoAfterInsert;
|
|
|
begin
|
|
|
//an append or an insert in an empty dataset
|
|
@@ -703,8 +721,6 @@ end;
|
|
|
|
|
|
procedure TCustomSqliteDataset.InternalClose;
|
|
|
begin
|
|
|
- if FSaveOnClose then
|
|
|
- ApplyUpdates;
|
|
|
//BindFields(False);
|
|
|
if DefaultFields then
|
|
|
DestroyFields;
|