mORMot and Open Source friends
Check-in [b6e28deb26]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:{665} let TSynVirtualDataSet.CreateBlobStream() always return a TStream instance, even if the BLOB field is void
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: b6e28deb2636e6ebdfe653d8a184d5fe2b6996f2
User & Date: ab 2015-01-01 13:25:43
Context
2015-01-01
15:51
{666} introducing TSynDBSQLDataSet as a re-usable TDataSet for queries check-in: 91e8b4c249 user: ab tags: trunk
13:25
{665} let TSynVirtualDataSet.CreateBlobStream() always return a TStream instance, even if the BLOB field is void check-in: b6e28deb26 user: ab tags: trunk
2014-12-30
18:49
{664} refactoring of cross-platform clients to let CSV fields handle spaces as expected check-in: 93d421aa63 user: ab tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to SynVirtualDataset.pas.

27
28
29
30
31
32
33

34
35
36
37
38
39
40
...
362
363
364
365
366
367
368


369
370
371
372
373
374
375
  Portions created by the Initial Developer are Copyright (C) 2014
  the Initial Developer. All Rights Reserved.

  Contributor(s):
  - Alfred Glaenzer (alf)
  - mingda

    
  Alternatively, the contents of this file may be used under the terms of
  either the GNU General Public License Version 2 or later (the "GPL"), or
  the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  in which case the provisions of the GPL or the LGPL are applicable instead
  of those above. If you wish to allow use of your version of this file only
  under the terms of either the GPL or the LGPL, and not to allow others to
................................................................................
end;

function TSynVirtualDataSet.CreateBlobStream(Field: TField; Mode: TBlobStreamMode): TStream;
begin
  if Mode<>bmRead then
    raise EDatabaseError.CreateFmt('%s BLOB should be ReadOnly',[ClassName]);
  result := GetBlobStream(Field,PRecInfo(ActiveBuffer).RowIndentifier);


end;

function TSynVirtualDataSet.GetRecNo: Integer;
begin
  result := fCurrentRow+1;
end;







>







 







>
>







27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
...
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
  Portions created by the Initial Developer are Copyright (C) 2014
  the Initial Developer. All Rights Reserved.

  Contributor(s):
  - Alfred Glaenzer (alf)
  - mingda
  - Murat Ak
    
  Alternatively, the contents of this file may be used under the terms of
  either the GNU General Public License Version 2 or later (the "GPL"), or
  the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  in which case the provisions of the GPL or the LGPL are applicable instead
  of those above. If you wish to allow use of your version of this file only
  under the terms of either the GPL or the LGPL, and not to allow others to
................................................................................
end;

function TSynVirtualDataSet.CreateBlobStream(Field: TField; Mode: TBlobStreamMode): TStream;
begin
  if Mode<>bmRead then
    raise EDatabaseError.CreateFmt('%s BLOB should be ReadOnly',[ClassName]);
  result := GetBlobStream(Field,PRecInfo(ActiveBuffer).RowIndentifier);
  if result=nil then
    result := TSynMemoryStream.Create; // null BLOB returns a void TStream
end;

function TSynVirtualDataSet.GetRecNo: Integer;
begin
  result := fCurrentRow+1;
end;

Changes to SynopseCommit.inc.

1
'1.18.664'
|
1
'1.18.665'