#51 Re: mORMot 1 » 2014-08-15 TestSQL3 at 2nd, 4th, 6th... run has exception » 2014-08-16 13:53:25

ab wrote:

AFAIR it is a common issue when the tests are run on a non-Win1252 version of Windows...

I know the test failed is, but at last has exception, this make test stopped, before not see this, need scroll to the end to see it, thanks!

 2.2. File based memory map:

! Exception ESQLite3Exception raised with messsage:
!  Error SQLITE_BUSY (5) - "database is locked"


Synopse framework used: 1.18
SQlite3 engine used: 3.8.6
Generated with: Delphi XE compiler

Time elapsed for all tests: 51.78s
Tests performed at 2014-8-16 17:43:41

Total assertions failed for all test suits:  213 / 6,983,127
! Some tests FAILED: please correct the code.

Done - Press ENTER to Exit

#52 Re: mORMot 1 » 2014-08-15 TestSQL3 at 2nd, 4th, 6th... run has exception » 2014-08-16 09:55:39

seem run multi-times, will get exception, no exact times, this is the full output

   Synopse mORMot Framework Automated tests
  ------------------------------------------


1. Synopse libraries

 1.1. Low level common:
  - System copy record: 22 assertions passed  642us
  - TRawUTF8List: 70,005 assertions passed  130.72ms
  - TDynArray: 1,027,703 assertions passed  435.78ms
  - TDynArrayHashed: 1,200,629 assertions passed  382.39ms
  - TObjectListHashed: 999,879 assertions passed  1.04s
  - TObjectDynArrayWrapper: 167,501 assertions passed  68.48ms
  - Fast string compare: 7 assertions passed  1.01ms
  - IdemPropName: 30 assertions passed  1.00ms
  - Url encoding: 130 assertions passed  3.64ms
  - GUID: 9,007 assertions passed  12.02ms
  - IsMatch: 599 assertions passed  1.21ms
  - Soundex: 35 assertions passed  1.11ms
  - Numerical conversions: 1,092,575 assertions passed  531.06ms
  - crc32c: 20,020 assertions passed  158.98ms
      pas 48.79ms 122.2 MB/s fast 10.08ms 591.4 MB/s
  - Curr 64: 20,053 assertions passed  3.77ms
  - CamelCase: 11 assertions passed  928us
  - Bits: 4,774 assertions passed  1.75ms
  - Ini files: 7,004 assertions passed  62.27ms
  - UTF8: 79,126 assertions passed  3.06s
  - Iso 8601 date and time: 36,015 assertions passed  14.23ms
  - Url decoding: 1,100 assertions passed  1.81ms
  - Mime types: 20 assertions passed  1.06ms
!  - TSynTable: 201 / 875 FAILED  35.28ms
  - TSynCache: 404 assertions passed  1.54ms
  - TSynFilter: 1,005 assertions passed  8.78ms
  - TSynValidate: 677 assertions passed  3.75ms
  - TSynLogFile: 42 assertions passed  4.93ms
  Total failed: 201 / 4,739,248  - Low level common FAILED  6.03s

 1.2. Low level types:
  - RTTI: 58 assertions passed  1us
  - Url encoding: 200 assertions passed  3.19ms
  - Encode decode JSON: 262,292 assertions passed  394.27ms
  - Variants: 5 assertions passed  358us
  - Mustache renderer: 142 assertions passed  5.33ms
  - TDocVariant: 71,670 assertions passed  298.17ms
!  - BSON: 8 / 245,035 FAILED  7.63ms
  Total failed: 8 / 579,402  - Low level types FAILED  721.88ms

 1.3. Big table:
  - TSynBigTable: 19,144 assertions passed  175.36ms
  - TSynBigTableString: 16,091 assertions passed  74.67ms
  - TSynBigTableMetaData: 384,060 assertions passed  3.64s
  - TSynBigTableRecord: 452,185 assertions passed  8.08s
  Total failed: 0 / 871,480  - Big table PASSED  11.98s

 1.4. Synopse PDF:
!  - TPdfDocument: 1 / 2 FAILED  25.31ms
  - TPdfDocumentGDI: 5 assertions passed  550.03ms
  Total failed: 1 / 7  - Synopse PDF FAILED  607.76ms

 1.5. Cryptographic routines:
  - Adler32: 1 assertion passed  5.22ms
  - MD5: 1 assertion passed  8.33ms
  - SHA1: 5 assertions passed  6.62ms
  - SHA256: 5 assertions passed  975us
  - AES256: 16,815 assertions passed  1.16s
  - RC4: 1 assertion passed  1.09ms
  - Base64: 11,994 assertions passed  271.83ms
  - CompressShaAes: 1,683 assertions passed  16.43ms
  Total failed: 0 / 30,505  - Cryptographic routines PASSED  1.52s

 1.6. Compression:
  - In memory compression: 12 assertions passed  249.82ms
  - GZIP format: 19 assertions passed  757.84ms
  - ZIP format: 36 assertions passed  2.10s
  - SynLZO: 3,006 assertions passed  181.41ms
  - SynLZ: 30,019 assertions passed  1.39s
  Total failed: 0 / 33,092  - Compression PASSED  4.72s


2. mORMot

 2.1. File based:
  - Database direct access: 10,138 assertions passed  475.98ms
  - Virtual table direct access: 12 assertions passed  9.58ms
  - TSQLTableJSON: 111,074 assertions passed  246.94ms
  - TSQLRestClientDB: 608,165 assertions passed  25.17s
!  - Regexp function: 3 / 4 FAILED  19.29ms
  Total failed: 3 / 729,393  - File based FAILED  25.94s

 2.2. File based memory map:

! Exception ESQLite3Exception raised with messsage:
!  Error SQLITE_BUSY (5) - "database is locked"


Synopse framework used: 1.18
SQlite3 engine used: 3.8.6
Generated with: Delphi XE compiler

Time elapsed for all tests: 51.78s
Tests performed at 2014-8-16 17:43:41

Total assertions failed for all test suits:  213 / 6,983,127
! Some tests FAILED: please correct the code.

Done - Press ENTER to Exit

this is the log content

20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002547E1 SynSelfTests.TTestLowLevelCommon._TSynTable (2924) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00254BB8 SynSelfTests.TTestLowLevelCommon._TSynTable (2939) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425545 warn  Test failed 
20140816 17425545 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 00255209 SynSelfTests.TTestLowLevelCommon._TSynTable (2964) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425546 warn  Test failed 
20140816 17425546 fail  TTestLowLevelCommon(01196840) Low level common: TSynTable "" stack trace API 002555F7 SynSelfTests.TTestLowLevelCommon._TSynTable (2979) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425632 warn  Test failed 
20140816 17425632 fail  TTestLowLevelTypes(01196888) Low level types: BSON "" stack trace API 0026AB12 SynSelfTests.TTestLowLevelTypes._BSON (5204) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425632 warn  Test failed 
20140816 17425632 fail  TTestLowLevelTypes(01196888) Low level types: BSON "" stack trace API 0026C547 SynSelfTests.TTestLowLevelTypes._BSON (5297) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425632 warn  Test failed 
20140816 17425632 fail  TTestLowLevelTypes(01196888) Low level types: BSON "" stack trace API 0026C5A9 SynSelfTests.TTestLowLevelTypes._BSON (5298) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425632 warn  Test failed 
20140816 17425632 fail  TTestLowLevelTypes(01196888) Low level types: BSON "" stack trace API 0026C60B SynSelfTests.TTestLowLevelTypes._BSON (5299) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425632 warn  Test failed 
20140816 17425632 fail  TTestLowLevelTypes(01196888) Low level types: BSON "" stack trace API 0026C6B3 SynSelfTests.TTestLowLevelTypes._BSON (5300) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425632 warn  Test failed 
20140816 17425632 fail  TTestLowLevelTypes(01196888) Low level types: BSON "" stack trace API 0026C78B SynSelfTests.TTestLowLevelTypes._BSON (5301) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425632 warn  Test failed 
20140816 17425632 fail  TTestLowLevelTypes(01196888) Low level types: BSON "" stack trace API 0026C847 SynSelfTests.TTestLowLevelTypes._BSON (5302) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17425632 warn  Test failed 
20140816 17425632 fail  TTestLowLevelTypes(01196888) Low level types: BSON "" stack trace API 0026C8F3 SynSelfTests.TTestLowLevelTypes._BSON (5303) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17430832 warn  Test failed 
20140816 17430832 fail  TTestSynopsePDF(011968D0) Synopse PDF: TPdfDocument "" stack trace API 0027C1F5 SynSelfTests.TTestSynopsePDF._TPdfDocument (6779) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17434118 EXC   ESQLite3Exception ("Error SQLITE_BUSY (5) - \"database is locked\"") at 000CD8F7 SynSQLite3.sqlite3_check (4512)  stack trace API 0009E8BC SynCommons.SynRtlUnwind (40922) 00005FC4 System.@HandleAnyException 000CD8F7 SynSQLite3.sqlite3_check (4512) 000CD118 SynSQLite3.TSQLRequest.Prepare (4403) 000CC527 SynSQLite3.TSQLRequest.Execute (4068) 000CA0F9 SynSQLite3.TSQLDatabase.Execute (3320) 000CA3BC SynSQLite3.TSQLDatabase.ExecuteNoException (3392) 000CB72E SynSQLite3.TSQLDatabase.DBOpen (3806) 000C9D11 SynSQLite3.TSQLDatabase.Create (3246) 001BDF1C mORMotSQLite3.TSQLRestClientDB.Create (1474) 00281366 SynSelfTests.TTestSQLite3Engine.RegexpFunction (7239) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17434118 EXC   ESQLite3Exception ("Error SQLITE_BUSY (5) - \"database is locked\"") at 000CD8F7 SynSQLite3.sqlite3_check (4512)  stack trace API 0009E8BC SynCommons.SynRtlUnwind (40922) 0000614C System.@HandleOnException 
20140816 17434118 warn  Test failed 
20140816 17434118 fail  TTestFileBased(0114CE68) File based: Regexp function "" stack trace API 0028142F SynSelfTests.TTestSQLite3Engine.RegexpFunction (7246) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17434118 EXC   ESQLite3Exception ("TSQLRequest.Reset called with no previous Request") at 000CD228 SynSQLite3.TSQLRequest.Reset (4430)  stack trace API 0009E8BC SynCommons.SynRtlUnwind (40922) 0000614C System.@HandleOnException 
20140816 17434118 warn  Test failed 
20140816 17434118 fail  TTestFileBased(0114CE68) File based: Regexp function "" stack trace API 0028142F SynSelfTests.TTestSQLite3Engine.RegexpFunction (7246) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17434118 EXC   ESQLite3Exception ("TSQLRequest.Reset called with no previous Request") at 000CD228 SynSQLite3.TSQLRequest.Reset (4430)  stack trace API 0009E8BC SynCommons.SynRtlUnwind (40922) 0000614C System.@HandleOnException 
20140816 17434118 warn  Test failed 
20140816 17434118 fail  TTestFileBased(0114CE68) File based: Regexp function "" stack trace API 0028142F SynSelfTests.TTestSQLite3Engine.RegexpFunction (7246) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17434120 EXC   ESQLite3Exception ("Error SQLITE_BUSY (5) - \"database is locked\"") at 000CD8F7 SynSQLite3.sqlite3_check (4512)  stack trace API 0009E8BC SynCommons.SynRtlUnwind (40922) 00005FC4 System.@HandleAnyException 000CD8F7 SynSQLite3.sqlite3_check (4512) 000CD118 SynSQLite3.TSQLRequest.Prepare (4403) 000CC527 SynSQLite3.TSQLRequest.Execute (4068) 000CA0F9 SynSQLite3.TSQLDatabase.Execute (3320) 000CA3BC SynSQLite3.TSQLDatabase.ExecuteNoException (3392) 000CB72E SynSQLite3.TSQLDatabase.DBOpen (3806) 000C9D11 SynSQLite3.TSQLDatabase.Create (3246) 0027FE0C SynSelfTests.TTestSQLite3Engine.DatabaseDirectAccess (7100) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17434120 EXC   ESQLite3Exception ("Error SQLITE_BUSY (5) - \"database is locked\"") at 000CD8F7 SynSQLite3.sqlite3_check (4512)  stack trace API 0009E8BC SynCommons.SynRtlUnwind (40922) 00005FC4 System.@HandleAnyException 000CD8F7 SynSQLite3.sqlite3_check (4512) 000CD118 SynSQLite3.TSQLRequest.Prepare (4403) 000CC527 SynSQLite3.TSQLRequest.Execute (4068) 000CA0F9 SynSQLite3.TSQLDatabase.Execute (3320) 000CA3BC SynSQLite3.TSQLDatabase.ExecuteNoException (3392) 000CBB96 SynSQLite3.TSQLDatabase.SetSynchronous (3836) 0027FE1F SynSelfTests.TTestSQLite3Engine.DatabaseDirectAccess (7102) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17434130 EXC   ESQLite3Exception ("Error SQLITE_BUSY (5) - \"database is locked\"") at 000CD8F7 SynSQLite3.sqlite3_check (4512)  stack trace API 0009E8BC SynCommons.SynRtlUnwind (40922) 00005FC4 System.@HandleAnyException 000CD8F7 SynSQLite3.sqlite3_check (4512) 000CD118 SynSQLite3.TSQLRequest.Prepare (4403) 000CC527 SynSQLite3.TSQLRequest.Execute (4068) 000CA0F9 SynSQLite3.TSQLDatabase.Execute (3320) 000CA3BC SynSQLite3.TSQLDatabase.ExecuteNoException (3392) 000CBED7 SynSQLite3.TSQLDatabase.SetWALMode (3876) 0028027B SynSelfTests.TTestSQLite3Engine.DatabaseDirectAccess (7138) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17434130 EXC   ESQLite3Exception ("Error SQLITE_BUSY (5) - \"database is locked\"") at 000CD8F7 SynSQLite3.sqlite3_check (4512)  stack trace API 0009E8BC SynCommons.SynRtlUnwind (40922) 00005FC4 System.@HandleAnyException 000CD8F7 SynSQLite3.sqlite3_check (4512) 000CD118 SynSQLite3.TSQLRequest.Prepare (4403) 000CC6F2 SynSQLite3.TSQLRequest.Execute (4116) 000CA354 SynSQLite3.TSQLDatabase.Execute (3382) 000CA480 SynSQLite3.TSQLDatabase.ExecuteNoException (3410) 000CBF4F SynSQLite3.TSQLDatabase.GetWALMode (3882) 0028029E SynSelfTests.TTestSQLite3Engine.DatabaseDirectAccess (7138) 002A71EF mORMotSelfTests.SQLite3ConsoleTests (205) 
20140816 17434130 EXC   ESQLite3Exception ("Error SQLITE_BUSY (5) - \"database is locked\"") at 000CD8F7 SynSQLite3.sqlite3_check (4512)  stack trace API 0009E8BC SynCommons.SynRtlUnwind (40922) 0000614C System.@HandleOnException 
20140816 17434136 EXCOS EAccessViolation (C0000005) at  stack trace API 0009E8BC SynCommons.SynRtlUnwind (40922) 0000614C System.@HandleOnException 

not regardless the test failed, Just the exception make TestSQL3 not complete, thanks!

#53 Re: mORMot 1 » 2014-08-15 TestSQL3 at 2nd, 4th, 6th... run has exception » 2014-08-16 09:24:27

Synopse framework used: 1.18
SQlite3 engine used: 3.8.6
Generated with: Delphi XE compiler

Run TestSQL3 as stand-alone, Sorry, after a machine reboot, then TestSQL can run complete, exception is gone, if can reproduce, I will repost here, thanks!

#54 mORMot 1 » 2014-08-15 TestSQL3 at 2nd, 4th, 6th... run has exception » 2014-08-16 08:05:10

mingda
Replies: 11

run TestSQL3 second time, will has exception, some log is below, thanks!

20140816 10132610 EXC   ESQLite3Exception ("Error SQLITE_BUSY (5) - \"database is locked\"") at 004CE8F7  stack trace API 0049F8BC 00406FC4 7C958723 7C95863C 7C80BEE7 004CE8F7 004CE118 004CD527 004CB0F9 004CB3BC 004CC72E 004CAD11 005BC64D 006840B5 0049155E 006A81EF 006AE4B5 7C82F23B 
20140816 10132610 EXC   ESQLite3Exception ("Error SQLITE_BUSY (5) - \"database is locked\"") at 004CE8F7  stack trace API 0049F8BC 00406FC4 7C958723 7C95863C 7C80BEE7 004CE8F7 004CE118 004CD527 004CB0F9 004CB3BC 004CCB96 006840CE 0049155E 006A81EF 006AE4B5 7C82F23B 
20140816 10132612 EXC   ESQLite3Exception ("Error SQLITE_BUSY (5) - \"database is locked\"") at 004CE8F7  stack trace API 0049F8BC 0040714C 
20140816 10132612 warn  Test failed 
20140816 10132612 fail  TTestClientServerAccess(0119DC28) Client server access: TSQLHttpClient "" stack trace API 004A0BBE 004A542A 004906C5 00683E98 0049155E 006A81EF 006AE4B5 7C82F23B 
20140816 10132612 EXC   ESQLite3Exception ("Error SQLITE_BUSY (5) - \"database is locked\"") at 004CE8F7  stack trace API 0049F8BC 0040714C 
20140816 10132612 warn  Test failed 
20140816 10132612 fail  TTestClientServerAccess(0119DC28) Client server access: HTTP client keep alive "" stack trace API 004A0BBE 004A542A 004906C5 0068459B 0068531A 0049155E 006A81EF 006AE4B5 7C82F23B 
20140816 10132612 EXC   ESQLite3Exception ("Error SQLITE_BUSY (5) - \"database is locked\"") at 004CE8F7  stack trace API 0049F8BC 0040714C 
20140816 10132612 warn  Test failed 
20140816 10132612 fail  TTestClientServerAccess(0119DC28) Client server access: HTTP client multi connect "" stack trace API 004A0BBE 004A542A 004906C5 0068459B 00685367 0049155E 006A81EF 006AE4B5 7C82F23B 
20140816 10132612 EXC   ESQLite3Exception ("Error SQLITE_BUSY (5) - \"database is locked\"") at 004CE8F7  stack trace API 0049F8BC 0040714C 
20140816 10132612 warn  Test failed 
20140816 10132612 fail  TTestClientServerAccess(0119DC28) Client server access: HTTP client encrypted "" stack trace API 004A0BBE 004A542A 004906C5 0068459B 006853B6 0049155E 006A81EF 006AE4B5 7C82F23B 
20140816 10132628 EXC   ESQLite3Exception ("Error SQLITE_BUSY (5) - \"database is locked\"") at 004CE8F7  stack trace API 0049F8BC 0040714C 
20140816 10132628 warn  Test failed 
20140816 10132628 fail  TTestClientServerAccess(0119DC28) Client server access: Named pipe access "" stack trace API 004A0BBE 004A542A 004906C5 0068459B 006859C8 0049155E 006A81EF 006AE4B5 7C82F23B 
20140816 10132641 EXC   ESQLite3Exception ("Error SQLITE_BUSY (5) - \"database is locked\"") at 004CE8F7  stack trace API 0049F8BC 0040714C 
20140816 10132641 warn  Test failed 
20140816 10132641 fail  TTestClientServerAccess(0119DC28) Client server access: Local window messages "" stack trace API 004A0BBE 004A542A 004906C5 0068459B 00685B2F 0049155E 006A81EF 006AE4B5 7C82F23B 
20140816 10132641 EXC   ESQLite3Exception ("Error SQLITE_BUSY (5) - \"database is locked\"") at 004CE8F7  stack trace API 0049F8BC 0040714C 
20140816 10132641 EXCOS EAccessViolation (C0000005) at 005BF267  stack trace API 0049F8BC 0040714C 

#55 Re: mORMot 1 » Error to read a boolean value (RecordClass.Create).GetFieldVariant » 2014-07-01 10:47:36

perhaps interrelated the boolean value in json, i remember before Mongo integration, boolean value in json is true or false, but now is 0 or 1.

#56 Re: mORMot 1 » External exception C000001D with the Last TestSQL3 » 2014-05-27 11:45:26

Confirm now it's worked, thank you for this quick fix, Best regards!

#57 mORMot 1 » External exception C000001D with the Last TestSQL3 » 2014-05-27 01:08:34

mingda
Replies: 2

Just download the Last daily build, build TestSQL3, run it, has exception:

   Synopse mORMot Framework Automated tests
  ------------------------------------------


1. Synopse libraries

 1.1. Low level common:
  - System copy record: 22 assertions passed  12.35ms
  - TRawUTF8List: 70,005 assertions passed  136.00ms

! Exception EExternalException raised with messsage:
!  External exception C000001D


Synopse framework used: 1.18
Generated with: Delphi XE compiler

Time elapsed for all tests: 350.34ms
Tests performed at 2014-5-27 8:52:23

Total assertions failed for all test suits:  0 / 0
! Some tests FAILED: please correct the code.

Done - Press ENTER to Exit

Then Debug in IDE, when Project TestSQL3.exe raised exception class EExternalException with message 'External exception C000001D'. Click break, line at 21585.

function crc32csse42(crc: cardinal; buf: PAnsiChar; len: cardinal): cardinal;

...

    {$ifdef ISDELPHI2010}
    crc32 dword ptr eax,dword ptr [edx]		//Line 21585 ==> at this line
    {$else}

DelphiXE in VmwareWorkstation, host is AMD64 cpu.

Found some link:
http://forums.vso-software.fr/error-ext … t4799.html

#58 Re: mORMot 1 » crc32 problem when string content has chinese word » 2014-05-08 09:17:51

Update, Problem resoved, the javscript crc32 function work on ascii char, so before computer the crc32 value, need first utf8 encode the string, then computer result will same, thanks!

#59 mORMot 1 » crc32 problem when string content has chinese word » 2014-05-08 03:48:50

mingda
Replies: 2

in web client, use below link crc32 function in
http://synopse.info/forum/viewtopic.php?pid=9485#p9485

computer such string:

ShipAgent/ShipSpecification?select=*&where=Name like :('%海洋皇后%'): OR ChineseName LIKE :('%海洋皇后%'):

function(str, init)
init is 1725494238,
the result is 450260155

but in delphi test:

procedure TForm5.Button2Click(Sender: TObject);
var
  url: RawUTF8;
  fPrivateSaltHash: Cardinal;
  aTimeStamp, aSignature, fLastTimeStamp: cardinal;
  PTimeStamp: PAnsiChar;
  aURLlength: Integer;
  URISessionSignaturePos: integer;
  s: RawUtf8;
  c,c2: Cardinal;
begin
  url := 'ShipAgent/ShipSpecification?select=*&where=Name like :(''%海洋皇后%''): OR ChineseName LIKE :(''%海洋皇后%''):&session_signature=0051C0FA00D9AABE1AD66CBB';
  URISessionSignaturePos := length(url)-(17+24+1);
  aURLlength := URISessionSignaturePos - 1;
  PTimeStamp := @url[aURLLength+(20+8)]; // P^ points to Hexa8(TimeStamp)

  fPrivateSaltHash := 407090865;
  fLastTimeStamp := 14264847;

  if not HexDisplayToCardinal(PTimeStamp,aTimeStamp) then s := s + 'Error1,';
  if not (aTimeStamp>=fLastTimeStamp) then s := s + 'Error2,';
  if not HexDisplayToCardinal(PTimeStamp+8,aSignature) then s := s + 'Error3,';
//  if not (crc32(crc32(fPrivateSaltHash,PTimeStamp,8),pointer(url),aURLlength)=aSignature) then s := s + 'Error4,';
  c := crc32(fPrivateSaltHash,PTimeStamp,8);
  c2 := crc32(c,pointer(url),aURLlength);
  if not (crc32(c,pointer(url),aURLlength)=aSignature) then s := s + 'Error4,';
  showmessage(inttostr(c2));

end;

the result is 1201321865,
this will cause TAuthSession.IsValidURL return false, then the web client will not pass Auth,
if no chinese word, then two crc32 result is same, which result is right, any help much appreciated, thanks!

#60 Re: mORMot 1 » url Signature » 2014-05-06 08:29:16

ab wrote:

Why on earth would you decode the URI at THttpApiServer level?
IMHO this is not the right place to do it.
This is up to the HTTP consumer service to decode the URI.

Sorry, I not follow this, when we Signature some url string, after encode, send to server, the server will response a 403 forbidden error, so any url has url escape char will not pass the default Auth, this is the reason.

For method service or interface service, I think if pass the decode url will better, we pass bababa url to server, then we get bababa url, not every service need implement decode, then get the original content, but current, I needn't do this, since mORMot has already make this parameter convert transparent, this is why interface service better than method service, thanks!

#61 Re: mORMot 1 » url Signature » 2014-05-06 02:55:44

After further debug, in THttpApiServer

procedure THttpApiServer.Execute;

        Context.fURL := Req^.pRawUrl;  //change to ==> Context.fURL := UrlDecode(Req^.pRawUrl); 

//since there has sock server, in THttpServer
procedure THttpServer.Process(ClientSock: THttpServerSocket; aCallingThread: TNotifiedThread);

    with ClientSock do begin
      //here set parameter Together, need also adjustment
      Context.Prepare(URL,Method,HeaderGetText,Content,ContentType);

if add this decode to url, after this will pass auth,
but there is problem in function UrlDecodeNextValue

procedure TSQLRestServerURIContext.ExecuteORMGet;
...
//here Parameters is the decode value such this: 'select=*&where=name like :('%OCEAN QUEEN%'):&session_signature=00588A9D00CF4CE662476C36'

            repeat
              UrlDecodeValue(Parameters,Sort,SQLSort);
              UrlDecodeValue(Parameters,Dir,SQLDir);
              UrlDecodeInteger(Parameters,StartIndex,SQLStartIndex);
              UrlDecodeInteger(Parameters,Results,SQLResults);
              UrlDecodeValue(Parameters,Select,SQLSelect);
              if NonStandardSQLSelectParameter and (SQLSelect='') then
                UrlDecodeValue(Parameters,PAGINGPARAMETERS_YAHOO.Select,SQLSelect);
              if NonStandardSQLWhereParameter and (SQLWhere='') then
                UrlDecodeValue(Parameters,PAGINGPARAMETERS_YAHOO.Where,SQLWhere);
              UrlDecodeValue(Parameters,Server.URIPagingParameters.Where,SQLWhere,@Parameters);
            until Parameters=nil;
...

since value has decode, in function UrlDecodeNextValue, '%', '+' should be normal content, don't need escape,

function UrlDecodeNextValue(U: PUTF8Char; out Value: RawUTF8): PUTF8Char;
var Beg, V: PUTF8Char;
    len, i: PtrInt;
begin
  while not(U^ in [#0,'&']) do begin
    if U^='%' then
      if (U[1]=#0) or (U[2]=#0) then // avoid buffer overflow
        break else
        inc(U,3) else
      inc(U);
    inc(len);
  end;
...
    if U^='%' then begin
      V^ := AnsiChar(ConvertHexToBin[ord(U[1])] shl 4+ConvertHexToBin[ord(U[2])]);
      inc(V);
      inc(U,3);
    end else begin
      if U^='+' then
        V^ := ' ' else
        V^ := U^;
      inc(V);
      inc(U);
    end;
  result := U;
end;

Ab, you are an expert, sorry my poor english, hope you can understand my meaning, thanks!

#62 Re: mORMot 1 » url Signature » 2014-05-06 00:56:14

ab wrote:

Your URI are weird.
I suppose the client do always encode the URI, when sending to the server - any browser is doing this.

Yes encode is after the url Signature, the original url just is string:

"ShipAgent/ShipSpecification?select=*&where=name like :('%OCEAN QUEEN%'):"

after Signature, the url is

ShipAgent/ShipSpecification?select=*&where=name like :('%OCEAN QUEEN%'):&session_signature=016BDD8E00CC6F32C5FB36E1

then after encode, the url is

ShipAgent/ShipSpecification?select=*&where=name%20like%20:('%25OCEAN%20QUEEN%25'):&session_signature=016BDD8E00CC6F32C5FB36E1

I found the problem, since Signature is before the encode uri, so client computer is base the original string, but server get the encode url, in TAuthSession.IsValidURL call, the Ctxt.Call^.url content is not decode, is this:

ShipAgent/ShipSpecification?select=*&where=name%20like%20:(%27%25OCEAN%20QUEEN%25%27):&session_signature=016BDD8E00CC6F32C5FB36E1

here has another escape, the ' is escape to %27, server Signature is compare by this:

(crc32(crc32(fPrivateSaltHash,PTimeStamp,8),pointer(Ctxt.Call^.url),aURLlength) = aSignature)

so server Signature is computer by the encode url content, of course will not pass auth,

if I change the url to:""ShipAgent/ShipSpecification?select=*", because original and encode url is the same, so will pass auth, PS use the deault auth schema, ShipAgent is the root name, ShipSpecification is TSQLShipSpecification(inherited TSQLRecord), thanks!

#63 Re: mORMot 1 » after success login, can also return user's DisplayName » 2014-05-05 13:55:08

I use a web front, when client call '/auth?UserName=XXX&Password=XX&ClientNonce=XXX' to login, server will return a json object with "logonname" and private key, since logonname is just equal UserName, I have already know it, i need the user's DisplayName, then I need make a service interface to get this info, if when call /auth?, have return the DisplayName, then will don't need make this interface, hope it clear, thanks!

#64 mORMot 1 » url Signature » 2014-05-05 13:29:32

mingda
Replies: 7
a url string:ShipAgent/ShipSpecification?select=*&where=name like :('%OCEAN QUEEN%'):
use a web front Signature, after Signature, url string is:
/ShipAgent/ShipSpecification?select=*&where=name like :('%OCEAN QUEEN%'):&session_signature=016BDD8E00CC6F32C5FB36E1,
then use javascript function encodeURI encode to:
/ShipAgent/ShipSpecification?select=*&where=name%20like%20:('%25OCEAN%20QUEEN%25'):&session_signature=016BDD8E00CC6F32C5FB36E1, 

a get request send to the server, in TAuthSession.IsValidURL, the Ctxt.Call^.url is:
'ShipAgent/ShipSpecification?select=*&where=name%20like%20:(%27%25OCEAN%20QUEEN%25%27):&session_signature=016BDD8E00CC6F32C5FB36E1', here Signature is computer according the encode 
value, then (crc32(crc32(fPrivateSaltHash,PTimeStamp,8),pointer(Ctxt.Call^.url),aURLlength) = aSignature) judge
will be false, then client return 403 forbidden error, is here need first decode, then check, or else i need adjust, any help is very appreciate!

#65 mORMot 1 » after success login, can also return user's DisplayName » 2014-05-04 03:06:37

mingda
Replies: 3
procedure TSQLRestServerAuthentication.SessionCreate(Ctxt: TSQLRestServerURIContext;
  var User: TSQLAuthUser);
var Session: TAuthSession;
begin
  if User<>nil then
  try
    // now client is authenticated -> create a session
    fServer.SessionCreate(User,Ctxt,Session);
    if Session<>nil then
      Ctxt.Returns(['result',Session.fPrivateSalt,'logonname',Session.User.LogonName]);
  finally
    User.Free;
  end;
end;

a little request, after success login, can also return user's DisplayName in return JSON object, thanks!

#66 Re: mORMot 1 » Javascript DateTime » 2014-04-08 00:28:45

thank your reply ab, I now convert the value in front, I prefer use the default backend, this is so fast, thank you!

#67 Re: mORMot 1 » Javascript DateTime » 2014-03-31 09:02:31

I still have a question about the JSON generate in mORMot, I prefer use the default REST API, use root/test/1, we can auto quick get the response, where can I hook to transform the date/time value to this milliseconds values, thank you ab!

Later I think, if there has some uniform control how the date store(txt, TimeLogBits, UnixTime), how the date transfer(txt, TimeLogBits, UnixTime), only make TDateTime, TCreateTime, TModTime different at ORM level(the Middle tier), then will ideal.

#68 mORMot 1 » Javascript DateTime » 2014-03-31 06:59:30

mingda
Replies: 4

I'm assess using Ewb as a front-end web development tool, since it's dataset json format a date/time column request a integer value, [http://www.elevatesoft.com/manual?actio … _Reference],

for it's 'rows' prefix, I think can manual add it to the responseText, but for date/time column, since it use Javascript Date Object,  "Specify any valid integer value (positive or negative) for non-null values. If not null, the incoming value represents the number of milliseconds since midnight on January 1, 1970, and can be negative for time values", but in mORMot, we have TDateTime(a UTC string), TCreateTime/TModTime(a property int64), when use REST interface, such as root/test/1 or root/test?select=*&where=XX, where can we do this conversion is appropriate, any suggest is greatly appreciated!

#69 Re: mORMot 1 » forcing 'ID' by another field name on virtual table » 2014-03-18 00:48:08

see blog, perhaps your code is converse,

fProperties := TSQLDBSQLite3ConnectionProperties.Create(
  SQLITE_MEMORY_DATABASE_NAME,'','','');
VirtualTableExternalRegister(fExternalModel,
  TSQLRecordPeopleExt,fProperties,'PeopleExternal');
fExternalModel.Props[TSQLRecordPeopleExt].ExternalDB.
  MapField('ID','Key').
  MapField('YearOfDeath','YOD');

#70 Re: mORMot 1 » Two or more SQL Model how to use the same TAuthUser » 2014-03-10 13:51:27

Thank you for your guidance, continue to read the documentation.

#71 Re: mORMot 1 » Two or more SQL Model how to use the same TAuthUser » 2014-03-10 00:51:10

Later I think in some cases this mode is ideal for a site for different corporations, in one site, we can make root1(model1) for corporationA, root2(model2) for corporationB, in Model1 we can use sub-class TAuthGroup1 and TAuthUser1, in Model2 we can use sub-class TAuthGroup2 and TAuthUser2, then in one external DB, we can server two different corporation, great! If share and separate two mode all support, that would be great!

#72 Re: mORMot 1 » Two or more SQL Model how to use the same TAuthUser » 2014-03-07 12:38:58

Sorry, Ab, I not say clear, I mean external db, I know the order of TSQLRecord should not change, for this reason and organise, I think make more than one model to organise application, since these models all need authentication, then where put TAuthUser and TAuthGroup is a problem, demo code like below, is two model all need put TAuthGroup and TAutoUser or only one model need? thank you!

procedure TForm1.FormCreate(Sender: TObject);
begin
  fProps := TOleDBMSSQLConnectionProperties.Create('localhost', 'testdb', '', '');

  fModel := CreateModel;
  VirtualTableExternalRegisterAll(fModel, fProps);

  fDBServer := TSQLRestServerDB.Create(fModel, ChangeFileExt(paramstr(0),'.db3'), true);
  fDBServer.CreateMissingTables();

  fModel2 := CreateModel2;
  VirtualTableExternalRegisterAll(fModel2, fProps);

  fDBServer2 := TSQLRestServerDB.Create(fModel2, 'test2.db3', true);
  fDBServer2.CreateMissingTables();

  fHttpServer := TSQLHttpServer.Create('80', [fDBServer, fDBServer2], '+', useHttpApiRegisteringURI);
  fHttpServer.AccessControlAllowOrigin := '*';
end;

#73 mORMot 1 » Two or more SQL Model how to use the same TAuthUser » 2014-03-07 06:59:44

mingda
Replies: 5

I am learning, since TSQLHttpServer can have multiple TSQLRestServerDB, a TSQLRestServerDB can only has a TSQLMode, so if we have two or more TSQLRestServerDB, how can we use the Same TAuthUser and TAuthGroup?

function CreateModel: TSQLModel;
begin
  result := TSQLModel.Create([TSQLAuthGroup, TSQLAuthUser, TSQLTest], 'root');
end;

function CreateModel2: TSQLModel;
begin
  result := TSQLModel.Create([TSQLAuthGroup, TSQLAuthUser, TSQLTest2], 'root2');
end;

or make a sub class of TSQLAuthGroup and TSQLAuthUser like this:

function CreateModel2: TSQLModel;
begin
  result := TSQLModel.Create([TSQLAuthGroup2, TSQLAuthUser2, TSQLTest2], 'root2');
end;

this method a same user will need two entry, if more model, then more user entry, is there some method only has one entry for a user, the import thing is the AuthGroup's AccessRights, is it can set more than one Model's privilege? thanks!

#74 mORMot 1 » TSQlDBConnection Pool can enhance to recover breaked connection? » 2014-02-25 02:16:17

mingda
Replies: 2

If external db serer down, connection can not recover after the db restart,
test code is below, when db is on, click button1 is ok, then shutdown db, click button1
will exception, this is ok, restart db, click button1, still exception, can enhance the connection pool to check the break connection then clear the pool or recover the connection, thanks!

  TForm3 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
    fProps: TSQlDBConnectionProperties;
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.FormCreate(Sender: TObject);
begin
  fProps := TOleDBMSSQLConnectionProperties.Create('localhost', 'testdb', '', '');
end;

procedure TForm3.FormDestroy(Sender: TObject);
begin
  fProps.Free;
end;

procedure TForm3.Button1Click(Sender: TObject);
begin
  Memo1.Text := UTF8ToString(
    fProps.Execute('select * from test1', []).FetchAllAsJSON(TRUE)
  );
end;

#75 Re: mORMot 1 » TestSQL3's EInterfaceFactoryException in debug mode now is reproduced » 2014-02-24 03:58:51

After update, the Exception is gone, i run the test ten times, thank you very much, the better mORMot framework, the better Test framework and the best support! I run TestSQL3 every time after update, so is the Test framework found the problem, thank you!

#76 Re: mORMot 1 » TestSQL3's EInterfaceFactoryException in debug mode now is reproduced » 2014-02-23 03:36:29

In TTextWriter.AddDynArrayJSON, exception is generate at call AddJSONEscape,
this call into RawUnicodeToUtf8, so the log content
EXCOS EAccessViolation (C0000005) at 00064C76 SynCommons.RawUnicodeToUtf8 (11410)
is correct.

procedure TTextWriter.AddDynArrayJSON(const aDynArray: TDynArray);

      djWideString, djSynUnicode:
        if PPtrIntArray(P)^[i]<>0 then begin
          Len := PInteger(PPtrIntArray(P)^[i]-sizeof(Integer))^;
          if Len*2>length(tmp) then
            SetLength(tmp,Len*2+2048);
          AddJSONEscape(pointer(tmp),
            RawUnicodeToUtf8(pointer(tmp),length(tmp),PPointerArray(P)^[i],Len));  <==Exception generate

#77 Re: mORMot 1 » TestSQL3's EInterfaceFactoryException in debug mode now is reproduced » 2014-02-23 03:19:52

after many times step, seems the Exception is because fInvoke Call return false,
then RaiseError raise the Exception,

function TInterfacedObjectFake.FakeCall(var aCall: TFakeCallStack): Int64;
var method: ^TServiceMethod;
procedure RaiseError(const Msg: RawUTF8);
begin
  raise EInterfaceFactoryException.CreateFmt('Invalid fake %s.%s interface call: %s',
    [fFactory.fInterfaceTypeInfo^.Name,method^.URI,Msg]);
end;
...
    if not fInvoke(method^,Params.Text,@ResArray,@Error,@fClientDrivenID,
       ServiceCustomAnswerPoint) then
      RaiseError(Error);	<== here exception raised

step the fInvoke call, can success after CallMethod(r), exception is cause by call
        AddJSON(Res,Values[a]);
where it internal call TTextWriter.AddDynArrayJSON.

function TServiceMethod.InternalExecute(Instances: array of pointer;
...
      end else
      {$endif}
        CallMethod(r);
    end;
    // 4. send back any result
    if Res<>nil then begin
      // 4.1 handle custom content (not JSON object answer)
      if (r.resKind=smvRecord) and ArgsResultIsServiceCustomAnswer then
        with PServiceCustomAnswer(Values[ArgsResultIndex])^ do
        if Header<>'' then begin
          aHead := Header;
          Res.ForceContent(Content);
          Result := true;
          exit;
        end;
      // 4.2 write the '{"result":[...' array or object
      for a := ArgsOutFirst to ArgsOutLast do
      with Args[a] do
      if ValueDirection in [smdVar,smdOut,smdResult] then begin
        if ResultAsJSONObject then
          Res.AddPropName(ParamName^);
        AddJSON(Res,Values[a]);    <==******sometime when a=3, generate exception*********
      end;
      Res.CancelLastComma;
    end;
    Result := true;
  finally // manual release memory for Records[], Objects[] and DynArrays[]
...

after success CallMethod(r), normal should step to goto result := true, but sometime when a = 3, call into
TTextWriter.AddDynArrayJSON, then will go direct to finally block, not to result := true,
so exception is cause at TTextWriter.AddDynArrayJSON, since code is very complex,
can't find the actual reason, later is a call stack and variable after a exception:

SynCommons.TTextWriter.AddDynArrayJSON($12E5A8)
SynCommons.TTextWriter.AddDynArrayJSON($454304,(no value))
mORMot.TServiceMethodArgument.AddJSON($1087360,$12E708)
mORMot.TServiceMethod.InternalExecute((...),nil {#0},$1087360,'',[],False,nil)
mORMot.TServiceFactoryServer.ExecuteMethod($FA0E00)
mORMot.TSQLRestServerURIContext.InternalExecuteSOAByInterface
mORMot.TSQLRestRoutingREST.ExecuteSOAByInterface
mORMot.TSQLRestServer.URI($12F31B)
mORMotSQLite3.TSQLRestClientDB.InternalURI($12F31B)
mORMot.TSQLRestClientURI.URI('root/Calculator.ComplexCall','POST',$12F3F4 {''},$12F3F0 {''},$12F3F8 {'[[338510102'#0'205211555'#0',["one'#0#0'"two'#0#0'"three'#0#0',["ABC'#0#0'"DEF'#0#0'"GHIJK'#0#0',"￰BgAAAAAAAAAAAAAAAAAAAE5DADoAXABEAGUAbABwAGgAaQBYAEUAXABtAE8AUgBNAG8AdABcAFMAUQBMAGkAdABlADMAXABUAGUAcwB0AFMAUQBMADMALgBlAHgAZQA='#0#0'{"ID'#0#0'338510102'#0'"JSON'#0#0'"abc'#0#0'"TimeStamp64'#0#0'205211556'#0',-1.2609443240799E-9'#0'-7.02632789070805E-10'#0})
mORMot.TServiceFactoryClient.InternalInvoke('ComplexCall','[338510102,205211555],["one","two","three"],["ABC","DEF","GHIJK"],"锟癇gAAAAAAAAAAAAAAAAAAAE5DADoAXABEAGUAbABwAGgAaQBYAEUAXABtAE8AUgBNAG8AdABcAFMAUQBMAGkAdABlADMAXABUAGUAcwB0AFMAUQBMADMALgBlAHgAZQA=",{"ID":338510102,"JSON":"abc","TimeStamp64":205211556},-1.2609443240799E-9,-7.02632789070805E-10',$12F9C8 {''},$12F9CC {''},$108B748,nil)
mORMot.TServiceFactoryClient.Invoke($1940F10,'[338510102,205211555],["one","two","three"],["ABC","DEF","GHIJK"],"锟癇gAAAAAAAAAAAAAAAAAAAE5DADoAXABEAGUAbABwAGgAaQBYAEUAXABtAE8AUgBNAG8AdABcAFMAUQBMAGkAdABlADMAXABUAGUAcwB0AFMAUQBMADMALgBlAHgAZQA=",{"ID":338510102,"JSON":"abc","TimeStamp64":205211556},-1.2609443240799E-9,-7.02632789070805E-10',$12F9C8 {''},$12F9CC {''},$108B748,nil)
mORMot.InternalProcess
mORMot.TInterfacedObjectFake.FakeCall($12FA00)
:017e00a1 
SynSelfTests.TestCalculator(Pointer($108B72C) as ICalculator)
SynSelfTests.TTestServiceOrientedArchitecture.Test($12FD94,700)
SynSelfTests.TTestServiceOrientedArchitecture.ClientTest(TSQLRestRoutingREST,False,False,[])
SynSelfTests.TTestServiceOrientedArchitecture.ClientSideREST
SynCommons.TSynTests.Run
mORMotSelfTests.SQLite3ConsoleTests
TestSQL3.TestSQL3
:7c82f23b ; C:\WINDOWS\system32\kernel32.dll
Name		Value
Self		('"69888]},three"],{"ID":245927754,"JSON":"245927753,1457302954","TimeStamp64":1457302954},-5.01156236045063E-9,{"ID":245927753,"JSON":"C:\\DelphiXE\\mORMot\\SQLite3\\TestSQL3.exe","TimeStamp64":1457302955}]}}]}}lor":49,"Length":98,"Name":"49"},{"Color":50,"Length":100,"Name":"50"},{"Color":51,"Length":102,"Name":"51"},{"Color":52,"Length":104,"Name":"52"},{"Color":53,"Length":106,"Name":"53"},{"Color":54,"Length":108,"Name":"54"},{"Color":55,"Length":110,"Name":"55"},{"Color":56,"Length":112,"Name":"56"},{"Color":57,"Length":114,"Name":"57"},{"Color":58,"Length":116,"Name":"58"},{"Color":59,"Length":118,"Name":"59"},{"Color":60,"Length":120,"Name":"60"},{"Color":61,"Length":122,"Name":"61"},{"Color":62,"Length":124,"Name":"62"},{"Color":63,"Length":126,"Name":"63"},{"Color":64,"Length":128,"Name":"64"},{"Color":65,"Length":130,"Name":"65"},{"Color":66,"Length":132,"Name":"66"},{"Color":67,"Length":134,"Name":"67"},{"Color":68,"Length":136,"Name":"68"},{"Color":69,"Length":138,"Name":"69"}]]},"Length":58,"Name":"29"},{"Color":30,"Length":60,"Name":"30"},{"Color":31,"Length":62,"Name":"31"},{"Color":32,"Length":64,"Name":"32"},{"Color":33,"Length":66,"Name":"33"},{"Color":34,"Length":68,"Name":"34"},{"Color":35,"Length":70,"Name":"35"},{"Color":36,"Length":72,"Name":"36"},{"Color":37,"Length":74,"Name":"37"},{"Color":38,"Length":76,"Name":"38"},{"Color":39,"Length":78,"Name":"39"},{"Color":40,"Length":80,"Name":"40"},{"Color":41,"Length":82,"Name":"41"},{"Color":42,"Length":84,"Name":"42"},{"Color":43,"Length":86,"Name":"43"},{"Color":44,"Length":88,"Name":"44"},{"Color":45,"Length":90,"Name":"45"},{"Color":46,"Length":92,"Name":"46"},{"Color":47,"Length":94,"Name":"47"},{"Color":48,"Length":96,"Name":"48"},{"Color":49,"Length":98,"Name":"49"},{"Color":50,"Length":100,"Name":"50"},{"Color":51,"Length":102,"Name":"51"},{"Color":52,"Length":104,"Name":"52"},{"Color":53,"Length":106,"Name":"53"},{"Color":54,"Length":108,"Name":"54"},{"Color":55,"Length":110,"Name":"55"},{"Color":56,"Length":112,"Name":"56"},{"Color":57,"Length":114,"Name":"57"},{"Color":58,"Length":116,"Name":"58"},{"Color":59,"Length":118,"Name":"59"},{"Color":60,"Length":120,"Name":"60"},{"Color":61,"Length":122,"Name":"61"},{"Color":62,"Length":124,"Name":"62"},{"Color":63,"Length":126,"Name":"63"},{"Color":64,"Length":128,"Name":"64"},{"Color":65,"Length":130,"Name":"65"},{"Color":66,"Length":132,"Name":"66"},{"Color":67,"Length":134,"Name":"67"},{"Color":68,"Length":136,"Name":"68"},{"Color":69,"Length":138,"Name":"69"}],[{"Color":1,"Length":2,"Name":"1"},{"Color":2,"Length":4,"Name":"2"},{"Color":3,"Length":6,"Name":"3"},{"Color":4,"Length":8,"Name":"4"},{"Color":5,"Length":10,"Name":"5"},{"Color":6,"Length":12,"Name":"6"},{"Color":7,"Length":14,"Name":"7"},{"Color":8,"Length":16,"Name":"8"},{"Color":9,"Length"3'#$10, '":68,"Name":"34"},{"Color":35,"Length":70,"Nam3/'#3, $104B338, 0, True, False, 0, 4096, '{"result":[["ABC","DEF","GHIJK","69888]},three"],{"ID":245927754,"JSON":"245927753,1457302954","TimeStamp64":1457302954},-5.01156236045063E-9,{"ID":245927753,"JSON":"C:\\DelphiXE\\mORMot\\SQLite3\\TestSQL3.exe","TimeStamp64":1457302955}]}}]}}lor":49,"Length":98,"Name":"49"},{"Color":50,"Length":100,"Name":"50"},{"Color":51,"Length":102,"Name":"51"},{"Color":52,"Length":104,"Name":"52"},{"Color":53,"Length":106,"Name":"53"},{"Color":54,"Length":108,"Name":"54"},{"Color":55,"Length":110,"Name":"55"},{"Color":56,"Length":112,"Name":"56"},{"Color":57,"Length":114,"Name":"57"},{"Color":58,"Length":116,"Name":"58"},{"Color":59,"Length":118,"Name":"59"},{"Color":60,"Length":120,"Name":"60"},{"Color":61,"Length":122,"Name":"61"},{"Color":62,"Length":124,"Name":"62"},{"Color":63,"Length":126,"Name":"63"},{"Color":64,"Length":128,"Name":"64"},{"Color":65,"Length":130,"Name":"65"},{"Color":66,"Length":132,"Name":"66"},{"Color":67,"Length":134,"Name":"67"},{"Color":68,"Length":136,"Name":"68"},{"Color":69,"Length":138,"Name":"69"}]]},"Length":58,"Name":"29"},{"Color":30,"Length":60,"Name":"30"},{"Color":31,"Length":62,"Name":"31"},{"Color":32,"Length":64,"N...
	B	'"69888]},three"],{"ID":245927754,"JSON":"245927753,1457302954","TimeStamp64":1457302954},-5.01156236045063E-9,{"ID":245927753,"JSON":"C:\\DelphiXE\\mORMot\\SQLite3\\TestSQL3.exe","TimeStamp64":1457302955}]}}]}}lor":49,"Length":98,"Name":"49"},{"Color":50,"Length":100,"Name":"50"},{"Color":51,"Length":102,"Name":"51"},{"Color":52,"Length":104,"Name":"52"},{"Color":53,"Length":106,"Name":"53"},{"Color":54,"Length":108,"Name":"54"},{"Color":55,"Length":110,"Name":"55"},{"Color":56,"Length":112,"Name":"56"},{"Color":57,"Length":114,"Name":"57"},{"Color":58,"Length":116,"Name":"58"},{"Color":59,"Length":118,"Name":"59"},{"Color":60,"Length":120,"Name":"60"},{"Color":61,"Length":122,"Name":"61"},{"Color":62,"Length":124,"Name":"62"},{"Color":63,"Length":126,"Name":"63"},{"Color":64,"Length":128,"Name":"64"},{"Color":65,"Length":130,"Name":"65"},{"Color":66,"Length":132,"Name":"66"},{"Color":67,"Length":134,"Name":"67"},{"Color":68,"Length":136,"Name":"68"},{"Color":69,"Length":138,"Name":"69"}]]},"Length":58,"Name":"29"},{"Color":30,"Length":60,"Name":"30"},{"Color":31,"Length":62,"Name":"31"},{"Color":32,"Length":64,"Name":"32"},{"Color":33,"Length":66,"Name":"33"},{"Color":34,"Length":68,"Name":"34"},{"Color":35,"Length":70,"Name":"35"},{"Color":36,"Length":72,"Name":"36"},{"Color":37,"Length":74,"Name":"37"},{"Color":38,"Length":76,"Name":"38"},{"Color":39,"Length":78,"Name":"39"},{"Color":40,"Length":80,"Name":"40"},{"Color":41,"Length":82,"Name":"41"},{"Color":42,"Length":84,"Name":"42"},{"Color":43,"Length":86,"Name":"43"},{"Color":44,"Length":88,"Name":"44"},{"Color":45,"Length":90,"Name":"45"},{"Color":46,"Length":92,"Name":"46"},{"Color":47,"Length":94,"Name":"47"},{"Color":48,"Length":96,"Name":"48"},{"Color":49,"Length":98,"Name":"49"},{"Color":50,"Length":100,"Name":"50"},{"Color":51,"Length":102,"Name":"51"},{"Color":52,"Length":104,"Name":"52"},{"Color":53,"Length":106,"Name":"53"},{"Color":54,"Length":108,"Name":"54"},{"Color":55,"Length":110,"Name":"55"},{"Color":56,"Length":112,"Name":"56"},{"Color":57,"Length":114,"Name":"57"},{"Color":58,"Length":116,"Name":"58"},{"Color":59,"Length":118,"Name":"59"},{"Color":60,"Length":120,"Name":"60"},{"Color":61,"Length":122,"Name":"61"},{"Color":62,"Length":124,"Name":"62"},{"Color":63,"Length":126,"Name":"63"},{"Color":64,"Length":128,"Name":"64"},{"Color":65,"Length":130,"Name":"65"},{"Color":66,"Length":132,"Name":"66"},{"Color":67,"Length":134,"Name":"67"},{"Color":68,"Length":136,"Name":"68"},{"Color":69,"Length":138,"Name":"69"}],[{"Color":1,"Length":2,"Name":"1"},{"Color":2,"Length":4,"Name":"2"},{"Color":3,"Length":6,"Name":"3"},{"Color":4,"Length":8,"Name":"4"},{"Color":5,"Length":10,"Name":"5"},{"Color":6,"Length":12,"Name":"6"},{"Color":7,"Length":14,"Name":"7"},{"Color":8,"Length":16,"Name":"8"},{"Color":9,"Length"3'#$10
	BEnd	'":68,"Name":"34"},{"Color":35,"Length":70,"Nam3/'#3
	fStream	$104B338
	fInitialStreamPosition	0
	fStreamIsOwned	True
	fFlushShouldNotAutoResize	False
	fTotalFileSize	0
	fTempBufSize	4096
	fTempBuf	'{"result":[["ABC","DEF","GHIJK","69888]},three"],{"ID":245927754,"JSON":"245927753,1457302954","TimeStamp64":1457302954},-5.01156236045063E-9,{"ID":245927753,"JSON":"C:\\DelphiXE\\mORMot\\SQLite3\\TestSQL3.exe","TimeStamp64":1457302955}]}}]}}lor":49,"Length":98,"Name":"49"},{"Color":50,"Length":100,"Name":"50"},{"Color":51,"Length":102,"Name":"51"},{"Color":52,"Length":104,"Name":"52"},{"Color":53,"Length":106,"Name":"53"},{"Color":54,"Length":108,"Name":"54"},{"Color":55,"Length":110,"Name":"55"},{"Color":56,"Length":112,"Name":"56"},{"Color":57,"Length":114,"Name":"57"},{"Color":58,"Length":116,"Name":"58"},{"Color":59,"Length":118,"Name":"59"},{"Color":60,"Length":120,"Name":"60"},{"Color":61,"Length":122,"Name":"61"},{"Color":62,"Length":124,"Name":"62"},{"Color":63,"Length":126,"Name":"63"},{"Color":64,"Length":128,"Name":"64"},{"Color":65,"Length":130,"Name":"65"},{"Color":66,"Length":132,"Name":"66"},{"Color":67,"Length":134,"Name":"67"},{"Color":68,"Length":136,"Name":"68"},{"Color":69,"Length":138,"Name":"69"}]]},"Length":58,"Name":"29"},{"Color":30,"Length":60,"Name":"30"},{"Color":31,"Length":62,"Name":"31"},{"Color":32,"Length":64,"Name":"32"},{"Color":33,"Length":66,"Name":"33"},{"Color":34,"Length":68,"Name":"34"},{"Color":35,"Length":70,"Name":"35"},{"Color":36,"Length":72,"Name":"36"},{"Color":37,"Length":74,"Name":"37"},{"Color":38,"Length":76,"Name":"38"},{"Color":39,"Length":78,"Name":"39"},{"Color":40,"Length":80,"Name":"40"},{"Color":41,"Length":82,"Name":"41"},{"Color":42,"Length":84,"Name":"42"},{"Color":43,"Length":86,"Name":"43"},{"Color":44,"Length":88,"Name":"44"},{"Color":45,"Length":90,"Name":"45"},{"Color":46,"Length":92,"Name":"46"},{"Color":47,"Length":94,"Name":"47"},{"Color":48,"Length":96,"Name":"48"},{"Color":49,"Length":98,"Name":"49"},{"Color":50,"Length":100,"Name":"50"},{"Color":51,"Length":102,"Name":"51"},{"Color":52,"Length":104,"Name":"52"},{"Color":53,"Length":106,"Name":"53"},{"Color":54,"Length":108,"Name":"54"},{"Color":55,"Length":110,"Name":"55"},{"Color":56,"Length":112,"Name":"56"},{"Color":57,"Length":114,"Name":"57"},{"Color":58,"Length":116,"Name":"58"},{"Color":59,"Length":118,"Name":"59"},{"Color":60,"Length":120,"Name":"60"},{"Color":61,"Length":122,"Name":"61"},{"Color":62,"Length":124,"Name":"62"},{"Color":63,"Length":126,"Name":"63"},{"Color":64,"Length":128,"Name":"64"},{"Color":65,"Length":130,"Name":"65"},{"Color":66,"Length":132,"Name":"66"},{"Color":67,"Length":134,"Name":"67"},{"Color":68,"Length":136,"Name":"68"},{"Color":69,"Length":138,"Name":"69"}],[{"Color":1,"Length":2,"Name":"1"},{"Color":2,"Length":4,"Name":"2"},{"Color":3,"Length":6,"Name":"3"},{"Color":4,"Length":8,"Name":"4"},{"Color":5,"Length":10,"Name":"5"},{"Color":6,"Length":12,"Name":"6"},{"Color":7,"Length":14,"Name":"7"},{"Color":8,"Length":16,"Name":"8"},{"Color":9,"Length"3'#$10
	fHumanReadableLevel	0
aDynArray		($12E708, $454304, 4, $40128C, nil, nil, False, djNone)
	Value	$12E708
	fTypeInfo	$454304
	fElemSize	4
	fElemType	$40128C
	fCompare	nil
	fCountP	nil
	fSorted	False
	fKnownType	djNone
i		3
n		3
Len		26
P		$1087138
T		djWideString
tmp		'one,two,three'#0'戤戤'#0#0#0#0#5#7'塬'#$18#0#$AE#0'[{"Color":1,"Length":2,"Name":"1"},{"Color":2,"Length":4,"Name":"2"},{"Color":3,"Length":6,"Name":"3"},{"Color":4,"Length":8,"Name":"4"},{"Color":5,"Length":10,"Name":"5"},{"Color":6,"Length":12,"Name":"6"},{"Color":7,"Length":14,"Name":"7"},{"Color":8,"Length":16,"Name":"8"},{"Color":9,"Length":18,"Name":"9"},{"Color":10,"Length":20,"Name":"10"},{"Color":11,"Length":22,"Name":"11"},{"Color":12,"Length":24,"Name":"12"},{"Color":13,"Length":26,"Name":"13"},{"Color":14,"Length":28,"Name":"14"},{"Color":15,"Length":30,"Name":"15"},{"Color":16,"Length":32,"Name":"16"},{"Color":17,"Length":34,"Name":"17"},{"Color":18,"Length":36,"Name":"18"},{"Color":19,"Length":38,"Name":"19"},{"Color":20,"Length":40,"Name":"20"},{"Color":21,"Length":42,"Name":"21"},{"Color":22,"Length":44,"Name":"22"},{"Color":23,"Length":46,"Name":"23"},{"Color":24,"Length":48,"Name":"24"},{"Color":25,"Length":50,"Name":"25"},{"Color":26,"Length":52,"Name":"26"},{"Color":27,"Length":54,"Name":"27"},{"Color":28,"Length":56,"Name":"28"},{"Color":29,"Length":58,"Name":"29"},{"Color":30,"Length":60,"Name":"30"},{"Color":31,"Length":62,"Name":"31"},{"Color":32,"Length":64,"Name":"32"},{"Color":33,"Length":66,"Name":"33"},{"Color":34,"Length":68,"Name":"34"},{"Color":35,"Length":70,"Name":"35"},{"Color":36,"Length":72,"Name":"36"},{"Color":37,"Length":74,"Name":"37"},{"Color":38,"Length":76,"Name":"38"},{"Color":39,"Length":78,"Name":"39"},{"Color":40,"Length":80,"Name":"40"},{"Color":41,"Length":82,"Name":"41"},{"Color":42,"Length":84,"Name":"42"},{"Color":43,"Length":86,"Name":"43"},{"Color":44,"Length":88,"Name":"44"},{"Color":45,"Length":90,"Name":"45"},{"Color":46,"Length":92,"Name":"46"},{"Color":47,"Length":94,"Name":"47"},{"Color":48,"Length":96,"Name":"48"},{"Color":49,"Length":98,"Name":"49"},{"Color":50,"Length":100,"Name":"50"},{"Color":51,"Length":102,"Name":"51"},{"Color":52,"Length":104,"Name":"52"},{"Color":53,"Length":106,"Name":"53"},{"Color":54,"Length":108,"Name":"54"},{"Color":55,"Length":110,"Name":"55"},{"'
customWriter		($775F3F85,nil)
	Code	$775F3F85
	Data	nil
customParser		($1A, $3, [soReadIgnoreUnknownFields,soWriteHumanReadable])
	fItems	$1A
	fRoot	$3
	fOptions	[soReadIgnoreUnknownFields,soWriteHumanReadable]
Options		[]

#78 Re: mORMot 1 » TestSQL3's EInterfaceFactoryException in debug mode now is reproduced » 2014-02-22 07:59:46

If you prefer, you can connect to my machine via Remote Desktop, I can send login information to you via mail, thanks!

#79 Re: mORMot 1 » TestSQL3's EInterfaceFactoryException in debug mode now is reproduced » 2014-02-22 01:04:29

procedure TTestServiceOrientedArchitecture.Test(const Inst: TTestServiceInstances;
  Iterations: Cardinal=700);
procedure TestCalculator(const I: ICalculator);
var t,i1,i2,i3: integer;
    c: cardinal;
    cu: currency;
    n1,n2: double;
    o: TSynTableFieldOptions;
    Ints: TIntegerDynArray;
    Strs1: TRawUTF8DynArray;
    Str2: TWideStringDynArray;
    Rec1: TVirtualTableModuleProperties;
    Rec2, RecRes: TSQLRestCacheEntryValue;
    s: RawUTF8;
begin
  Setlength(Ints,2);
  CSVToRawUTF8DynArray('one,two,three',Strs1);
  for t := 1 to Iterations do begin
...
    RecRes := I.ComplexCall(Ints,Strs1,Str2,Rec1,Rec2,n1,n2); <==   exception occur at t = 7

I put a debug point at  RecRes := I.ComplexCall(Ints,Strs1,Str2,Rec1,Rec2,n1,n2);

the call stack:

SynSelfTests.TestCalculator(Pointer($108B684) as ICalculator)
SynSelfTests.TTestServiceOrientedArchitecture.Test($12FD94,700)
SynSelfTests.TTestServiceOrientedArchitecture.ClientTest(TSQLRestRoutingREST,False,False,[])
SynSelfTests.TTestServiceOrientedArchitecture.ClientSideREST
SynCommons.TSynTests.Run
mORMotSelfTests.SQLite3ConsoleTests
TestSQL3.TestSQL3
:7c82f23b ; C:\WINDOWS\system32\kernel32.dll

the Local Variable:

Name        Value
I        Pointer($108B684) as ICalculator
t        7
i1        -525933278
i2        1302304076
i3        -525933267
c        1302304077
cu        -5259332.78
n1        -7.11164639797062e-09
n2        -5.48187840577988e-10
o        [tfoUnique,tfoCaseInsensitive]
Ints        (-525933278, 1302304076)
    [0]    -525933278
    [1]    1302304076
Strs1        ('one', 'two', 'three')
    [0]    'one'
    [1]    'two'
    [2]    'three'
Str2        ('ABC', 'DEF', 'GHIJK')
    [0]    'ABC'
    [1]    'DEF'
    [2]    'GHIJK'
Rec1        ([vtTransaction,vtSavePoint], nil, nil, nil, 'C:\DelphiXE\mORMot\SQLite3\TestSQL3.exe')
    Features    [vtTransaction,vtSavePoint]
    CursorClass    nil
    RecordClass    nil
    StaticClass    nil
    FileExtension    'C:\DelphiXE\mORMot\SQLite3\TestSQL3.exe'
Rec2        (-525933278, 'abc', 1302304077)
    ID    -525933278
    JSON    'abc'
    TimeStamp64    1302304077
RecRes        (-957283850, 'C:\DelphiXE\mORMot\SQLite3\TestSQL3.exe', 1055639884)
    ID    -957283850
    JSON    'C:\DelphiXE\mORMot\SQLite3\TestSQL3.exe'
    TimeStamp64    1055639884
s        '-5259332.78'

#80 Re: mORMot 1 » TestSQL3's EInterfaceFactoryException in debug mode now is reproduced » 2014-02-21 13:59:23

full log file is 232.642kb, so big, this is the last part contain the exception, it is also can reproduce in XE IDE:

20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.Add
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.Add
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.Add
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.Add -> 200
20140221 21433304  !  -    		00.000.013
20140221 21433304  ! ret   		{"result":[1577903505]}
20140221 21433304  !  -    	00.000.023
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.Multiply
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.Multiply
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.Multiply
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.Multiply -> 200
20140221 21433304  !  -    		00.000.012
20140221 21433304  ! ret   		{"result":[1653871241439227118]}
20140221 21433304  !  -    	00.000.021
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.Subtract
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.Subtract
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.Subtract
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.Subtract -> 200
20140221 21433304  !  -    		00.000.012
20140221 21433304  ! ret   		{"result":[-1.7044935781023E-10]}
20140221 21433304  !  -    	00.000.021
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.ToText
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.ToText
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.ToText
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.ToText -> 200
20140221 21433304  !  -    		00.000.013
20140221 21433304  ! ret   		{"result":["-9206532.94"]}
20140221 21433304  !  -    	00.000.023
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.ToTextFunc
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.ToTextFunc
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.ToTextFunc
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.ToTextFunc -> 200
20140221 21433304  !  -    		00.000.013
20140221 21433304  ! ret   		{"result":["-1.70509807113558E-9"]}
20140221 21433304  !  -    	00.000.022
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.SpecialCall
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.SpecialCall
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.SpecialCall
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.SpecialCall -> 200
20140221 21433304  !  -    		00.000.014
20140221 21433304  ! ret   		{"result":[-920653283,2498556800,6,69888]}
20140221 21433304  !  -    	00.000.024
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.ComplexCall
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.ComplexCall
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.ComplexCall
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.ComplexCall -> 200
20140221 21433304  !  -    		00.000.037
20140221 21433304  ! ret   		{"result":[["ABC","DEF","GHIJK","one,two,three"],{"ID":-920653293,"JSON":"-920653294,-1796410497","TimeStamp64":2498556799},-1.70509807113558E-9,{"ID":-920653294,"JSON":"C:\\DelphiXE\\mORMot\\SQLite3\\TestSQL3.exe","TimeStamp64":2498556800}]}
20140221 21433304  !  -    	00.000.052
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.Add
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.Add
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.Add
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.Add -> 200
20140221 21433304  !  -    		00.000.012
20140221 21433304  ! ret   		{"result":[1313745990]}
20140221 21433304  !  -    	00.000.022
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.Multiply
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.Multiply
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.Multiply
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.Multiply -> 200
20140221 21433304  !  -    		00.000.012
20140221 21433304  ! ret   		{"result":[191436939832105125]}
20140221 21433304  !  -    	00.000.021
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.Subtract
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.Subtract
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.Subtract
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.Subtract -> 200
20140221 21433304  !  -    		00.000.012
20140221 21433304  ! ret   		{"result":[-2.37285383131019E-10]}
20140221 21433304  !  -    	00.000.021
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.ToText
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.ToText
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.ToText
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.ToText -> 200
20140221 21433304  !  -    		00.000.012
20140221 21433304  ! ret   		{"result":["1669289.25"]}
20140221 21433304  !  -    	00.000.021
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.ToTextFunc
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.ToTextFunc
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.ToTextFunc
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.ToTextFunc -> 200
20140221 21433304  !  -    		00.000.013
20140221 21433304  ! ret   		{"result":["-2.43676965590566E-10"]}
20140221 21433304  !  -    	00.000.022
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.SpecialCall
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.SpecialCall
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.SpecialCall
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.SpecialCall -> 200
20140221 21433304  !  -    		00.000.196
20140221 21433304  ! ret   		{"result":[166928935,1146817066,6,69888]}
20140221 21433304  !  -    	00.000.206
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.ComplexCall
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.ComplexCall
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.ComplexCall
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.ComplexCall -> 200
20140221 21433304  !  -    		00.000.000
20140221 21433304  ! ret   		{"result":[["ABC","DEF","GHIJK","one,two,three"],{"ID":166928926,"JSON":"166928925,1146817065","TimeStamp64":1146817065},-2.43676965590566E-10,{"ID":166928925,"JSON":"C:\\DelphiXE\\mORMot\\SQLite3\\TestSQL3.exe","TimeStamp64":1146817066}]}
20140221 21433304  !  -    	00.000.006
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.Add
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.Add
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.Add
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.Add -> 200
20140221 21433304  !  -    		00.000.014
20140221 21433304  ! ret   		{"result":[959521188]}
20140221 21433304  !  -    	00.000.132
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.Multiply
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.Multiply
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.Multiply
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.Multiply -> 200
20140221 21433304  !  -    		00.000.012
20140221 21433304  ! ret   		{"result":[170278241214870387]}
20140221 21433304  !  -    	00.000.021
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.Subtract
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.Subtract
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.Subtract
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.Subtract -> 200
20140221 21433304  !  -    		00.000.012
20140221 21433304  ! ret   		{"result":[-2.8768728341345E-9]}
20140221 21433304  !  -    	00.000.023
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.ToText
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.ToText
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.ToText
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.ToText -> 200
20140221 21433304  !  -    		00.000.012
20140221 21433304  ! ret   		{"result":["2350322.01"]}
20140221 21433304  !  -    	00.000.021
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.ToTextFunc
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.ToTextFunc
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.ToTextFunc
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.ToTextFunc -> 200
20140221 21433304  !  -    		00.000.013
20140221 21433304  ! ret   		{"result":["-5.25991780124605E-9"]}
20140221 21433304  !  -    	00.000.023
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.SpecialCall
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.SpecialCall
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.SpecialCall
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.SpecialCall -> 200
20140221 21433304  !  -    		00.000.013
20140221 21433304  ! ret   		{"result":[235032211,724488988,6,69888]}
20140221 21433304  !  -    	00.000.022
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.ComplexCall
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.ComplexCall
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.ComplexCall
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.ComplexCall -> 200
20140221 21433304  !  -    		00.000.039
20140221 21433304  ! ret   		{"result":[["ABC","DEF","GHIJK","one,two,three"],{"ID":235032202,"JSON":"235032201,724488987","TimeStamp64":724488987},-5.25991780124605E-9,{"ID":235032201,"JSON":"C:\\DelphiXE\\mORMot\\SQLite3\\TestSQL3.exe","TimeStamp64":724488988}]}
20140221 21433304  !  -    	00.000.054
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.Add
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.Add
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.Add
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.Add -> 200
20140221 21433304  !  -    		00.000.012
20140221 21433304  ! ret   		{"result":[411828969]}
20140221 21433304  !  -    	00.000.022
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.Multiply
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.Multiply
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.Multiply
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.Multiply -> 200
20140221 21433304  !  -    		00.000.011
20140221 21433304  ! ret   		{"result":[-329452727699627740]}
20140221 21433304  !  -    	00.000.021
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.Subtract
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.Subtract
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.Subtract
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.Subtract -> 200
20140221 21433304  !  -    		00.000.013
20140221 21433304  ! ret   		{"result":[-4.89916933121045E-9]}
20140221 21433304  !  -    	00.000.022
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.ToText
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.ToText
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.ToText
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.ToText -> 200
20140221 21433304  !  -    		00.000.012
20140221 21433304  ! ret   		{"result":["-4038834.35"]}
20140221 21433304  !  -    	00.000.022
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.ToTextFunc
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.ToTextFunc
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.ToTextFunc
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.ToTextFunc -> 200
20140221 21433304  !  -    		00.000.012
20140221 21433304  ! ret   		{"result":["-5.99331087851897E-9"]}
20140221 21433304  !  -    	00.000.022
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.SpecialCall
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.SpecialCall
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.SpecialCall
20140221 21433304  ! srvr  			TSQLRestServerDB(01EC6CA0) POST Calculator.SpecialCall -> 200
20140221 21433304  !  -    		00.000.014
20140221 21433304  ! ret   		{"result":[-403883424,815712405,6,69888]}
20140221 21433304  !  -    	00.000.024
20140221 21433304  !  +    	TServiceFactoryClient(00F6EDC8).Calculator.ComplexCall
20140221 21433304  !  +    		TSQLRestServerDB(01EC6CA0).root/Calculator.ComplexCall
20140221 21433304  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21433304  ! call  			TSQLRestServerDB(01EC6CA0) Calculator.ComplexCall
20140221 21433308  ! EXCOS 			EAccessViolation (C0000005) at 00064C76 SynCommons.RawUnicodeToUtf8 (11410)  stack trace API 00094CB0 SynCommons.SynRtlUnwind (36505) 0000614C System.@HandleOnException 
20140221 21433308  ! srvr  			POST root/Calculator.ComplexCall ERROR=500 (Exception EAccessViolation: Access violation at address 00465C76 in module 'TestSQL3.exe'. Read of address 0016E000)
20140221 21433308  !  -    		00.060.816
20140221 21433308  ! ERROR 		TSQLRestClientDB(01420FC0) POST root/Calculator.ComplexCall returned 500 Internal Server Error with message  {  "ErrorCode":500,  "ErrorText":"Exception EAccessViolation: Access violation at address 00465C76 in module 'TestSQL3.exe'. Read of address 0016E000"  } stack trace API 00173E28 mORMot.TSQLRestClientURI.URI (22432) 00199FF3 mORMot.TServiceFactoryClient.InternalInvoke (34590) 00199E7C mORMot.TServiceFactoryClient.Invoke (34560) 001905C4 mORMot.InternalProcess (31849) 00190E42 mORMot.TInterfacedObjectFake.FakeCall (31968) 
20140221 21433308  !  -    	00.060.831
20140221 21442432  ! EXC   	EInterfaceFactoryException ("Invalid fake ICalculator.ComplexCall interface call: : {\r\n\"ErrorCode\":500,\r\n\"ErrorText\":\"Exception EAccessViolation: Access violation at address 00465C76 in module 'TestSQL3.exe'. Read of address 0016E000\"\r\n}") at 0019034E mORMot.RaiseError (31790)  stack trace API 00094CB0 SynCommons.SynRtlUnwind (36505) 0000614C System.@HandleOnException 
20140221 21442433  !  +    	TServiceFactoryClient(00F6EF18).ComplexNumber._free_
20140221 21442433  !  +    		TSQLRestServerDB(01EC6CA0).root/ComplexNumber._free_/1
20140221 21442433  ! auth  			TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21442433  ! call  			TSQLRestServerDB(01EC6CA0) ComplexNumber._free_
20140221 21442433  ! srvr  			TSQLRestServerDB(01EC6CA0) POST ComplexNumber._free_ -> 200
20140221 21442433  !  -    		00.000.040
20140221 21442433  !  -    	00.000.082
20140221 21442435  !  -    52.087.454
20140221 21442435  ! cust1 {"Msg"="\r\n   Synopse mORMot Framework Automated tests\r\n  ------------------------------------------\r\n\r\n\r\n1. Synopse libraries\r\n\r\n 1.1. Low level common: \r\n  - System copy record: 22 assertions passed  23.52ms\r\n  - TDynArray: 1,027,702 assertions passed  453.25ms\r\n  - TDynArrayHashed: 1,200,629 assertions passed  418.48ms\r\n  - TObjectListHashed: 999,890 assertions passed  1.09s\r\n  - TObjectDynArrayWrapper: 167,501 assertions passed  65.44ms\r\n  - Fast string compare: 7 assertions passed  510us\r\n  - IdemPropName: 30 assertions passed  470us\r\n  - Url encoding: 105 assertions passed  2.16ms\r\n  - GUID: 9,005 assertions passed  5.37ms\r\n  - IsMatch: 599 assertions passed  690us\r\n  - Soundex: 35 assertions passed  389us\r\n  - Numerical conversions: 1,065,047 assertions passed  576.89ms\r\n  - Curr 64: 20,053 assertions passed  2.97ms\r\n  - CamelCase: 11 assertions passed  321us\r\n  - Bits: 4,774 assertions passed  370us\r\n  - Ini files: 7,004 assertions passed  45.23ms\r\n  - UTF8: 79,102 assertions passed  2.91s\r\n  - Iso 8601 date and time: 32,006 assertions passed  11.31ms\r\n  - Url decoding: 1,100 assertions passed  993us\r\n  - Mime types: 20 assertions passed  375us\r\n  - TSynTable: 873 assertions passed  6.03ms\r\n  - TSynCache: 404 assertions passed  549us\r\n  - TSynFilter: 1,005 assertions passed  4.97ms\r\n  - TSynValidate: 677 assertions passed  1.32ms\r\n  - TSynLogFile: 42 assertions passed  2.33ms\r\n  Total failed: 0 / 4,617,643  - Low level common PASSED  5.74s\r\n\r\n 1.2. Low level types: \r\n  - RTTI: 52 assertions passed  2.70ms\r\n  - Url encoding: 200 assertions passed  1.33ms\r\n  - Encode decode JSON: 262,007 assertions passed  359.20ms\r\n  - TDocVariant: 1,611 assertions passed  75.58ms\r\n!  - BSON: 8 / 20,000,184 FAILED  6.45s\r\n  Total failed: 8 / 20,264,054  - Low level types FAILED  6.90s\r\n\r\n 1.3. Big table: \r\n  - TSynBigTable: 19,209 assertions passed  214.62ms\r\n  - TSynBigTableString: 16,080 assertions passed  69.44ms\r\n  - TSynBigTableMetaData: 384,060 assertions passed  3.26s\r\n  - TSynBigTableRecord: 452,185 assertions passed  7.76s\r\n  Total failed: 0 / 871,534  - Big table PASSED  11.31s\r\n\r\n 1.4. Synopse PDF: \r\n!  - TPdfDocument: 1 / 2 FAILED  1.57s\r\n  - TPdfDocumentGDI: 5 assertions passed  168.30ms\r\n  Total failed: 1 / 7  - Synopse PDF FAILED  1.75s\r\n\r\n 1.5. Cryptographic routines: \r\n  - Adler32: 1 assertion passed  535us\r\n  - MD5: 1 assertion passed  381us\r\n  - SHA1: 5 assertions passed  389us\r\n  - SHA256: 5 assertions passed  446us\r\n  - AES256: 16,815 assertions passed  1.85s\r\n  - RC4: 1 assertion passed  288us\r\n  - Base64: 11,994 assertions passed  335.88ms\r\n  - CompressShaAes: 1,683 assertions passed  14.11ms\r\n  Total failed: 0 / 30,505  - Cryptographic routines PASSED  2.21s\r\n\r\n 1.6. Compression: \r\n  - In memory compression: 12 assertions passed  533.23ms\r\n  - GZIP format: 19 assertions passed  1.08s\r\n  - ZIP format: 36 assertions passed  1.96s\r\n  - SynLZO: 3,006 assertions passed  187.22ms\r\n  - SynLZ: 29,018 assertions passed  1.12s\r\n  Total failed: 0 / 32,091  - Compression PASSED  4.91s\r\n\r\n\r\n2. mORMot\r\n\r\n 2.1. File based: \r\n  - Database direct access: 10,138 assertions passed  679.60ms\r\n  - Virtual table direct access: 12 assertions passed  4.87ms\r\n  - TSQLTableJSON: 109,072 assertions passed  273.07ms\r\n  - TSQLRestClientDB: 605,151 assertions passed  16.55s\r\n  - Regexp function: 6,016 assertions passed  62.01ms\r\n  Total failed: 0 / 730,389  - File based PASSED  17.58s\r\n\r\n 2.2. File based memory map: \r\n  - Database direct access: 10,136 assertions passed  652.01ms\r\n  - Virtual table direct access: 12 assertions passed  3.39ms\r\n  - TSQLTableJSON: 109,072 assertions passed  318.36ms\r\n  - TSQLRestClientDB: 605,150 assertions passed  16.12s\r\n  - Regexp function: 6,016 assertions passed  45.12ms\r\n  Total failed: 0 / 730,386  - File based memory map PASSED  17.15s\r\n\r\n 2.3. File based WAL: \r\n  - Database direct access: 10,138 assertions passed  713.37ms\r\n  - Virtual table direct access: 12 assertions passed  2.70ms\r\n  - TSQLTableJSON: 109,072 assertions passed  262.25ms\r\n  - TSQLRestClientDB: 605,151 assertions passed  16.37s\r\n  - Regexp function: 6,016 assertions passed  52.99ms\r\n  Total failed: 0 / 730,389  - File based WAL PASSED  17.41s\r\n\r\n 2.4. Memory based: \r\n  - Database direct access: 10,136 assertions passed  669.53ms\r\n  - Virtual table direct access: 12 assertions passed  2.12ms\r\n  - TSQLTableJSON: 109,072 assertions passed  252.76ms\r\n  - TSQLRestClientDB: 673,447 assertions passed  18.34s\r\n  - Regexp function: 6,016 assertions passed  48.49ms\r\n  - RTree: 140,000 assertions passed  2.78s\r\n  Total failed: 0 / 938,683  - Memory based PASSED  22.10s\r\n\r\n 2.5. Basic classes: \r\n!  - TSQLRecord: 11 / 65 FAILED  6.46s\r\n  - TSQLRecordSigned: 200 assertions passed  15.81ms\r\n  - TSQLModel: 3 assertions passed  1.53ms\r\n  Total failed: 11 / 268  - Basic classes FAILED  6.48s\r\n\r\n 2.6. Client server access: \r\n  - TSQLHttpServer: 2 assertions passed  329.41ms\r\n     using THttpApiServer\r\n  - TSQLHttpClient: 3 assertions passed  680.06ms\r\n  - HTTP client keep alive: 3,087 assertions passed  1.39s\r\n     4818 B, first 29.84ms, done 1.24s i.e. 801/s, aver. 1.24ms, 3.7 MB/s\r\n  - HTTP client multi connect: 3,087 assertions passed  1.27s\r\n     4818 B, first 1.55ms, done 1.21s i.e. 819/s, aver. 1.21ms, 3.8 MB/s\r\n  - HTTP client encrypted: 3,087 assertions passed  1.31s\r\n     4818 B, first 1.68ms, done 1.24s i.e. 800/s, aver. 1.24ms, 3.7 MB/s\r\n  - Named pipe access: 3,089 assertions passed  1.20s\r\n     4818 B, first 301.13ms, done 624.39ms i.e. 1601/s, aver. 624us, 7.4 MB/s\r\n  - Local window messages: 3,088 assertions passed  147.38ms\r\n     4818 B, first 373us, done 130.02ms i.e. 7691/s, aver. 130us, 35.9 MB/s\r\n  - Direct in process access: 3,056 assertions passed  88.62ms\r\n     4818 B, first 120us, done 77.65ms i.e. 12877/s, aver. 77us, 60.2 MB/s\r\n  - HTTP several DB servers: 9,604 assertions passed  5.55s\r\n     4818 B, first 1.82ms, done 1.23s i.e. 806/s, aver. 1.23ms, 3.7 MB/s\r\n     4818 B, first 1.71ms, done 1.16s i.e. 861/s, aver. 1.16ms, 4.0 MB/s\r\n     4818 B, first 1.78ms, done 1.18s i.e. 842/s, aver. 1.18ms, 3.9 MB/s\r\n  Total failed: 0 / 28,103  - Client server access PASSED  12.06s\r\n\r\n 2.7. Service oriented architecture: \r\n  - Weak interfaces: 56 assertions passed  1.89ms\r\n  - Service initialization: 200 assertions passed  37.05ms\r\n  - Direct call: 566,568 assertions passed  63.25ms\r\n  - Server side: 566,587 assertions passed  76.74ms\r\n\r\n! Exception EInterfaceFactoryException raised with messsage:\r\n!  Invalid fake ICalculator.ComplexCall interface call: : {\r\n\"ErrorCode\":500,\r\n\"ErrorText\":\"Exception EAccessViolation: Access violation at address 00465C76 in module 'TestSQL3.exe'. Read of address 0016E000\"\r\n}\r\n\r\n\r\nSynopse framework used: 1.18\r\nSQlite3 engine used: 3.8.3.1\r\nGenerated with: Delphi XE compiler\r\n\r\nTime elapsed for all tests: 178.69s\r\nTests performed at 2014-2-21 21:44:24\r\n\r\n! Some tests FAILED: please correct the code.\r\n"}
20140221 21442435  !  +    TSQLRestClientDB(01420FC0).auth
20140221 21442435  !  +    	TSQLRestServerDB(01EC6CA0).root/auth?UserName=User&Session=11550147
20140221 21442435  ! auth  		TSQLRestRoutingREST(00FCE0D0) User/TAuthSession(00FD47A0)
20140221 21442435  ! call  		TSQLRestServerDB(01EC6CA0) Auth
20140221 21442435  ! auth  		TSQLRestServerDB(01EC6CA0) Deleted session User/11550147 from 127.0.0.1/0059CBF8
20140221 21442435  ! srvr  		TSQLRestServerDB(01EC6CA0) GET auth -> 200
20140221 21442435  !  -    	00.000.047
20140221 21442435  !  -    00.000.079
20140221 21442435  ! info  TSQLRestServerDB(01EC6CA0) {   "ClientsCurrent": 0,   "ClientsMax": 1,   "Invalid": 4,   "Responses": 14570,   "Modified": 0,   "IncomingBytes": 2778093,   "OutcomingBytes": 1789438,   "OutcomingFiles": 0,   "ServiceCalls": 14571,   "CurrentThreadCount": 0,   "ProcessTime": "367.65ms"  }
20140221 21442435  !  +    000BF146 SynSQLite3.TSQLDatabase.DBClose (3384) 
20140221 21442436  !  -    00.013.392

#81 mORMot 1 » TestSQL3's EInterfaceFactoryException in debug mode now is reproduced » 2014-02-21 07:26:15

mingda
Replies: 11

a good news, now EInterfaceFactoryException occur is reproduced in debug mode after update to 2014-02-20 version http://synopse.info/fossil/info/2894b0881b, not like before occur random time and line.

Exception

---------------------------
Debugger Exception Notification
---------------------------
Project TestSQL3.exe raised exception class EInterfaceFactoryException with message 'Invalid fake ICalculator.ComplexCall interface call: : {
"ErrorCode":500,
"ErrorText":"Exception EAccessViolation: Access violation at address 00465C76 in module 'TestSQL3.exe'. Read of address 0016E000"
}'.
---------------------------
Break   Continue   Help   
---------------------------

Call Stack

:7c80bee7 kernel32.RaiseException + 0x3c
mORMot.RaiseError(': {'#$D#$A'"ErrorCode":500,'#$D#$A'"ErrorText":"Exception EAccessViolation: Access violation at address 00465C76 in module ''TestSQL3.exe''. Read of address 0016E000"'#$D#$A'}')
mORMot.InternalProcess
mORMot.TInterfacedObjectFake.FakeCall($12FA00)
:017700a1 
SynSelfTests.TestCalculator(Pointer($12C7034) as ICalculator)
SynSelfTests.TTestServiceOrientedArchitecture.Test($12FD94,700)
SynSelfTests.TTestServiceOrientedArchitecture.ClientTest(TSQLRestRoutingREST,False,False,[])
SynSelfTests.TTestServiceOrientedArchitecture.ClientSideREST
SynCommons.TSynTests.Run
mORMotSelfTests.SQLite3ConsoleTests
TestSQL3.TestSQL3
:7c82f23b ; C:\WINDOWS\system32\kernel32.dll

Source Line:

procedure TTestServiceOrientedArchitecture.ClientTest(aRouting: TSQLRestServerURIContextClass;
...
  Test(Inst);
  Inst.I := nil;
  if CheckFailed(fClient.Services.GUID(IID_ICalculator).Get(Inst.I)) then
    exit;
  Test(Inst);    <== Exception at call here    Line: 8867
  Finalize(Inst);

procedure TTestServiceOrientedArchitecture.Test(const Inst: TTestServiceInstances;
  Iterations: Cardinal=700);
...
  TestCalculator(Inst.I);  <== LIne: 8699

Console Output:

   Synopse mORMot Framework Automated tests
  ------------------------------------------


1. Synopse libraries

 1.1. Low level common:
  - System copy record: 22 assertions passed  46.48ms
  - TDynArray: 1,027,702 assertions passed  466.76ms
  - TDynArrayHashed: 1,200,629 assertions passed  406.58ms
  - TObjectListHashed: 999,889 assertions passed  1.11s
  - TObjectDynArrayWrapper: 167,501 assertions passed  101.15ms
  - Fast string compare: 7 assertions passed  373us
  - IdemPropName: 30 assertions passed  443us
  - Url encoding: 105 assertions passed  2.06ms
  - GUID: 9,005 assertions passed  5.30ms
  - IsMatch: 599 assertions passed  656us
  - Soundex: 35 assertions passed  342us
  - Numerical conversions: 1,065,784 assertions passed  579.28ms
  - Curr 64: 20,053 assertions passed  6.65ms
  - CamelCase: 11 assertions passed  962us
  - Bits: 4,774 assertions passed  2.01ms
  - Ini files: 7,004 assertions passed  83.10ms
  - UTF8: 79,102 assertions passed  2.99s
  - Iso 8601 date and time: 32,006 assertions passed  11.57ms
  - Url decoding: 1,100 assertions passed  870us
  - Mime types: 20 assertions passed  379us
  - TSynTable: 873 assertions passed  7.75ms
  - TSynCache: 404 assertions passed  682us
  - TSynFilter: 1,005 assertions passed  5.37ms
  - TSynValidate: 677 assertions passed  1.56ms
  - TSynLogFile: 42 assertions passed  2.41ms
  Total failed: 0 / 4,618,379  - Low level common PASSED  5.86s

 1.2. Low level types:
  - RTTI: 52 assertions passed  14.18ms
  - Url encoding: 200 assertions passed  1.94ms
  - Encode decode JSON: 262,007 assertions passed  373.53ms
  - TDocVariant: 1,611 assertions passed  79.05ms
!  - BSON: 8 / 20,000,184 FAILED  6.34s
  Total failed: 8 / 20,264,054  - Low level types FAILED  6.81s

 1.3. Big table:
  - TSynBigTable: 19,179 assertions passed  180.74ms
  - TSynBigTableString: 16,135 assertions passed  75.20ms
  - TSynBigTableMetaData: 384,060 assertions passed  3.30s
  - TSynBigTableRecord: 452,185 assertions passed  7.75s
  Total failed: 0 / 871,559  - Big table PASSED  11.31s

 1.4. Synopse PDF:
!  - TPdfDocument: 1 / 2 FAILED  1.97s
  - TPdfDocumentGDI: 5 assertions passed  325.92ms
  Total failed: 1 / 7  - Synopse PDF FAILED  2.30s

 1.5. Cryptographic routines:
  - Adler32: 1 assertion passed  503us
  - MD5: 1 assertion passed  1.96ms
  - SHA1: 5 assertions passed  383us
  - SHA256: 5 assertions passed  620us
  - AES256: 16,815 assertions passed  1.97s
  - RC4: 1 assertion passed  353us
  - Base64: 11,994 assertions passed  302.22ms
  - CompressShaAes: 1,683 assertions passed  7.13ms
  Total failed: 0 / 30,505  - Cryptographic routines PASSED  2.30s

 1.6. Compression:
  - In memory compression: 12 assertions passed  609.43ms
  - GZIP format: 19 assertions passed  1.08s
  - ZIP format: 36 assertions passed  2.10s
  - SynLZO: 3,006 assertions passed  191.92ms
  - SynLZ: 29,018 assertions passed  1.14s
  Total failed: 0 / 32,091  - Compression PASSED  5.14s


2. mORMot

 2.1. File based:
  - Database direct access: 10,138 assertions passed  528.52ms
  - Virtual table direct access: 12 assertions passed  16.78ms
  - TSQLTableJSON: 109,072 assertions passed  288.19ms
  - TSQLRestClientDB: 605,151 assertions passed  15.18s
  - Regexp function: 6,016 assertions passed  75.17ms
  Total failed: 0 / 730,389  - File based PASSED  16.11s

 2.2. File based memory map:
  - Database direct access: 10,136 assertions passed  545.84ms
  - Virtual table direct access: 12 assertions passed  4.03ms
  - TSQLTableJSON: 109,072 assertions passed  256.04ms
  - TSQLRestClientDB: 605,150 assertions passed  15.04s
  - Regexp function: 6,016 assertions passed  47.79ms
  Total failed: 0 / 730,386  - File based memory map PASSED  15.91s

 2.3. File based WAL:
  - Database direct access: 10,138 assertions passed  526.88ms
  - Virtual table direct access: 12 assertions passed  2.43ms
  - TSQLTableJSON: 109,072 assertions passed  258.61ms
  - TSQLRestClientDB: 605,151 assertions passed  15.17s
  - Regexp function: 6,016 assertions passed  44.71ms
  Total failed: 0 / 730,389  - File based WAL PASSED  16.01s

 2.4. Memory based:
  - Database direct access: 10,136 assertions passed  475.93ms
  - Virtual table direct access: 12 assertions passed  2.37ms
  - TSQLTableJSON: 109,072 assertions passed  241.85ms
  - TSQLRestClientDB: 673,447 assertions passed  16.43s
  - Regexp function: 6,016 assertions passed  51.39ms
  - RTree: 140,000 assertions passed  2.32s
  Total failed: 0 / 938,683  - Memory based PASSED  19.54s

 2.5. Basic classes:
!  - TSQLRecord: 11 / 65 FAILED  6.29s
  - TSQLRecordSigned: 200 assertions passed  15.92ms
  - TSQLModel: 3 assertions passed  717us
  Total failed: 11 / 268  - Basic classes FAILED  6.32s

 2.6. Client server access:
  - TSQLHttpServer: 2 assertions passed  373.68ms
     using THttpApiServer
  - TSQLHttpClient: 3 assertions passed  474.67ms
  - HTTP client keep alive: 3,087 assertions passed  1.23s
     4818 B, first 10.67ms, done 1.15s i.e. 862/s, aver. 1.15ms, 4.0 MB/s
  - HTTP client multi connect: 3,087 assertions passed  1.19s
     4818 B, first 1.47ms, done 1.14s i.e. 873/s, aver. 1.14ms, 4.0 MB/s
  - HTTP client encrypted: 3,087 assertions passed  1.28s
     4818 B, first 2.76ms, done 1.22s i.e. 816/s, aver. 1.22ms, 3.8 MB/s
  - Named pipe access: 3,089 assertions passed  1.09s
     4818 B, first 294.72ms, done 531.50ms i.e. 1881/s, aver. 531us, 8.8 MB/s
  - Local window messages: 3,088 assertions passed  106.16ms
     4818 B, first 307us, done 89.56ms i.e. 11164/s, aver. 89us, 52.2 MB/s
  - Direct in process access: 3,056 assertions passed  83.06ms
     4818 B, first 91us, done 72.61ms i.e. 13770/s, aver. 72us, 64.3 MB/s
  - HTTP several DB servers: 9,604 assertions passed  5.22s
     4818 B, first 1.82ms, done 1.09s i.e. 910/s, aver. 1.09ms, 4.2 MB/s
     4818 B, first 1.92ms, done 1.09s i.e. 915/s, aver. 1.09ms, 4.2 MB/s
     4818 B, first 1.30ms, done 1.10s i.e. 906/s, aver. 1.10ms, 4.2 MB/s
  Total failed: 0 / 28,103  - Client server access PASSED  11.14s

 2.7. Service oriented architecture:
  - Weak interfaces: 56 assertions passed  572us
  - Service initialization: 200 assertions passed  6.75ms
  - Direct call: 566,568 assertions passed  64.28ms
  - Server side: 566,587 assertions passed  64.77ms

! Exception EInterfaceFactoryException raised with messsage:
!  Invalid fake ICalculator.ComplexCall interface call: : {
"ErrorCode":500,
"ErrorText":"Exception EAccessViolation: Access violation at address 00465C76 in
 module 'TestSQL3.exe'. Read of address 0016E000"
}


Synopse framework used: 1.18
SQlite3 engine used: 3.8.3.1
Generated with: Delphi XE compiler

Time elapsed for all tests: 173.35s
Tests performed at 2014-2-21 14:24:08

Total assertions failed for all test suits:  20 / 28,974,813
! Some tests FAILED: please correct the code.

Done - Press ENTER to Exit
20140221 15104225 warn  Test failed 
20140221 15104447 fail  TTestLowLevelTypes(0108A8E8) Low level types: BSON "" stack trace API 0023B4AE SynSelfTests.TTestLowLevelTypes._BSON (4478) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15104447 warn  Test failed 
20140221 15105538 fail  TTestLowLevelTypes(0108A8E8) Low level types: BSON "" stack trace API 0023CF04 SynSelfTests.TTestLowLevelTypes._BSON (4571) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15105538 warn  Test failed 
20140221 15105735 fail  TTestLowLevelTypes(0108A8E8) Low level types: BSON "" stack trace API 0023CF66 SynSelfTests.TTestLowLevelTypes._BSON (4572) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15105735 warn  Test failed 
20140221 15110135 fail  TTestLowLevelTypes(0108A8E8) Low level types: BSON "" stack trace API 0023CFC8 SynSelfTests.TTestLowLevelTypes._BSON (4573) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15110135 warn  Test failed 
20140221 15110210 fail  TTestLowLevelTypes(0108A8E8) Low level types: BSON "" stack trace API 0023D070 SynSelfTests.TTestLowLevelTypes._BSON (4574) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15110210 warn  Test failed 
20140221 15110300 fail  TTestLowLevelTypes(0108A8E8) Low level types: BSON "" stack trace API 0023D148 SynSelfTests.TTestLowLevelTypes._BSON (4575) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15110300 warn  Test failed 
20140221 15110408 fail  TTestLowLevelTypes(0108A8E8) Low level types: BSON "" stack trace API 0023D204 SynSelfTests.TTestLowLevelTypes._BSON (4576) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15110408 warn  Test failed 
20140221 15110522 fail  TTestLowLevelTypes(0108A8E8) Low level types: BSON "" stack trace API 0023D2B0 SynSelfTests.TTestLowLevelTypes._BSON (4577) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15111700 warn  Test failed 
20140221 15111837 fail  TTestSynopsePDF(0108ABF8) Synopse PDF: TPdfDocument "" stack trace API 002488F1 SynSelfTests.TTestSynopsePDF._TPdfDocument (5712) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15123204 warn  Test failed 
20140221 15123861 fail  TTestBasicClasses(0108AD80) Basic classes: TSQLRecord "" stack trace API 00243C52 SynSelfTests.TTestBasicClasses._TSQLRecord (4966) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15123861 warn  Test failed 
20140221 15123958 fail  TTestBasicClasses(0108AD80) Basic classes: TSQLRecord "" stack trace API 00243CFC SynSelfTests.TTestBasicClasses._TSQLRecord (4976) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15123958 warn  Test failed 
20140221 15124028 fail  TTestBasicClasses(0108AD80) Basic classes: TSQLRecord "" stack trace API 00243DF1 SynSelfTests.TTestBasicClasses._TSQLRecord (4989) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15124028 warn  Test failed 
20140221 15124054 fail  TTestBasicClasses(0108AD80) Basic classes: TSQLRecord "" stack trace API 00244080 SynSelfTests.TTestBasicClasses._TSQLRecord (5008) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15124054 warn  Test failed 
20140221 15124119 fail  TTestBasicClasses(0108AD80) Basic classes: TSQLRecord "" stack trace API 00244207 SynSelfTests.TTestBasicClasses._TSQLRecord (5020) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15124119 warn  Test failed 
20140221 15124153 fail  TTestBasicClasses(0108AD80) Basic classes: TSQLRecord "" stack trace API 002443E5 SynSelfTests.TTestBasicClasses._TSQLRecord (5034) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15124153 warn  Test failed 
20140221 15124224 fail  TTestBasicClasses(0108AD80) Basic classes: TSQLRecord "" stack trace API 0024447F SynSelfTests.TTestBasicClasses._TSQLRecord (5040) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15124224 warn  Test failed JSON object as text
20140221 15124350 fail  TTestBasicClasses(0108AD80) Basic classes: TSQLRecord "JSON object as text" stack trace API 002444FB SynSelfTests.TTestBasicClasses._TSQLRecord (5043) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15124350 warn  Test failed 
20140221 15124423 fail  TTestBasicClasses(0108AD80) Basic classes: TSQLRecord "" stack trace API 00244556 SynSelfTests.TTestBasicClasses._TSQLRecord (5045) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15124423 warn  Test failed 
20140221 15124451 fail  TTestBasicClasses(0108AD80) Basic classes: TSQLRecord "" stack trace API 00244740 SynSelfTests.TTestBasicClasses._TSQLRecord (5055) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15124451 warn  Test failed 
20140221 15124525 fail  TTestBasicClasses(0108AD80) Basic classes: TSQLRecord "" stack trace API 002447AA SynSelfTests.TTestBasicClasses._TSQLRecord (5058) 0026DDB7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140221 15130742 EXCOS EAccessViolation (C0000005) at 00064C76 SynCommons.RawUnicodeToUtf8 (11410)  stack trace API 00094CB0 SynCommons.SynRtlUnwind (36505) 0000614C System.@HandleOnException 
20140221 15194346 EXC   EInterfaceFactoryException ("Invalid fake ICalculator.ComplexCall interface call: : {\r\n\"ErrorCode\":500,\r\n\"ErrorText\":\"Exception EAccessViolation: Access violation at address 00465C76 in module 'TestSQL3.exe'. Read of address 0016E000\"\r\n}") at 0019034E mORMot.RaiseError (31790)  stack trace API 00094CB0 SynCommons.SynRtlUnwind (36505) 0000614C System.@HandleOnException 

If need any help please let me know, thanks!

#83 mORMot 1 » ISQLDBRows interface how to rewind » 2014-02-17 09:49:52

mingda
Replies: 2

use ISQLDBRows, sometime need to a second step,
but seems step(TRUE) is not function, test code below, thanks!
(or introduce a function like TSQLRecorrd's FillRewind to ISQLDBRows, remove the step parameter?)

procedure TForm3.Button1Click(Sender: TObject);
var
  props: TSQLDBConnectionProperties;
  rows: ISQLDBRows;
begin
  props := TOleDBMSSQLConnectionProperties.Create('localhost', 'testdb', '', '');
  rows := props.Execute('select * from test1', []);

  while rows.Step do
  begin
    Memo1.Lines.Add(utf8ToString(rows.ColumnUTF8('column1')));
  end;

  if rows.Step(TRUE) then
  begin
    Memo2.Lines.Add(utf8ToString(rows.ColumnUTF8('column1')));
    while rows.Step do
      Memo2.Lines.Add(utf8ToString(rows.ColumnUTF8('column1')));
  end;

  props.Free;
end;

#84 Re: mORMot 1 » Any possibility to have a build in Web Server to server static content » 2014-02-10 10:42:11

thank you ab, I know the example, i think if it's a common demand, why always reinvent the wheel, if has a build in web server, then can enhanced it step by step, since there are some function is not easy to implement.

#85 mORMot 1 » Any possibility to have a build in Web Server to server static content » 2014-02-09 08:39:28

mingda
Replies: 2

now we have ORM, Rest Server, for web front, we also need a simple web server to server static file, search forum there are also some similar demand, is there any possibility to have a build in Web Server, for example, sub class of TSQLHttpServer, accessional to server a directory content, thanks!

#86 Re: mORMot 1 » question about TSQLRestClientURI's Transaction control » 2014-02-08 06:45:32

Ab, thank you for your intelligent insights, for me this is a difficult problem.

#87 mORMot 1 » question about TSQLRestClientURI's Transaction control » 2014-02-07 10:41:04

mingda
Replies: 2

In document, transcation should do like this:

      if Client.TransactionBeginRetry(TSQLRecordPeopleObject,20) then
      try
        //.... modify the database content, raise exceptions on error
        Client.Commit;
      except
        Client.RollBack; // in case of error
      end; 

but when I do this, when i debug, found transcation start and commit is not match,
this will make have some pending conneciton, later some operation will lock by this
pending operation, i use a TOleDBMSSQLConnectionProperties register external Db,
since ThreadSafeConnection default will use tmThreadPool, when call TransactionBeginRetry,
the server will use a thread, but when call client.commit, perhaps will use another thread,
then commit will not commit the pending conneciton, is this true?

#88 Re: mORMot 1 » First time, run TestSQL3.exe without IDE will always has Exception » 2014-01-25 08:45:58

in TServiceCalculator.ComplexCall implement change

  //Str2[i] := UTF8ToWideString(RawUTF8ArrayToCSV(Strs1));
  Str2[i] := UTF8ToString(RawUTF8ArrayToCSV(Strs1));

another log content, looks more comprehensive

20140125 16324251 fail  TTestLowLevelTypes(0117A8E8) Low level types: BSON "" stack trace API 0023464D SynSelfTests.TTestLowLevelTypes._BSON (4364) 002645F3 mORMotSelfTests.SQLite3ConsoleTests (209) 
20140125 16325401 warn  Test failed 
20140125 16325401 fail  TTestSynopsePDF(0117ABF8) Synopse PDF: TPdfDocument "" stack trace API 0023F519 SynSelfTests.TTestSynopsePDF._TPdfDocument (5518) 002645F3 mORMotSelfTests.SQLite3ConsoleTests (209) 
20140125 16342354 warn  Test failed 
20140125 16342354 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023A87A SynSelfTests.TTestBasicClasses._TSQLRecord (4772) 002645F3 mORMotSelfTests.SQLite3ConsoleTests (209) 
20140125 16342354 warn  Test failed 
20140125 16342354 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023A924 SynSelfTests.TTestBasicClasses._TSQLRecord (4782) 002645F3 mORMotSelfTests.SQLite3ConsoleTests (209) 
20140125 16342354 warn  Test failed 
20140125 16342354 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023AA19 SynSelfTests.TTestBasicClasses._TSQLRecord (4795) 002645F3 mORMotSelfTests.SQLite3ConsoleTests (209) 
20140125 16342354 warn  Test failed 
20140125 16342354 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023ACA8 SynSelfTests.TTestBasicClasses._TSQLRecord (4814) 002645F3 mORMotSelfTests.SQLite3ConsoleTests (209) 
20140125 16342354 warn  Test failed 
20140125 16342354 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023AE2F SynSelfTests.TTestBasicClasses._TSQLRecord (4826) 002645F3 mORMotSelfTests.SQLite3ConsoleTests (209) 
20140125 16342354 warn  Test failed 
20140125 16342354 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023B00D SynSelfTests.TTestBasicClasses._TSQLRecord (4840) 002645F3 mORMotSelfTests.SQLite3ConsoleTests (209) 
20140125 16342354 warn  Test failed 
20140125 16342354 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023B0A7 SynSelfTests.TTestBasicClasses._TSQLRecord (4846) 002645F3 mORMotSelfTests.SQLite3ConsoleTests (209) 
20140125 16342354 warn  Test failed JSON object as text
20140125 16342354 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "JSON object as text" stack trace API 0023B123 SynSelfTests.TTestBasicClasses._TSQLRecord (4849) 002645F3 mORMotSelfTests.SQLite3ConsoleTests (209) 
20140125 16342354 warn  Test failed 
20140125 16342354 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023B17E SynSelfTests.TTestBasicClasses._TSQLRecord (4851) 002645F3 mORMotSelfTests.SQLite3ConsoleTests (209) 
20140125 16342354 warn  Test failed 
20140125 16342354 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023B368 SynSelfTests.TTestBasicClasses._TSQLRecord (4861) 002645F3 mORMotSelfTests.SQLite3ConsoleTests (209) 
20140125 16342354 warn  Test failed 
20140125 16342354 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023B3D2 SynSelfTests.TTestBasicClasses._TSQLRecord (4864) 002645F3 mORMotSelfTests.SQLite3ConsoleTests (209) 
20140125 16343839 EXCOS EAccessViolation (C0000005) at 00063F04 SynCommons.RawUnicodeToUtf8 (11073)  stack trace API 00092F14 SynCommons.SynRtlUnwind (35514) 00005FC4 System.@HandleAnyException 0007E57B SynCommons.TTextWriter.AddDynArrayJSON (27406) 0007DFE6 SynCommons.TTextWriter.AddDynArrayJSON (27311) 001959D1 mORMot.TServiceMethodArgument.AddJSON (34700) 0018DA17 mORMot.InternalProcess (32506) 0018E336 mORMot.TInterfacedObjectFake.FakeCall (32633) 
20140125 16344028 EXCOS EAccessViolation (C0000005) at 00063F56 SynCommons.RawUnicodeToUtf8 (11085)  stack trace API 00092F14 SynCommons.SynRtlUnwind (35514) 0000614C System.@HandleOnException 
20140125 16344028 EXC   EInterfaceFactoryException ("Invalid fake ICalculator.ComplexCall interface call: : {\r\n\"ErrorCode\":500,\r\n\"ErrorText\":\"Exception EAccessViolation: Access violation at address 00464F56 in module 'TestSQL3.exe'. Read of address 00189000\"\r\n}") at 0018D822 mORMot.RaiseError (32453)  stack trace API 00092F14 SynCommons.SynRtlUnwind (35514) 0000614C System.@HandleOnException 

#89 Re: mORMot 1 » First time, run TestSQL3.exe without IDE will always has Exception » 2014-01-25 08:14:13

thanks for the fix, after build, first run, see exception,

   Synopse mORMot Framework Automated tests
  ------------------------------------------


1. Synopse libraries

 1.1. Low level common:
  - System copy record: 22 assertions passed  28.03ms
  - TDynArray: 1,027,702 assertions passed  510.71ms
  - TDynArrayHashed: 1,200,629 assertions passed  500.98ms
  - TObjectListHashed: 999,898 assertions passed  1.17s
  - Fast string compare: 7 assertions passed  915us
  - IdemPropName: 30 assertions passed  3.01ms
  - Url encoding: 105 assertions passed  5.95ms
  - GUID: 9,005 assertions passed  17.70ms
  - IsMatch: 599 assertions passed  1.93ms
  - Soundex: 35 assertions passed  981us
  - Numerical conversions: 1,065,414 assertions passed  618.08ms
  - Curr 64: 20,053 assertions passed  3.45ms
  - CamelCase: 11 assertions passed  278us
  - Bits: 4,774 assertions passed  342us
  - Ini files: 7,004 assertions passed  48.75ms
  - UTF8: 79,102 assertions passed  2.97s
  - Iso 8601 date and time: 24,006 assertions passed  11.68ms
  - Url decoding: 1,100 assertions passed  1.89ms
  - Mime types: 20 assertions passed  963us
  - TSynTable: 873 assertions passed  27.07ms
  - TSynCache: 404 assertions passed  1.11ms
  - TSynFilter: 1,005 assertions passed  6.69ms
  - TSynValidate: 677 assertions passed  2.17ms
  - TSynLogFile: 42 assertions passed  5.72ms
  Total failed: 0 / 4,442,517  - Low level common PASSED  5.96s

 1.2. Low level types:
  - RTTI: 52 assertions passed  35.06ms
  - Url encoding: 200 assertions passed  3.91ms
  - Encode decode JSON: 261,982 assertions passed  379.77ms
  - TDocVariant: 1,597 assertions passed  60.17ms
!  - BSON: 1 / 20,000,123 FAILED  555.22ms
  Total failed: 1 / 20,263,954  - Low level types FAILED  1.03s

 1.3. Big table:
  - TSynBigTable: 19,275 assertions passed  250.04ms
  - TSynBigTableString: 16,013 assertions passed  68.12ms
  - TSynBigTableMetaData: 384,060 assertions passed  3.27s
  - TSynBigTableRecord: 452,185 assertions passed  8.35s
  Total failed: 0 / 871,533  - Big table PASSED  11.94s

 1.4. Synopse PDF:
!  - TPdfDocument: 1 / 2 FAILED  74.96ms
  - TPdfDocumentGDI: 5 assertions passed  712.77ms
  Total failed: 1 / 7  - Synopse PDF FAILED  790.57ms

 1.5. Cryptographic routines:
  - Adler32: 1 assertion passed  1.06ms
  - MD5: 1 assertion passed  1.09ms
  - SHA1: 5 assertions passed  998us
  - SHA256: 5 assertions passed  984us
  - AES256: 16,815 assertions passed  1.85s
  - RC4: 1 assertion passed  1.05ms
  - Base64: 11,994 assertions passed  320.93ms
  - CompressShaAes: 1,683 assertions passed  7.08ms
  Total failed: 0 / 30,505  - Cryptographic routines PASSED  2.19s

 1.6. Compression:
  - In memory compression: 12 assertions passed  562.36ms
  - GZIP format: 19 assertions passed  1.11s
  - ZIP format: 36 assertions passed  2.11s
  - SynLZO: 3,006 assertions passed  180.47ms
  - SynLZ: 29,018 assertions passed  1.10s
  Total failed: 0 / 32,091  - Compression PASSED  5.08s


2. mORMot

 2.1. File based:
  - Database direct access: 10,138 assertions passed  590.31ms
  - Virtual table direct access: 12 assertions passed  28.45ms
  - TSQLTableJSON: 109,072 assertions passed  290.32ms
  - TSQLRestClientDB: 605,151 assertions passed  15.50s
  - Regexp function: 6,016 assertions passed  62.65ms
  Total failed: 0 / 730,389  - File based PASSED  16.47s

 2.2. File based memory map:
  - Database direct access: 10,136 assertions passed  513.82ms
  - Virtual table direct access: 12 assertions passed  5.04ms
  - TSQLTableJSON: 109,072 assertions passed  288.88ms
  - TSQLRestClientDB: 605,150 assertions passed  15.79s
  - Regexp function: 6,016 assertions passed  49.91ms
  Total failed: 0 / 730,386  - File based memory map PASSED  16.65s

 2.3. File based WAL:
  - Database direct access: 10,138 assertions passed  587.63ms
  - Virtual table direct access: 12 assertions passed  2.51ms
  - TSQLTableJSON: 109,072 assertions passed  249.34ms
  - TSQLRestClientDB: 605,151 assertions passed  16.40s
  - Regexp function: 6,016 assertions passed  50.35ms
  Total failed: 0 / 730,389  - File based WAL PASSED  17.29s

 2.4. Memory based:
  - Database direct access: 10,136 assertions passed  460.91ms
  - Virtual table direct access: 12 assertions passed  4.95ms
  - TSQLTableJSON: 109,072 assertions passed  291.71ms
  - TSQLRestClientDB: 673,447 assertions passed  16.83s
  - Regexp function: 6,016 assertions passed  53.63ms
  - RTree: 140,000 assertions passed  2.43s
  Total failed: 0 / 938,683  - Memory based PASSED  20.08s

 2.5. Basic classes:
!  - TSQLRecord: 11 / 65 FAILED  1.90ms
  - TSQLRecordSigned: 200 assertions passed  7.85ms
  - TSQLModel: 3 assertions passed  328us
  Total failed: 11 / 268  - Basic classes FAILED  12.06ms

 2.6. Client server access:
  - TSQLHttpServer: 2 assertions passed  39.14ms
     using THttpApiServer
  - TSQLHttpClient: 3 assertions passed  136.07ms
  - HTTP client keep alive: 3,087 assertions passed  1.26s
     4818 B, first 14.92ms, done 1.17s i.e. 847/s, aver. 1.17ms, 3.9 MB/s
  - HTTP client multi connect: 3,087 assertions passed  1.27s
     4818 B, first 1.40ms, done 1.21s i.e. 820/s, aver. 1.21ms, 3.8 MB/s
  - HTTP client encrypted: 3,087 assertions passed  1.23s
     4818 B, first 1.10ms, done 1.18s i.e. 845/s, aver. 1.18ms, 3.9 MB/s
  - Named pipe access: 3,089 assertions passed  1.09s
     4818 B, first 259.87ms, done 606.19ms i.e. 1649/s, aver. 606us, 7.7 MB/s
  - Local window messages: 3,088 assertions passed  103.58ms
     4818 B, first 228us, done 90.41ms i.e. 11060/s, aver. 90us, 51.7 MB/s
  - Direct in process access: 3,056 assertions passed  80.86ms
     4818 B, first 94us, done 69.16ms i.e. 14457/s, aver. 69us, 67.6 MB/s
  - HTTP several DB servers: 9,604 assertions passed  3.98s
     4818 B, first 2.55ms, done 1.21s i.e. 824/s, aver. 1.21ms, 3.8 MB/s
     4818 B, first 1.68ms, done 1.07s i.e. 932/s, aver. 1.07ms, 4.3 MB/s
     4818 B, first 1.81ms, done 1.07s i.e. 933/s, aver. 1.07ms, 4.3 MB/s
  Total failed: 0 / 28,103  - Client server access PASSED  9.21s

 2.7. Service oriented architecture:
  - Weak interfaces: 56 assertions passed  16.10ms
  - Service initialization: 200 assertions passed  30.81ms
  - Direct call: 566,568 assertions passed  60.37ms
  - Server side: 566,587 assertions passed  59.88ms
  - Client side REST: 566,592 assertions passed  1.12s
  - Client side REST result as object: 566,586 assertions passed  1.10s
  - Client side REST synchronized: 94 assertions passed  7.57ms

! Exception EInterfaceFactoryException raised with messsage:
!  Invalid fake ICalculator.ComplexCall interface call: : {
"ErrorCode":500,
"ErrorText":"Exception EAccessViolation: Access violation at address 00464F04 in
 module 'TestSQL3.exe'. Read of address 00186000"
}


Synopse framework used: 1.18
SQlite3 engine used: 3.8.2
Generated with: Delphi XE compiler

Time elapsed for all tests: 109.23s
Tests performed at 2014-1-25 14:18:29

Total assertions failed for all test suits:  13 / 28,798,825
! Some tests FAILED: please correct the code.

Done - Press ENTER to Exit

log content

20140125 14164709 fail  TTestLowLevelTypes(0117A8E8) Low level types: BSON "" stack trace API 00495016 004995F2 00485DFD 0063564D 00486A22 006655D7 0066B3D9 7C82F23B 
20140125 14165911 warn  Test failed 
20140125 14165911 fail  TTestSynopsePDF(0117ABF8) Synopse PDF: TPdfDocument "" stack trace API 00495016 004995F2 00485DFD 00640519 00486A22 006655D7 0066B3D9 7C82F23B 
20140125 14181746 warn  Test failed 
20140125 14181746 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 00495016 004995F2 00485DFD 0063B87A 00486A22 006655D7 0066B3D9 7C82F23B 
20140125 14181746 warn  Test failed 
20140125 14181746 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 00495016 004995F2 00485DFD 0063B924 00486A22 006655D7 0066B3D9 7C82F23B 
20140125 14181746 warn  Test failed 
20140125 14181746 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 00495016 004995F2 00485DFD 0063BA19 00486A22 006655D7 0066B3D9 7C82F23B 
20140125 14181746 warn  Test failed 
20140125 14181746 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 00495016 004995F2 00485DFD 0063BCA8 00486A22 006655D7 0066B3D9 7C82F23B 
20140125 14181746 warn  Test failed 
20140125 14181746 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 00495016 004995F2 00485DFD 0063BE2F 00486A22 006655D7 0066B3D9 7C82F23B 
20140125 14181746 warn  Test failed 
20140125 14181746 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 00495016 004995F2 00485DFD 0063C00D 00486A22 006655D7 0066B3D9 7C82F23B 
20140125 14181746 warn  Test failed 
20140125 14181746 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 00495016 004995F2 00485DFD 0063C0A7 00486A22 006655D7 0066B3D9 7C82F23B 
20140125 14181746 warn  Test failed JSON object as text
20140125 14181746 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "JSON object as text" stack trace API 00495016 004995F2 00485DFD 0063C123 00486A22 006655D7 0066B3D9 7C82F23B 
20140125 14181746 warn  Test failed 
20140125 14181746 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 00495016 004995F2 00485DFD 0063C17E 00486A22 006655D7 0066B3D9 7C82F23B 
20140125 14181746 warn  Test failed 
20140125 14181746 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 00495016 004995F2 00485DFD 0063C368 00486A22 006655D7 0066B3D9 7C82F23B 
20140125 14181746 warn  Test failed 
20140125 14181746 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 00495016 004995F2 00485DFD 0063C3D2 00486A22 006655D7 0066B3D9 7C82F23B 
20140125 14182924 EXCOS EAccessViolation (C0000005) at 00464F04  stack trace API 00493F14 00406FC4 7C958723 7C95855E 0047F57B 0047EFE6 005969D1 0058EA17 0058F336 
20140125 14182924 EXCOS EAccessViolation (C0000005) at 00464F04  stack trace API 00493F14 0040714C 
20140125 14182924 EXC   EInterfaceFactoryException ("Invalid fake ICalculator.ComplexCall interface call: : {\r\n\"ErrorCode\":500,\r\n\"ErrorText\":\"Exception EAccessViolation: Access violation at address 00464F04 in module 'TestSQL3.exe'. Read of address 00186000\"\r\n}") at 0058E822  stack trace API 00493F14 0040714C 

so i turn project map file to detail, then rebuild test, run 10 times, only at tenth, see exception, the first to ninth no exception.

log content is :

20140125 15361344 fail  TTestLowLevelTypes(0117A8E8) Low level types: BSON "" stack trace API 0023464D SynSelfTests.TTestLowLevelTypes._BSON (4364) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15362546 warn  Test failed 
20140125 15362546 fail  TTestSynopsePDF(0117ABF8) Synopse PDF: TPdfDocument "" stack trace API 0023F519 SynSelfTests.TTestSynopsePDF._TPdfDocument (5518) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15374440 warn  Test failed 
20140125 15374440 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023A87A SynSelfTests.TTestBasicClasses._TSQLRecord (4772) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15374440 warn  Test failed 
20140125 15374440 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023A924 SynSelfTests.TTestBasicClasses._TSQLRecord (4782) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15374440 warn  Test failed 
20140125 15374440 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023AA19 SynSelfTests.TTestBasicClasses._TSQLRecord (4795) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15374440 warn  Test failed 
20140125 15374440 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023ACA8 SynSelfTests.TTestBasicClasses._TSQLRecord (4814) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15374440 warn  Test failed 
20140125 15374440 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023AE2F SynSelfTests.TTestBasicClasses._TSQLRecord (4826) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15374440 warn  Test failed 
20140125 15374440 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023B00D SynSelfTests.TTestBasicClasses._TSQLRecord (4840) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15374440 warn  Test failed 
20140125 15374440 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023B0A7 SynSelfTests.TTestBasicClasses._TSQLRecord (4846) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15374440 warn  Test failed JSON object as text
20140125 15374440 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "JSON object as text" stack trace API 0023B123 SynSelfTests.TTestBasicClasses._TSQLRecord (4849) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15374440 warn  Test failed 
20140125 15374440 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023B17E SynSelfTests.TTestBasicClasses._TSQLRecord (4851) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15374440 warn  Test failed 
20140125 15374440 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023B368 SynSelfTests.TTestBasicClasses._TSQLRecord (4861) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15374440 warn  Test failed 
20140125 15374440 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023B3D2 SynSelfTests.TTestBasicClasses._TSQLRecord (4864) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15375351 EXCOS EAccessViolation (C0000005) at 00063F56 SynCommons.RawUnicodeToUtf8 (11085)  stack trace API 00092F14 SynCommons.SynRtlUnwind (35514) 0000614C System.@HandleOnException 
20140125 15375351 EXC   EInterfaceFactoryException ("Invalid fake ICalculator.ComplexCall interface call: : {\r\n\"ErrorCode\":500,\r\n\"ErrorText\":\"Exception EAccessViolation: Access violation at address 00464F56 in module 'TestSQL3.exe'. Read of address 00196000\"\r\n}") at 0018D822 mORMot.RaiseError (32453)  stack trace API 00092F14 SynCommons.SynRtlUnwind (35514) 0000614C System.@HandleOnException 

then I turn project map file off, rebuild test, seems easy to see exception, at second run, exception happend:

   Synopse mORMot Framework Automated tests
  ------------------------------------------


1. Synopse libraries

 1.1. Low level common:
  - System copy record: 22 assertions passed  600us
  - TDynArray: 1,027,702 assertions passed  446.32ms
  - TDynArrayHashed: 1,200,629 assertions passed  433.42ms
  - TObjectListHashed: 999,887 assertions passed  1.08s
  - Fast string compare: 7 assertions passed  268us
  - IdemPropName: 30 assertions passed  377us
  - Url encoding: 105 assertions passed  2.10ms
  - GUID: 9,005 assertions passed  6.28ms
  - IsMatch: 599 assertions passed  534us
  - Soundex: 35 assertions passed  462us
  - Numerical conversions: 1,062,848 assertions passed  550.52ms
  - Curr 64: 20,053 assertions passed  3.40ms
  - CamelCase: 11 assertions passed  500us
  - Bits: 4,774 assertions passed  623us
  - Ini files: 7,004 assertions passed  44.19ms
  - UTF8: 79,102 assertions passed  3.11s
  - Iso 8601 date and time: 24,006 assertions passed  13.58ms
  - Url decoding: 1,100 assertions passed  2.37ms
  - Mime types: 20 assertions passed  1.63ms
  - TSynTable: 873 assertions passed  11.68ms
  - TSynCache: 404 assertions passed  1.12ms
  - TSynFilter: 1,005 assertions passed  8.61ms
  - TSynValidate: 677 assertions passed  3.86ms
  - TSynLogFile: 42 assertions passed  3.17ms
  Total failed: 0 / 4,439,940  - Low level common PASSED  5.74s

 1.2. Low level types:
  - RTTI: 52 assertions passed  404us
  - Url encoding: 200 assertions passed  1.43ms
  - Encode decode JSON: 261,982 assertions passed  339.82ms
  - TDocVariant: 1,597 assertions passed  70.28ms
!  - BSON: 1 / 20,000,123 FAILED  507.48ms
  Total failed: 1 / 20,263,954  - Low level types FAILED  922.59ms

 1.3. Big table:
  - TSynBigTable: 19,120 assertions passed  218.27ms
  - TSynBigTableString: 16,128 assertions passed  69.29ms
  - TSynBigTableMetaData: 384,060 assertions passed  3.30s
  - TSynBigTableRecord: 452,185 assertions passed  7.76s
  Total failed: 0 / 871,493  - Big table PASSED  11.36s

 1.4. Synopse PDF:
!  - TPdfDocument: 1 / 2 FAILED  28.41ms
  - TPdfDocumentGDI: 5 assertions passed  121.07ms
  Total failed: 1 / 7  - Synopse PDF FAILED  151.86ms

 1.5. Cryptographic routines:
  - Adler32: 1 assertion passed  507us
  - MD5: 1 assertion passed  355us
  - SHA1: 5 assertions passed  322us
  - SHA256: 5 assertions passed  371us
  - AES256: 16,815 assertions passed  1.63s
  - RC4: 1 assertion passed  922us
  - Base64: 11,994 assertions passed  343.69ms
  - CompressShaAes: 1,683 assertions passed  12.14ms
  Total failed: 0 / 30,505  - Cryptographic routines PASSED  2.00s

 1.6. Compression:
  - In memory compression: 12 assertions passed  526.35ms
  - GZIP format: 19 assertions passed  1.09s
  - ZIP format: 36 assertions passed  1.97s
  - SynLZO: 3,006 assertions passed  176.55ms
  - SynLZ: 29,018 assertions passed  1.04s
  Total failed: 0 / 32,091  - Compression PASSED  4.82s


2. mORMot

 2.1. File based:
  - Database direct access: 10,138 assertions passed  517.73ms
  - Virtual table direct access: 12 assertions passed  4.14ms
  - TSQLTableJSON: 109,072 assertions passed  250.47ms
  - TSQLRestClientDB: 605,151 assertions passed  15.28s
  - Regexp function: 6,016 assertions passed  68.21ms
  Total failed: 0 / 730,389  - File based PASSED  16.13s

 2.2. File based memory map:
  - Database direct access: 10,136 assertions passed  544.73ms
  - Virtual table direct access: 12 assertions passed  8.74ms
  - TSQLTableJSON: 109,072 assertions passed  310.45ms
  - TSQLRestClientDB: 605,150 assertions passed  15.35s
  - Regexp function: 6,016 assertions passed  59.76ms
  Total failed: 0 / 730,386  - File based memory map PASSED  16.28s

 2.3. File based WAL:
  - Database direct access: 10,138 assertions passed  555.01ms
  - Virtual table direct access: 12 assertions passed  2.37ms
  - TSQLTableJSON: 109,072 assertions passed  237.44ms
  - TSQLRestClientDB: 605,151 assertions passed  16.06s
  - Regexp function: 6,016 assertions passed  52.22ms
  Total failed: 0 / 730,389  - File based WAL PASSED  16.91s

 2.4. Memory based:
  - Database direct access: 10,136 assertions passed  474.63ms
  - Virtual table direct access: 12 assertions passed  5.02ms
  - TSQLTableJSON: 109,072 assertions passed  274.62ms
  - TSQLRestClientDB: 673,447 assertions passed  16.79s
  - Regexp function: 6,016 assertions passed  76.08ms
  - RTree: 140,000 assertions passed  2.31s
  Total failed: 0 / 938,683  - Memory based PASSED  19.94s

 2.5. Basic classes:
!  - TSQLRecord: 11 / 65 FAILED  1.50ms
  - TSQLRecordSigned: 200 assertions passed  6.97ms
  - TSQLModel: 3 assertions passed  305us
  Total failed: 11 / 268  - Basic classes FAILED  9.66ms

 2.6. Client server access:
  - TSQLHttpServer: 2 assertions passed  13.50ms
     using THttpApiServer
  - TSQLHttpClient: 3 assertions passed  61.82ms
  - HTTP client keep alive: 3,087 assertions passed  1.16s
     4818 B, first 10.18ms, done 1.09s i.e. 910/s, aver. 1.09ms, 4.2 MB/s
  - HTTP client multi connect: 3,087 assertions passed  1.15s
     4818 B, first 1.73ms, done 1.10s i.e. 902/s, aver. 1.10ms, 4.2 MB/s
  - HTTP client encrypted: 3,087 assertions passed  1.20s
     4818 B, first 1.04ms, done 1.14s i.e. 870/s, aver. 1.14ms, 4.0 MB/s
  - Named pipe access: 3,089 assertions passed  1.05s
     4818 B, first 259.29ms, done 562.55ms i.e. 1777/s, aver. 562us, 8.3 MB/s
  - Local window messages: 3,088 assertions passed  146.84ms
     4818 B, first 909us, done 130.80ms i.e. 7645/s, aver. 130us, 35.7 MB/s
  - Direct in process access: 3,056 assertions passed  79.36ms
     4818 B, first 85us, done 69.07ms i.e. 14477/s, aver. 69us, 67.6 MB/s
  - HTTP several DB servers: 9,604 assertions passed  3.78s
     4818 B, first 1.78ms, done 1.05s i.e. 945/s, aver. 1.05ms, 4.4 MB/s
     4818 B, first 1.89ms, done 1.06s i.e. 939/s, aver. 1.06ms, 4.3 MB/s
     4818 B, first 1.57ms, done 1.06s i.e. 940/s, aver. 1.06ms, 4.3 MB/s
  Total failed: 0 / 28,103  - Client server access PASSED  8.67s

 2.7. Service oriented architecture:
  - Weak interfaces: 56 assertions passed  588us
  - Service initialization: 200 assertions passed  6.22ms
  - Direct call: 566,568 assertions passed  63.33ms
  - Server side: 566,587 assertions passed  61.63ms
  - Client side REST: 566,592 assertions passed  1.06s
  - Client side REST result as object: 566,586 assertions passed  1.14s
  - Client side REST synchronized: 566,586 assertions passed  5.80s
  - Client side REST weak authentication: 566,586 assertions passed  1.00s
  - Client side REST custom record layout: 566,586 assertions passed  1.10s
  - Client side JSONRPC: 566,586 assertions passed  1.16s

! Exception EInterfaceFactoryException raised with messsage:
!  Invalid fake ICalculator.ComplexCall interface call: : {
"ErrorCode":500,
"ErrorText":"Exception EAccessViolation: Access violation at address 00464F04 in
 module 'TestSQL3.exe'. Read of address 00188000"
}


Synopse framework used: 1.18
SQlite3 engine used: 3.8.2
Generated with: Delphi XE compiler

Time elapsed for all tests: 114.71s
Tests performed at 2014-1-25 15:53:40

Total assertions failed for all test suits:  13 / 28,796,208
! Some tests FAILED: please correct the code.

Done - Press ENTER to Exit

log content:

20140125 15515215 fail  TTestLowLevelTypes(0117A8E8) Low level types: BSON "" stack trace API 0023464D SynSelfTests.TTestLowLevelTypes._BSON (4364) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15520341 warn  Test failed 
20140125 15520341 fail  TTestSynopsePDF(0117ABF8) Synopse PDF: TPdfDocument "" stack trace API 0023F519 SynSelfTests.TTestSynopsePDF._TPdfDocument (5518) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15531958 warn  Test failed 
20140125 15531958 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023A87A SynSelfTests.TTestBasicClasses._TSQLRecord (4772) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15531958 warn  Test failed 
20140125 15531958 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023A924 SynSelfTests.TTestBasicClasses._TSQLRecord (4782) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15531958 warn  Test failed 
20140125 15531958 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023AA19 SynSelfTests.TTestBasicClasses._TSQLRecord (4795) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15531958 warn  Test failed 
20140125 15531958 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023ACA8 SynSelfTests.TTestBasicClasses._TSQLRecord (4814) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15531958 warn  Test failed 
20140125 15531959 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023AE2F SynSelfTests.TTestBasicClasses._TSQLRecord (4826) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15531959 warn  Test failed 
20140125 15531959 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023B00D SynSelfTests.TTestBasicClasses._TSQLRecord (4840) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15531959 warn  Test failed 
20140125 15531959 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023B0A7 SynSelfTests.TTestBasicClasses._TSQLRecord (4846) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15531959 warn  Test failed JSON object as text
20140125 15531959 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "JSON object as text" stack trace API 0023B123 SynSelfTests.TTestBasicClasses._TSQLRecord (4849) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15531959 warn  Test failed 
20140125 15531959 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023B17E SynSelfTests.TTestBasicClasses._TSQLRecord (4851) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15531959 warn  Test failed 
20140125 15531959 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023B368 SynSelfTests.TTestBasicClasses._TSQLRecord (4861) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15531959 warn  Test failed 
20140125 15531959 fail  TTestBasicClasses(0117AD80) Basic classes: TSQLRecord "" stack trace API 0023B3D2 SynSelfTests.TTestBasicClasses._TSQLRecord (4864) 002645D7 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140125 15534022 EXCOS EAccessViolation (C0000005) at 00063F04 SynCommons.RawUnicodeToUtf8 (11073)  stack trace API 00092F14 SynCommons.SynRtlUnwind (35514) 0000614C System.@HandleOnException 
20140125 15534022 EXC   EInterfaceFactoryException ("Invalid fake ICalculator.ComplexCall interface call: : {\r\n\"ErrorCode\":500,\r\n\"ErrorText\":\"Exception EAccessViolation: Access violation at address 00464F04 in module 'TestSQL3.exe'. Read of address 00188000\"\r\n}") at 0018D822 mORMot.RaiseError (32453)  stack trace API 00092F14 SynCommons.SynRtlUnwind (35514) 0000614C System.@HandleOnException 

#90 Re: mORMot 1 » First time, run TestSQL3.exe without IDE will always has Exception » 2014-01-24 04:43:44

seems AV occur at procedure TestOverHTTP, when call TestCalculator, in TServiceCalculator.ComplexCall implement,

function TServiceCalculator.ComplexCall(const Ints: TIntegerDynArray;
  Strs1: TRawUTF8DynArray; var Str2: TWideStringDynArray; const Rec1: TVirtualTableModuleProperties;
  var Rec2: TSQLRestCacheEntryValue; Float1: double; var Float2: double): TSQLRestCacheEntryValue;
var i: integer;
begin
  result := Rec2;
  result.JSON := StringToUTF8(Rec1.FileExtension);
  i := length(Str2);
  SetLength(Str2,i+1);
//  Str2[i] := UTF8ToWideString(RawUTF8ArrayToCSV(Strs1));  //<== AV occur at
  Str2[i] := UTF8ToString(RawUTF8ArrayToCSV(Strs1));
  inc(Rec2.ID);
  dec(Rec2.TimeStamp);
  Rec2.JSON := IntegerDynArrayToCSV(Ints,length(Ints));
  Float2 := Float1;
end;

after replace UTF8ToWideString to UTF8ToString, AV disappear, don't know why, now only some test failed left

log content like this:

20140124 12045344 fail  TTestLowLevelTypes(0116A8E8) Low level types: BSON "" stack trace API 00233C09 SynSelfTests.TTestLowLevelTypes._BSON (4364) 00263BAF mORMotSelfTests.SQLite3ConsoleTests (208) 
20140124 12050444 fail  TTestSynopsePDF(0116ABF8) Synopse PDF: TPdfDocument "" stack trace API 0023EAD5 SynSelfTests.TTestSynopsePDF._TPdfDocument (5518) 00263BAF mORMotSelfTests.SQLite3ConsoleTests (208) 
20140124 12061707 fail  TTestBasicClasses(0116AD80) Basic classes: TSQLRecord "" stack trace API 00239E36 SynSelfTests.TTestBasicClasses._TSQLRecord (4772) 00263BAF mORMotSelfTests.SQLite3ConsoleTests (208) 
20140124 12061707 fail  TTestBasicClasses(0116AD80) Basic classes: TSQLRecord "" stack trace API 00239EE0 SynSelfTests.TTestBasicClasses._TSQLRecord (4782) 00263BAF mORMotSelfTests.SQLite3ConsoleTests (208) 
20140124 12061707 fail  TTestBasicClasses(0116AD80) Basic classes: TSQLRecord "" stack trace API 00239FD5 SynSelfTests.TTestBasicClasses._TSQLRecord (4795) 00263BAF mORMotSelfTests.SQLite3ConsoleTests (208) 
20140124 12061707 fail  TTestBasicClasses(0116AD80) Basic classes: TSQLRecord "" stack trace API 0023A264 SynSelfTests.TTestBasicClasses._TSQLRecord (4814) 00263BAF mORMotSelfTests.SQLite3ConsoleTests (208) 
20140124 12061707 fail  TTestBasicClasses(0116AD80) Basic classes: TSQLRecord "" stack trace API 0023A3EB SynSelfTests.TTestBasicClasses._TSQLRecord (4826) 00263BAF mORMotSelfTests.SQLite3ConsoleTests (208) 
20140124 12061707 fail  TTestBasicClasses(0116AD80) Basic classes: TSQLRecord "" stack trace API 0023A5C9 SynSelfTests.TTestBasicClasses._TSQLRecord (4840) 00263BAF mORMotSelfTests.SQLite3ConsoleTests (208) 
20140124 12061707 fail  TTestBasicClasses(0116AD80) Basic classes: TSQLRecord "" stack trace API 0023A663 SynSelfTests.TTestBasicClasses._TSQLRecord (4846) 00263BAF mORMotSelfTests.SQLite3ConsoleTests (208) 
20140124 12061707 fail  TTestBasicClasses(0116AD80) Basic classes: TSQLRecord "JSON object as text" stack trace API 0023A6DF SynSelfTests.TTestBasicClasses._TSQLRecord (4849) 00263BAF mORMotSelfTests.SQLite3ConsoleTests (208) 
20140124 12061707 fail  TTestBasicClasses(0116AD80) Basic classes: TSQLRecord "" stack trace API 0023A73A SynSelfTests.TTestBasicClasses._TSQLRecord (4851) 00263BAF mORMotSelfTests.SQLite3ConsoleTests (208) 
20140124 12061707 fail  TTestBasicClasses(0116AD80) Basic classes: TSQLRecord "" stack trace API 0023A924 SynSelfTests.TTestBasicClasses._TSQLRecord (4861) 00263BAF mORMotSelfTests.SQLite3ConsoleTests (208) 
20140124 12061707 fail  TTestBasicClasses(0116AD80) Basic classes: TSQLRecord "" stack trace API 0023A98E SynSelfTests.TTestBasicClasses._TSQLRecord (4864) 00263BAF mORMotSelfTests.SQLite3ConsoleTests (208) 
20140124 12063900 EXC   EInterfaceFactoryException ("Invalid fake ICalculator.Add interface call: TInterfaceStub returned error: expected exception") at 0018CFDA mORMot.RaiseError (32346)  stack trace API 00092E8C SynCommons.SynRtlUnwind (35456) 0000614C System.@HandleOnException 
20140124 12063900 EXC   ESynException ("expected exception") at 00191ED2 mORMot.TInterfaceStub.Invoke (33713)  stack trace API 00092E8C SynCommons.SynRtlUnwind (35456) 0000614C System.@HandleOnException 
20140124 12065443 EXC   ECrtSocket ("SockRecvLn 10053") at 000A6BE6 SynCrtSock.TCrtSocket.SockRecvLn (1868)  stack trace API 00092E8C SynCommons.SynRtlUnwind (35456) 0000614C System.@HandleOnException 
20140124 12065444 EXC   ECrtSocket ("SockRecvLn 10053") at 000A6BE6 SynCrtSock.TCrtSocket.SockRecvLn (1868)  stack trace API 00092E8C SynCommons.SynRtlUnwind (35456) 0000614C System.@HandleOnException 
20140124 12065445 EXC   ECrtSocket ("SndLow -10053") at 000A6463 SynCrtSock.TCrtSocket.SndLow (1652)  stack trace API 00092E8C SynCommons.SynRtlUnwind (35456) 0000614C System.@HandleOnException 
20140124 12065445 EXC   ECrtSocket ("SockRecvLn 10053") at 000A6BE6 SynCrtSock.TCrtSocket.SockRecvLn (1868)  stack trace API 00092E8C SynCommons.SynRtlUnwind (35456) 0000614C System.@HandleOnException 
20140124 12065449 EXCOS EAccessViolation (C0000005) at 000A85ED SynCrtSock.THttpServerResp.ResetServer (2656)  stack trace API 00092E8C SynCommons.SynRtlUnwind (35456) 00005FC4 System.@HandleAnyException 000A89BA SynCrtSock.THttpServerResp.Execute (2751) 0004D04D Classes.ThreadProc 00006A2A System.ThreadWrapper 
20140124 12065449 EXCOS EAccessViolation (C0000005) at  stack trace API 00092E8C SynCommons.SynRtlUnwind (35456) 00005FC4 System.@HandleAnyException 000A86A2 SynCrtSock.THttpServerResp.ResetServer (2669) 000A89BA SynCrtSock.THttpServerResp.Execute (2751) 0004D04D Classes.ThreadProc 00006A2A System.ThreadWrapper 

use the last daily build and DelphiXE, thanks!

#91 Re: mORMot 1 » First time, run TestSQL3.exe without IDE will always has Exception » 2014-01-16 01:44:40

thank your quick fix, update to 2014-01-15 build, make a full build and
then run not from ide, very glad to see some failed test has passed, but when
run to section  2.7. Service oriented architecture, there still has exception,
then test stop, so i change project map file to Detailed, then rebuild, then run not from ide,
console output is below:

   Synopse mORMot Framework Automated tests
  ------------------------------------------


1. Synopse libraries

 1.1. Low level common:
  - System copy record: 22 assertions passed  3.14ms
  - TDynArray: 1,027,702 assertions passed  515.72ms
  - TDynArrayHashed: 1,200,629 assertions passed  395.13ms
  - TObjectListHashed: 999,884 assertions passed  948.23ms
  - Fast string compare: 7 assertions passed  334us
  - IdemPropName: 30 assertions passed  1.27ms
  - Url encoding: 105 assertions passed  2.41ms
  - GUID: 9,005 assertions passed  5.95ms
  - IsMatch: 599 assertions passed  828us
  - Soundex: 35 assertions passed  231us
  - Numerical conversions: 895,938 assertions passed  336.35ms
  - Curr 64: 20,053 assertions passed  4.92ms
  - CamelCase: 11 assertions passed  1.07ms
  - Bits: 4,774 assertions passed  1.02ms
  - Ini files: 7,004 assertions passed  85.90ms
  - UTF8: 78,102 assertions passed  2.87s
  - Iso 8601 date and time: 24,006 assertions passed  10.35ms
  - Url decoding: 1,100 assertions passed  1.27ms
  - Mime types: 20 assertions passed  535us
  - TSynTable: 41 assertions passed  3.94ms
  - TSynCache: 404 assertions passed  549us
  - TSynFilter: 1,005 assertions passed  5.02ms
  - TSynValidate: 677 assertions passed  1.47ms
  - TSynLogFile: 42 assertions passed  2.55ms
  Total failed: 0 / 4,271,195  - Low level common PASSED  5.21s

 1.2. Low level types:
  - RTTI: 52 assertions passed  28.59ms
  - Url encoding: 200 assertions passed  12.58ms
  - Encode decode JSON: 261,851 assertions passed  328.30ms
  - TSynDocumentVariant: 817 assertions passed  36.38ms
!  - BSON: 1 / 20,000,015 FAILED  537.44ms
  Total failed: 1 / 20,262,935  - Low level types FAILED  950.92ms

 1.3. Big table:
  - TSynBigTable: 19,280 assertions passed  183.54ms
  - TSynBigTableString: 16,165 assertions passed  68.80ms
  - TSynBigTableMetaData: 384,060 assertions passed  3.24s
  - TSynBigTableRecord: 452,185 assertions passed  8.26s
  Total failed: 0 / 871,690  - Big table PASSED  11.76s

 1.4. Synopse PDF:
!  - TPdfDocument: 1 / 2 FAILED  38.59ms
  - TPdfDocumentGDI: 5 assertions passed  119.69ms
  Total failed: 1 / 7  - Synopse PDF FAILED  162.32ms

 1.5. Cryptographic routines:
  - Adler32: 1 assertion passed  633us
  - MD5: 1 assertion passed  591us
  - SHA1: 5 assertions passed  474us
  - SHA256: 5 assertions passed  356us
  - AES256: 16,815 assertions passed  1.69s
  - RC4: 1 assertion passed  2.32ms
  - Base64: 11,994 assertions passed  281.73ms
  - CompressShaAes: 1,683 assertions passed  7.51ms
  Total failed: 0 / 30,505  - Cryptographic routines PASSED  1.99s

 1.6. Compression:
  - In memory compression: 12 assertions passed  536.97ms
  - GZIP format: 19 assertions passed  1.06s
  - ZIP format: 36 assertions passed  1.93s
  - SynLZO: 3,006 assertions passed  180.08ms
  - SynLZ: 29,018 assertions passed  1.12s
  Total failed: 0 / 32,091  - Compression PASSED  4.85s


2. mORMot

 2.1. File based:
  - Database direct access: 10,138 assertions passed  506.89ms
  - Virtual table direct access: 12 assertions passed  15.66ms
  - TSQLTableJSON: 109,072 assertions passed  279.69ms
  - TSQLRestClientDB: 605,151 assertions passed  14.62s
  - Regexp function: 6,016 assertions passed  54.00ms
  Total failed: 0 / 730,389  - File based PASSED  15.48s

 2.2. File based memory map:
  - Database direct access: 10,136 assertions passed  489.75ms
  - Virtual table direct access: 12 assertions passed  4.79ms
  - TSQLTableJSON: 109,072 assertions passed  268.36ms
  - TSQLRestClientDB: 605,150 assertions passed  14.72s
  - Regexp function: 6,016 assertions passed  48.29ms
  Total failed: 0 / 730,386  - File based memory map PASSED  15.54s

 2.3. File based WAL:
  - Database direct access: 10,138 assertions passed  511.02ms
  - Virtual table direct access: 12 assertions passed  2.83ms
  - TSQLTableJSON: 109,072 assertions passed  246.39ms
  - TSQLRestClientDB: 605,151 assertions passed  14.72s
  - Regexp function: 6,016 assertions passed  52.75ms
  Total failed: 0 / 730,389  - File based WAL PASSED  15.54s

 2.4. Memory based:
  - Database direct access: 10,136 assertions passed  510.95ms
  - Virtual table direct access: 12 assertions passed  3.90ms
  - TSQLTableJSON: 109,072 assertions passed  268.46ms
  - TSQLRestClientDB: 673,447 assertions passed  15.90s
  - Regexp function: 6,016 assertions passed  68.26ms
  - RTree: 140,000 assertions passed  2.33s
  Total failed: 0 / 938,683  - Memory based PASSED  19.10s

 2.5. Basic classes:
!  - TSQLRecord: 7 / 52 FAILED  1.35ms
  - TSQLRecordSigned: 200 assertions passed  7.40ms
  - TSQLModel: 3 assertions passed  363us
  Total failed: 7 / 255  - Basic classes FAILED  13.82ms

 2.6. Client server access:
  - TSQLHttpServer: 2 assertions passed  28.04ms
     using THttpApiServer
  - TSQLHttpClient: 3 assertions passed  83.89ms
  - Http client keep alive: 3,085 assertions passed  1.16s
     4818 B, first 11.09ms, done 1.09s i.e. 912/s, aver. 1.09ms, 4.2 MB/s
  - Http client multi connect: 3,085 assertions passed  1.18s
     4818 B, first 1.20ms, done 1.09s i.e. 916/s, aver. 1.09ms, 4.2 MB/s
  - Http client encrypted: 3,085 assertions passed  1.15s
     4818 B, first 1.61ms, done 1.10s i.e. 906/s, aver. 1.10ms, 4.2 MB/s
  - Named pipe access: 3,087 assertions passed  1.01s
     4818 B, first 260.24ms, done 523.32ms i.e. 1910/s, aver. 523us, 8.9 MB/s
  - Local window messages: 3,086 assertions passed  90.25ms
     4818 B, first 256us, done 78.56ms i.e. 12727/s, aver. 78us, 59.5 MB/s
  - Direct in process access: 3,054 assertions passed  70.03ms
     4818 B, first 82us, done 60.43ms i.e. 16547/s, aver. 60us, 77.3 MB/s
  Total failed: 0 / 18,487  - Client server access PASSED  4.81s

 2.7. Service oriented architecture:
  - Weak interfaces: 56 assertions passed  802us
  - Service initialization: 200 assertions passed  20.37ms
  - Direct call: 566,568 assertions passed  59.76ms
  - Server side: 566,587 assertions passed  59.18ms
  - Client side REST: 566,592 assertions passed  1.08s
  - Client side REST result as object: 566,586 assertions passed  1.04s
  - Client side REST synchronized: 71 assertions passed  5.91ms
  - Client side REST weak authentication: 566,586 assertions passed  1.04s
  - Client side REST custom record layout: 566,586 assertions passed  1.06s
  - Client side JSONRPC: 566,586 assertions passed  1.07s

! Exception EInterfaceFactoryException raised with messsage:
!  Invalid fake ICalculator.Add interface call: :


Synopse framework used: 1.18
SQlite3 engine used: 3.8.2
Generated with: Delphi XE compiler

Time elapsed for all tests: 131.63s
Tests performed at 2014-1-16 9:19:59

Total assertions failed for all test suits:  9 / 28,617,012
! Some tests FAILED: please correct the code.

Done - Press ENTER to Exit

log content is:

20140116 09175337 fail  TTestLowLevelTypes(0116A8E8) Low level types: BSON "" stack trace API 0022C608 SynSelfTests.TTestLowLevelTypes._BSON (4228) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140116 09180526 fail  TTestSynopsePDF(0116AC68) Synopse PDF: TPdfDocument "" stack trace API 0023440D SynSelfTests.TTestSynopsePDF._TPdfDocument (5215) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140116 09191811 fail  TTestBasicClasses(0116ADF0) Basic classes: TSQLRecord "" stack trace API 0022FDD9 SynSelfTests.TTestBasicClasses._TSQLRecord (4497) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140116 09191811 fail  TTestBasicClasses(0116ADF0) Basic classes: TSQLRecord "" stack trace API 0022FE83 SynSelfTests.TTestBasicClasses._TSQLRecord (4507) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140116 09191811 fail  TTestBasicClasses(0116ADF0) Basic classes: TSQLRecord "" stack trace API 0022FF78 SynSelfTests.TTestBasicClasses._TSQLRecord (4520) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140116 09191811 fail  TTestBasicClasses(0116ADF0) Basic classes: TSQLRecord "" stack trace API 00230207 SynSelfTests.TTestBasicClasses._TSQLRecord (4539) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140116 09191811 fail  TTestBasicClasses(0116ADF0) Basic classes: TSQLRecord "" stack trace API 00230388 SynSelfTests.TTestBasicClasses._TSQLRecord (4551) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140116 09191811 fail  TTestBasicClasses(0116ADF0) Basic classes: TSQLRecord "" stack trace API 00230556 SynSelfTests.TTestBasicClasses._TSQLRecord (4565) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140116 09191811 fail  TTestBasicClasses(0116ADF0) Basic classes: TSQLRecord "" stack trace API 002305E0 SynSelfTests.TTestBasicClasses._TSQLRecord (4566) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140116 09192520 EXCOS EAccessViolation (C0000005) at 00063B30 SynCommons.RawUnicodeToUtf8 (10634)  stack trace API 00091CC4 SynCommons.SynRtlUnwind (34733) 00005FC4 System.@HandleAnyException 0007CEDB SynCommons.TTextWriter.AddDynArrayJSON (26442) 0007C94A SynCommons.TTextWriter.AddDynArrayJSON (26347) 00193A4A mORMot.TServiceMethodArgument.AddJSON (34578) 0018BAFF mORMot.InternalProcess (32391) 0018C3E6 mORMot.TInterfacedObjectFake.FakeCall (32516) 
20140116 09195904 EXC   EOSError ("System Error.  Code: 12002.\r\n") at 00025195 SysUtils.RaiseLastOSError  stack trace API 00091CC4 SynCommons.SynRtlUnwind (34733) 0000614C System.@HandleOnException 
20140116 09195904 EXC   EInterfaceFactoryException ("Invalid fake ICalculator.Add interface call: : ") at 0018B90A mORMot.RaiseError (32338)  stack trace API 00091CC4 SynCommons.SynRtlUnwind (34733) 0000614C System.@HandleOnException 
20140116 09195906 EXC   EHttpApiServer ("HttpSendHttpResponse failed: 句柄无效。 (6)") at 000AB08A SynCrtSock.THttpApiServer.Execute (4272)  stack trace API 00091CC4 SynCommons.SynRtlUnwind (34733) 0000614C System.@HandleOnException 

but the exception (! Exception EInterfaceFactoryException raised with messsage:!  Invalid fake ICalculator.Add interface call: smile is not not same as first time,

so third time, i run testSQL3.exe from IDE, then exception disappear, the log content is :

20140116 09211812 fail  TTestLowLevelTypes(0107A8E8) Low level types: BSON "" stack trace API 0022C608 SynSelfTests.TTestLowLevelTypes._BSON (4228) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140116 09213105 fail  TTestSynopsePDF(0107AC68) Synopse PDF: TPdfDocument "" stack trace API 0023440D SynSelfTests.TTestSynopsePDF._TPdfDocument (5215) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140116 09224741 fail  TTestBasicClasses(0107ADF0) Basic classes: TSQLRecord "" stack trace API 0022FDD9 SynSelfTests.TTestBasicClasses._TSQLRecord (4497) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140116 09224917 fail  TTestBasicClasses(0107ADF0) Basic classes: TSQLRecord "" stack trace API 0022FE83 SynSelfTests.TTestBasicClasses._TSQLRecord (4507) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140116 09225049 fail  TTestBasicClasses(0107ADF0) Basic classes: TSQLRecord "" stack trace API 0022FF78 SynSelfTests.TTestBasicClasses._TSQLRecord (4520) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140116 09225129 fail  TTestBasicClasses(0107ADF0) Basic classes: TSQLRecord "" stack trace API 00230207 SynSelfTests.TTestBasicClasses._TSQLRecord (4539) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140116 09225206 fail  TTestBasicClasses(0107ADF0) Basic classes: TSQLRecord "" stack trace API 00230388 SynSelfTests.TTestBasicClasses._TSQLRecord (4551) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140116 09225241 fail  TTestBasicClasses(0107ADF0) Basic classes: TSQLRecord "" stack trace API 00230556 SynSelfTests.TTestBasicClasses._TSQLRecord (4565) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140116 09225307 fail  TTestBasicClasses(0107ADF0) Basic classes: TSQLRecord "" stack trace API 002305E0 SynSelfTests.TTestBasicClasses._TSQLRecord (4566) 00258E93 mORMotSelfTests.SQLite3ConsoleTests (208) 

I wish can find the reason why generate exception when NOT RUN FROM IDE, but no exception when from ide.
thanks!

#92 Re: mORMot 1 » First time, run TestSQL3.exe without IDE will always has Exception » 2014-01-15 14:33:53

ab wrote:

Could you help on this?

I am happy to do anything, what I need to do?


Another thing, since our OS missing some Western European character sets, in SynSelfTests.pas file

procedure TTestSynopsePDF._TPdfDocument;
...
      for i := 1 to 30 do begin
        Canvas.SetFont('Arial',9+i,[]);
        WS := 'Texte accentue n?+IntToString(i);  <==

this make we can't edit the file, if edit will not compile, can you change this line to:

        WS := 'Texte accentue n'+#$B0+IntToString(i);

thanks!

#93 Re: mORMot 1 » First time, run TestSQL3.exe without IDE will always has Exception » 2014-01-15 01:49:23

Update: Exception now is not alway generate on first run, you need run TestSQL3 some times(about ten times, need run NOT from IDE), you will see exception,

In 2014-01-08 build(http://synopse.info/fossil/info/37cd2be9b3), I run TestSQL3 more than ten times,
in console output don't see any exception, this is very good.

But in today build(2014-01-14), after success run TestSQL3.exe three time(important NOT FROM IDE),
then I again in console output see exception(at 2.7. Service oriented architecture test section):

   Synopse mORMot Framework Automated tests
  ------------------------------------------


1. Synopse libraries

 1.1. Low level common:
  - System copy record: 22 assertions passed  2.59ms
  - TDynArray: 1,027,702 assertions passed  437.63ms
  - TDynArrayHashed: 1,200,629 assertions passed  429.39ms
  - TObjectListHashed: 999,882 assertions passed  1.02s
  - Fast string compare: 7 assertions passed  404us
!  - IdemPropName: 1 / 30 FAILED  9.41ms
  - Url encoding: 105 assertions passed  2.17ms
  - GUID: 9,005 assertions passed  5.31ms
  - IsMatch: 599 assertions passed  572us
!  - Soundex: 1 / 35 FAILED  420us
  - Numerical conversions: 896,407 assertions passed  337.01ms
  - Curr 64: 20,053 assertions passed  3.49ms
  - CamelCase: 11 assertions passed  336us
  - Bits: 4,774 assertions passed  356us
  - Ini files: 7,004 assertions passed  41.64ms
  - UTF8: 78,102 assertions passed  3.00s
  - Iso 8601 date and time: 24,006 assertions passed  9.94ms
  - Url decoding: 1,100 assertions passed  828us
  - Mime types: 20 assertions passed  589us
  - TSynTable: 41 assertions passed  2.37ms
  - TSynCache: 404 assertions passed  648us
  - TSynFilter: 1,005 assertions passed  5.08ms
  - TSynValidate: 677 assertions passed  1.70ms
  - TSynLogFile: 42 assertions passed  2.26ms
  Total failed: 2 / 4,271,662  - Low level common FAILED  5.33s

 1.2. Low level types:
  - RTTI: 52 assertions passed  514us
  - Url encoding: 200 assertions passed  1.53ms
  - Encode decode JSON: 261,851 assertions passed  296.01ms
  - TSynDocumentVariant: 764 assertions passed  101.46ms
  Total failed: 0 / 262,867  - Low level types PASSED  411.02ms

 1.3. Big table:
  - TSynBigTable: 19,191 assertions passed  239.50ms
  - TSynBigTableString: 16,115 assertions passed  70.25ms
  - TSynBigTableMetaData: 384,060 assertions passed  3.15s
  - TSynBigTableRecord: 452,185 assertions passed  7.48s
  Total failed: 0 / 871,551  - Big table PASSED  10.96s

 1.4. Synopse PDF:
!  - TPdfDocument: 1 / 2 FAILED  9.64ms
!  - TPdfDocumentGDI: 1 / 3 FAILED  55.67ms
  Total failed: 2 / 5  - Synopse PDF FAILED  68.84ms

 1.5. Cryptographic routines:
  - Adler32: 1 assertion passed  414us
  - MD5: 1 assertion passed  758us
  - SHA1: 5 assertions passed  626us
  - SHA256: 5 assertions passed  613us
  - AES256: 16,815 assertions passed  1.71s
  - RC4: 1 assertion passed  222us
  - Base64: 11,994 assertions passed  293.62ms
  - CompressShaAes: 1,683 assertions passed  6.90ms
  Total failed: 0 / 30,505  - Cryptographic routines PASSED  2.02s

 1.6. Compression:
  - In memory compression: 12 assertions passed  550.84ms
  - GZIP format: 19 assertions passed  1.04s
  - ZIP format: 36 assertions passed  1.96s
  - SynLZO: 3,006 assertions passed  182.14ms
  - SynLZ: 29,018 assertions passed  1.10s
  Total failed: 0 / 32,091  - Compression PASSED  4.86s


2. mORMot

 2.1. File based:
  - Database direct access: 10,138 assertions passed  459.17ms
  - Virtual table direct access: 12 assertions passed  3.67ms
  - TSQLTableJSON: 109,072 assertions passed  264.83ms
  - TSQLRestClientDB: 605,151 assertions passed  14.72s
  - Regexp function: 6,016 assertions passed  66.39ms
  Total failed: 0 / 730,389  - File based PASSED  15.53s

 2.2. File based memory map:
  - Database direct access: 10,136 assertions passed  452.81ms
  - Virtual table direct access: 12 assertions passed  2.91ms
  - TSQLTableJSON: 109,072 assertions passed  261.22ms
  - TSQLRestClientDB: 605,150 assertions passed  14.78s
  - Regexp function: 6,016 assertions passed  56.56ms
  Total failed: 0 / 730,386  - File based memory map PASSED  15.58s

 2.3. File based WAL:
  - Database direct access: 10,138 assertions passed  488.00ms
  - Virtual table direct access: 12 assertions passed  2.66ms
  - TSQLTableJSON: 109,072 assertions passed  255.78ms
  - TSQLRestClientDB: 605,151 assertions passed  14.69s
  - Regexp function: 6,016 assertions passed  55.27ms
  Total failed: 0 / 730,389  - File based WAL PASSED  15.50s

 2.4. Memory based:
  - Database direct access: 10,136 assertions passed  447.13ms
  - Virtual table direct access: 12 assertions passed  1.98ms
  - TSQLTableJSON: 109,072 assertions passed  251.65ms
  - TSQLRestClientDB: 673,447 assertions passed  16.06s
  - Regexp function: 6,016 assertions passed  56.43ms
  - RTree: 140,000 assertions passed  2.31s
  Total failed: 0 / 938,683  - Memory based PASSED  19.14s

 2.5. Basic classes:
!  - TSQLRecord: 7 / 52 FAILED  1.15ms
  - TSQLRecordSigned: 200 assertions passed  7.67ms
  - TSQLModel: 3 assertions passed  509us
  Total failed: 7 / 255  - Basic classes FAILED  14.07ms

 2.6. Client server access:
  - TSQLHttpServer: 2 assertions passed  25.90ms
     using THttpApiServer
  - TSQLHttpClient: 3 assertions passed  109.26ms
  - Http client keep alive: 3,085 assertions passed  1.51s
     4818 B, first 31.91ms, done 1.39s i.e. 718/s, aver. 1.39ms, 3.3 MB/s
  - Http client multi connect: 3,085 assertions passed  1.37s
     4818 B, first 4.54ms, done 1.24s i.e. 805/s, aver. 1.24ms, 3.7 MB/s
  - Http client encrypted: 3,085 assertions passed  1.33s
     4818 B, first 2.15ms, done 1.27s i.e. 786/s, aver. 1.27ms, 3.6 MB/s
  - Named pipe access: 3,087 assertions passed  1.06s
     4818 B, first 262.63ms, done 569.24ms i.e. 1756/s, aver. 569us, 8.2 MB/s
  - Local window messages: 3,086 assertions passed  100.31ms
     4818 B, first 797us, done 81.35ms i.e. 12291/s, aver. 81us, 57.4 MB/s
  - Direct in process access: 3,054 assertions passed  74.33ms
     4818 B, first 84us, done 62.56ms i.e. 15982/s, aver. 62us, 74.7 MB/s
  Total failed: 0 / 18,487  - Client server access PASSED  5.63s

 2.7. Service oriented architecture:
  - Weak interfaces: 56 assertions passed  681us
  - Service initialization: 200 assertions passed  5.23ms
  - Direct call: 566,568 assertions passed  60.22ms
  - Server side: 566,587 assertions passed  66.81ms
  - Client side REST: 566,592 assertions passed  1.13s
  - Client side REST result as object: 566,586 assertions passed  1.14s
  - Client side REST synchronized: 566,586 assertions passed  5.72s
  - Client side REST weak authentication: 566,586 assertions passed  1.05s
  - Client side REST custom record layout: 566,586 assertions passed  1.07s
  - Client side JSONRPC: 566,586 assertions passed  1.21s

! Exception EInterfaceFactoryException raised with messsage:
!  Invalid fake ICalculator.ComplexCall interface call: : {
"ErrorCode":500,
"ErrorText":"Exception EAccessViolation: Access violation at address 00464BA8 in
 module 'TestSQL3.exe'. Read of address 00193000"
}


Synopse framework used: 1.18
SQlite3 engine used: 3.8.2
Generated with: Delphi XE compiler

Time elapsed for all tests: 106.77s
Tests performed at 2014-1-15 9:22:32

Total assertions failed for all test suits:  11 / 8,617,270
! Some tests FAILED: please correct the code.

Done - Press ENTER to Exit

Turn Project Mapfile to Detailed, this is the log content, run two times, log is same:

20140115 09170441 fail  TTestLowLevelCommon(0116A878) Low level common: IdemPropName "" stack trace API 0021B4B1 SynSelfTests.TTestLowLevelCommon._IdemPropName (2478) 00255997 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140115 09170442 fail  TTestLowLevelCommon(0116A878) Low level common: Soundex "" stack trace API 0020C75A SynSelfTests.TTestLowLevelCommon.Soundex (1076) 00255997 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140115 09171928 fail  TTestSynopsePDF(0116AC68) Synopse PDF: TPdfDocument "" stack trace API 00230F8C SynSelfTests.TTestSynopsePDF._TPdfDocument (5142) 00255997 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140115 09171935 fail  TTestSynopsePDF(0116AC68) Synopse PDF: TPdfDocumentGDI "" stack trace API 00233294 SynSelfTests.TTestSynopsePDF._TPdfDocumentGDI (5312) 00255997 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140115 09183708 fail  TTestBasicClasses(0116ADF0) Basic classes: TSQLRecord "" stack trace API 0022C961 SynSelfTests.TTestBasicClasses._TSQLRecord (4425) 00255997 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140115 09183708 fail  TTestBasicClasses(0116ADF0) Basic classes: TSQLRecord "" stack trace API 0022CA0B SynSelfTests.TTestBasicClasses._TSQLRecord (4435) 00255997 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140115 09183708 fail  TTestBasicClasses(0116ADF0) Basic classes: TSQLRecord "" stack trace API 0022CB00 SynSelfTests.TTestBasicClasses._TSQLRecord (4448) 00255997 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140115 09183708 fail  TTestBasicClasses(0116ADF0) Basic classes: TSQLRecord "" stack trace API 0022CD8F SynSelfTests.TTestBasicClasses._TSQLRecord (4467) 00255997 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140115 09183708 fail  TTestBasicClasses(0116ADF0) Basic classes: TSQLRecord "" stack trace API 0022CF10 SynSelfTests.TTestBasicClasses._TSQLRecord (4479) 00255997 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140115 09183708 fail  TTestBasicClasses(0116ADF0) Basic classes: TSQLRecord "" stack trace API 0022D0DE SynSelfTests.TTestBasicClasses._TSQLRecord (4493) 00255997 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140115 09183708 fail  TTestBasicClasses(0116ADF0) Basic classes: TSQLRecord "" stack trace API 0022D168 SynSelfTests.TTestBasicClasses._TSQLRecord (4494) 00255997 mORMotSelfTests.SQLite3ConsoleTests (208) 
20140115 09185326 EXCOS EAccessViolation (C0000005) at 00063BA8 SynCommons.RawUnicodeToUtf8 (10584)  stack trace API 00091A74 SynCommons.SynRtlUnwind (34559) 0000614C System.@HandleOnException 
20140115 09185326 EXC   EInterfaceFactoryException ("Invalid fake ICalculator.ComplexCall interface call: : {\r\n\"ErrorCode\":500,\r\n\"ErrorText\":\"Exception EAccessViolation: Access violation at address 00464BA8 in module 'TestSQL3.exe'. Read of address 00193000\"\r\n}") at 0018B69A mORMot.RaiseError (32338)  stack trace API 00091A74 SynCommons.SynRtlUnwind (34559) 0000614C System.@HandleOnException 

Can you look at this, build use DelphiXE, thanks!

#95 Re: mORMot 1 » First time, run TestSQL3.exe without IDE will always has Exception » 2013-12-09 01:12:16

Update to 2013-12-08 test(http://synopse.info/fossil/info/542954f2cf):

below is the full console output:

   Synopse mORMot Framework Automated tests
  ------------------------------------------


1. Synopse libraries

 1.1. Low level common:
  - System copy record: 22 assertions passed  6.50ms
  - TDynArray: 1,027,702 assertions passed  453.83ms
  - TDynArrayHashed: 1,200,629 assertions passed  400.88ms
  - TObjectListHashed: 999,891 assertions passed  1.03s
  - Fast string compare: 7 assertions passed  258us
!  - IdemPropName: 1 / 24 FAILED  59.38ms
  - Url encoding: 105 assertions passed  2.18ms
  - IsMatch: 599 assertions passed  789us
!  - Soundex: 1 / 35 FAILED  331us
  - Numerical conversions: 886,980 assertions passed  332.80ms
  - Curr 64: 20,053 assertions passed  3.17ms
  - CamelCase: 11 assertions passed  367us
  - Bits: 4,774 assertions passed  377us
  - Ini files: 7,004 assertions passed  42.07ms
  - UTF8: 66,090 assertions passed  3.10s
  - Iso 8601 date and time: 24,006 assertions passed  8.10ms
  - Url decoding: 1,100 assertions passed  787us
  - Mime types: 19 assertions passed  502us
  - TSynTable: 41 assertions passed  1.67ms
  - TSynCache: 404 assertions passed  738us
  - TSynFilter: 1,005 assertions passed  5.12ms
  - TSynValidate: 677 assertions passed  1.61ms
  - TSynLogFile: 42 assertions passed  2.36ms
  Total failed: 2 / 4,241,220  - Low level common FAILED  5.48s

 1.2. Low level types:
  - RTTI: 46 assertions passed  18.27ms
  - Url encoding: 200 assertions passed  4.37ms
  - Encode decode JSON: 261,172 assertions passed  318.79ms
  Total failed: 0 / 261,418  - Low level types PASSED  346.29ms

 1.3. Big table:
  - TSynBigTable: 19,220 assertions passed  176.58ms
  - TSynBigTableString: 16,280 assertions passed  69.38ms
  - TSynBigTableMetaData: 384,060 assertions passed  3.24s
  - TSynBigTableRecord: 452,185 assertions passed  7.48s
  Total failed: 0 / 871,745  - Big table PASSED  10.98s

 1.4. Synopse PDF:
!  - TPdfDocument: 1 / 2 FAILED  29.15ms
!  - TPdfDocumentGDI: 1 / 3 FAILED  94.74ms
  Total failed: 2 / 5  - Synopse PDF FAILED  132.35ms

 1.5. Cryptographic routines:
  - Adler32: 1 assertion passed  1.43ms
  - MD5: 1 assertion passed  432us
  - SHA1: 5 assertions passed  836us
  - SHA256: 5 assertions passed  802us
  - AES256: 6,372 assertions passed  1.47s
  - RC4: 1 assertion passed  1.14ms
  - Base64: 11,994 assertions passed  707.14ms
  Total failed: 0 / 18,379  - Cryptographic routines PASSED  2.20s

 1.6. Compression:
  - In memory compression: 12 assertions passed  1.57s
  - GZIP format: 19 assertions passed  2.72s
  - ZIP format: 36 assertions passed  5.64s
  - SynLZO: 3,006 assertions passed  313.68ms
  - SynLZ: 29,018 assertions passed  1.27s
  Total failed: 0 / 32,091  - Compression PASSED  11.53s


2. mORMot

 2.1. File based:
  - Database direct access: 10,138 assertions passed  562.40ms
  - Virtual table direct access: 12 assertions passed  3.85ms
  - TSQLTableJSON: 109,072 assertions passed  282.12ms
  - TSQLRestClientDB: 605,151 assertions passed  15.34s
  - Regexp function: 6,016 assertions passed  90.82ms
  Total failed: 0 / 730,389  - File based PASSED  16.28s

 2.2. File based memory map:
  - Database direct access: 10,136 assertions passed  516.87ms
  - Virtual table direct access: 12 assertions passed  3.23ms
  - TSQLTableJSON: 109,072 assertions passed  267.14ms
  - TSQLRestClientDB: 605,150 assertions passed  15.12s
  - Regexp function: 6,016 assertions passed  58.51ms
  Total failed: 0 / 730,386  - File based memory map PASSED  15.97s

 2.3. File based WAL:
  - Database direct access: 10,138 assertions passed  524.74ms
  - Virtual table direct access: 12 assertions passed  2.74ms
  - TSQLTableJSON: 109,072 assertions passed  250.86ms
  - TSQLRestClientDB: 605,151 assertions passed  14.65s
  - Regexp function: 6,016 assertions passed  61.83ms
  Total failed: 0 / 730,389  - File based WAL PASSED  15.50s

 2.4. Memory based:
  - Database direct access: 10,136 assertions passed  537.08ms
  - Virtual table direct access: 12 assertions passed  2.11ms
  - TSQLTableJSON: 109,072 assertions passed  253.06ms
  - TSQLRestClientDB: 673,447 assertions passed  16.30s
  - Regexp function: 6,016 assertions passed  62.56ms
  Total failed: 0 / 798,683  - Memory based PASSED  17.16s

 2.5. Basic classes:
!  - TSQLRecord: 7 / 52 FAILED  1.88ms
  - TSQLRecordSigned: 200 assertions passed  14.23ms
  - TSQLModel: 3 assertions passed  880us
  Total failed: 7 / 255  - Basic classes FAILED  29.31ms

 2.6. Client server access:
  - TSQLHttpServer: 2 assertions passed  54.39ms
     using THttpApiServer
  - TSQLHttpClient: 3 assertions passed  113.69ms
  - Http client keep alive: 3,085 assertions passed  1.13s
     4818 B, first 13.26ms, done 1.06s i.e. 941/s, aver. 1.06ms, 4.4 MB/s
  - Http client multi connect: 3,085 assertions passed  1.12s
     4818 B, first 1.31ms, done 1.07s i.e. 933/s, aver. 1.07ms, 4.3 MB/s
  - Named pipe access: 3,087 assertions passed  1.06s
     4818 B, first 260.23ms, done 563.62ms i.e. 1774/s, aver. 563us, 8.2 MB/s
  - Local window messages: 3,086 assertions passed  93.50ms
     4818 B, first 220us, done 79.34ms i.e. 12603/s, aver. 79us, 58.9 MB/s
  - Direct in process access: 3,054 assertions passed  75.19ms
     4818 B, first 72us, done 61.00ms i.e. 16392/s, aver. 61us, 76.6 MB/s
  Total failed: 0 / 15,402  - Client server access PASSED  3.70s

 2.7. Service oriented architecture:
  - Weak interfaces: 56 assertions passed  23.54ms
  - Service initialization: 133 assertions passed  11.65ms
  - Direct call: 608,487 assertions passed  71.62ms
  - Server side: 608,506 assertions passed  82.39ms

! Exception EInterfaceFactoryException raised with messsage:
!  Invalid fake ICalculator.ComplexCall interface call: : {
"ErrorCode":500,
"ErrorText":"Exception EAccessViolation: Access violation at address 00462F4C in
 module 'TestSQL3.exe'. Read of address 00199000"
}


Synopse framework used: 1.18
SQlite3 engine used: 3.8.1
Generated with: Delphi XE compiler

Time elapsed for all tests: 99.66s
Tests performed at 2013-12-9 8:54:08

Total assertions failed for all test suits:  11 / 8,430,362
! Some tests FAILED: please correct the code.

Done - Press ENTER to Exit

this is the log file content, Stack Frames = TRUE , Map File = DETAILED

20131209 08523061 fail  TTestLowLevelCommon(0157A878) Low level common: IdemPropName "" stack trace API 00207EEC SynSelfTests.TTestLowLevelCommon._IdemPropName (2390) 0023B863 mORMotSelfTests.SQLite3ConsoleTests (211) 
20131209 08523061 fail  TTestLowLevelCommon(0157A878) Low level common: Soundex "" stack trace API 001F967E SynSelfTests.TTestLowLevelCommon.Soundex (1040) 0023B863 mORMotSelfTests.SQLite3ConsoleTests (211) 
20131209 08524555 fail  TTestSynopsePDF(0157ABF8) Synopse PDF: TPdfDocument "" stack trace API 00218EF8 SynSelfTests.TTestSynopsePDF._TPdfDocument (4673) 0023B863 mORMotSelfTests.SQLite3ConsoleTests (211) 
20131209 08524561 fail  TTestSynopsePDF(0157ABF8) Synopse PDF: TPdfDocumentGDI "" stack trace API 0021B200 SynSelfTests.TTestSynopsePDF._TPdfDocumentGDI (4843) 0023B863 mORMotSelfTests.SQLite3ConsoleTests (211) 
20131209 08540446 fail  TTestBasicClasses(0157AD48) Basic classes: TSQLRecord "" stack trace API 00214C20 SynSelfTests.TTestBasicClasses._TSQLRecord (4000) 0023B863 mORMotSelfTests.SQLite3ConsoleTests (211) 
20131209 08540446 fail  TTestBasicClasses(0157AD48) Basic classes: TSQLRecord "" stack trace API 00214CCA SynSelfTests.TTestBasicClasses._TSQLRecord (4010) 0023B863 mORMotSelfTests.SQLite3ConsoleTests (211) 
20131209 08540446 fail  TTestBasicClasses(0157AD48) Basic classes: TSQLRecord "" stack trace API 00214DBF SynSelfTests.TTestBasicClasses._TSQLRecord (4023) 0023B863 mORMotSelfTests.SQLite3ConsoleTests (211) 
20131209 08540446 fail  TTestBasicClasses(0157AD48) Basic classes: TSQLRecord "" stack trace API 0021504E SynSelfTests.TTestBasicClasses._TSQLRecord (4042) 0023B863 mORMotSelfTests.SQLite3ConsoleTests (211) 
20131209 08540446 fail  TTestBasicClasses(0157AD48) Basic classes: TSQLRecord "" stack trace API 002151CF SynSelfTests.TTestBasicClasses._TSQLRecord (4054) 0023B863 mORMotSelfTests.SQLite3ConsoleTests (211) 
20131209 08540446 fail  TTestBasicClasses(0157AD48) Basic classes: TSQLRecord "" stack trace API 0021539D SynSelfTests.TTestBasicClasses._TSQLRecord (4068) 0023B863 mORMotSelfTests.SQLite3ConsoleTests (211) 
20131209 08540446 fail  TTestBasicClasses(0157AD48) Basic classes: TSQLRecord "" stack trace API 00215427 SynSelfTests.TTestBasicClasses._TSQLRecord (4069) 0023B863 mORMotSelfTests.SQLite3ConsoleTests (211) 
20131209 08540843 EXCOS EAccessViolation (C0000005) at 00061F4C SynCommons.RawUnicodeToUtf8 (9816)  stack trace API 0008C824 SynCommons.SynRtlUnwind (32472) 00006190 System.@HandleOnException (14162) 
20131209 08540843 EXC   EInterfaceFactoryException ("Invalid fake ICalculator.ComplexCall interface call: : {\r\n\"ErrorCode\":500,\r\n\"ErrorText\":\"Exception EAccessViolation: Access violation at address 00462F4C in module 'TestSQL3.exe'. Read of address 00199000\"\r\n}") at 0018051E mORMot.RaiseError (32020)  stack trace API 0008C824 SynCommons.SynRtlUnwind (32472) 00006190 System.@HandleOnException (14162) 

this time when run without debug, will alway has exception, run in ide has no exception,
strange things is after run in ide, then run without debug also no exception.
so to reappearance this, first time please not run in ide, then you will can see this.

#96 mORMot 1 » First time, run TestSQL3.exe without IDE will always has Exception » 2013-12-08 04:26:47

mingda
Replies: 13

First time, run TestSQL3.exe without IDE will always has EInterfaceFactoryException Exception,

Step:

1). download from http://synopse.info/fossil/info/79f5becba8 (2013-12-07)
2). Extract to a directory
3). Extract sqlite3obj.7z to SQLite3 subdirectory
4). Use IDE open TestSQL3.dpr, Build Project
5). Run without Debugging or Shift+Ctrl+F9

always generate below exception, second time run will ok, the exception will disappear.
(To reappearance, it is import to Extract to a new empty directory and first time run TestSQL3.exe without debug)
use DelphiXE

 2.7. Service oriented architecture:
  - Weak interfaces: 56 assertions passed  11.79ms
  - Service initialization: 133 assertions passed  17.90ms
  - Direct call: 608,487 assertions passed  56.42ms
  - Server side: 608,506 assertions passed  43.84ms

! Exception EInterfaceFactoryException raised with messsage:
!  Invalid fake ICalculator.ComplexCall interface call: : {
"ErrorCode":500,
"ErrorText":"Exception EAccessViolation: Access violation at address 00462F9E in
 module 'TestSQL3.exe'. Read of address 0017D000"
}


Synopse framework used: 1.18
SQlite3 engine used: 3.8.1
Generated with: Delphi XE compiler

Time elapsed for all tests: 91.49s
Tests performed at 2013-12-8 11:51:21

Total assertions failed for all test suits:  11 / 8,425,513
! Some tests FAILED: please correct the code.

Done - Press ENTER to Exit

Thanks!

#97 Re: mORMot 1 » We need to store NULL's in the database instead of empty strings » 2013-12-08 01:13:24

ncook wrote:

Arnaud.

But beyond that, we need mORMot to store empty strings as NULL instead of ''

I also think so, In my test against MSSQL, I found this behavior, now I use BatchAppend/BatchUpdate
to update data. Before post data, I check the data is empty, if empty, then exclude it in the updatebit
parameter,  this will make empty string will not update to ''.

#98 Re: mORMot 1 » TSynSQLTableDataSet cursor position in DBGrid and cxGrid problem » 2013-11-20 10:31:17

after test, such change seem fix the two problem:

procedure TSynVirtualDataSet.SetRecNo(Value: Integer);
begin
//  dec(Value);
//  if cardinal(Value)>=cardinal(GetRecordCount) then
//    raise ERangeError.CreateFmt('SetRecNo(%d) with Count=%d',[Value+1,GetRecordCount]);
//  fCurrentRow := Value;

  CheckBrowseMode;
  if Value <> RecNo then
  begin
    dec(Value);
    if cardinal(Value)>=cardinal(GetRecordCount) then
      raise ERangeError.CreateFmt('SetRecNo(%d) with Count=%d',[Value+1,GetRecordCount]);
    DoBeforeScroll;
    fCurrentRow := Value;
    Resync([rmCenter]);
    DoAfterScroll;
  end;
end;

procedure TSynVirtualDataSet.InternalOpen;
begin
  InternalInitFieldDefs;
  if DefaultFields then
    CreateFields;
  BindFields(true);
  fCurrentRow := -1;
  fIsCursorOpen := True;
  BookmarkSize := SizeOf(TRecInfo);     //**** add
end;

Remove change at http://synopse.info/fossil/info/8294ca8217 also seems a bit fast

Update:

seems change to BookmarkSize := SizeOf(Integer) also work.

Test find a potential problem, when link a dbgrid and a cxgrid to a same datasource,
then drag dbgrid's scrollbar don't work.


thanks!

#99 mORMot 1 » TSynSQLTableDataSet cursor position in DBGrid and cxGrid problem » 2013-11-20 07:54:57

mingda
Replies: 2

when use TSynSQLTableDataSet with dbgrid, I found can not drag the scroll bar,
after debug, seem in TSynVirtualDataSet.SetRecNo add Resync([rmCenter]) can resolve the problem

procedure TSynVirtualDataSet.SetRecNo(Value: Integer);
begin
  dec(Value);
  if cardinal(Value)>=cardinal(GetRecordCount) then
    raise ERangeError.CreateFmt('SetRecNo(%d) with Count=%d',[Value+1,GetRecordCount]);
  DoBeforeScroll;    //****add
  fCurrentRow := Value;
  Resync([rmCenter]);    //****add
  DoAfterScroll;  //****add
end;

when use TSynSQLTableDataSet with cxgrid, then user can not move record,
after debug, seem in TSynVirtualDataSet.InternalOpen, need set the BookmarkSize length,
just like TClientDataSet,

procedure TCustomClientDataSet.InternalOpen;
  ...
  BookmarkSize := CursorProps.iBookmarkSize;

because cxGrid use TDataSet.BookmarkAvailable, TDataSet.GetBookmark
to restore the cursor, this make TSynSQLTableDataSet can not move cursor,

and in SynVirtualDataSet, bookmark relative check nil, after Set BookmarkSize should never be nil
the change in http://synopse.info/fossil/info/8294ca8217 should not need.

procedure TSynVirtualDataSet.GetBookmarkData(Buffer: TRecordBuffer; Data: Pointer);
begin
  if Data<>nil then       //*** this should not be nil, if is nil then else should have some problem
    PRecInfoIdentifier(Data)^ := PRecInfo(Buffer)^.Bookmark;
end;

BookmarkSize: http://docwiki.embarcadero.com/Librarie … okmarkSize

thanks!

#100 Re: mORMot 1 » External DB Problem » 2013-11-12 05:26:00

ab wrote:

The just committed TSQLDBStatement.FetchAllToJSON() enhancement was buggy.
It is your ID=? error
It should be fixed now.
See http://synopse.info/fossil/info/7e18d559ed

Excellent, Now It worked.

If you want to follow mORMot design, you may:
- Either embrace ORM, and use TSQLRecord.[Create]FillPrepare/FillOne or TSQLRest.RetrieveList method to retrieve a TObjectList of TSQLRecord;
- Or use SQL, but on the server side only, e.g. in an interface-based service, then return high-level objects.

I totally agree with you, since this is an old project, can only gradually changed, first I will replace server part, let client remains or feeling similar.

Last little detail.
You used the plain TSQLSampleRecord as defined in SampleData.
But this was designed for internal SQLite3 tables only.
You should better use a dedicated definition, using "index ..." to specify the column width:
Otherwise, it will create CLOB, which may be not optimized, especially for the Name property.

Thank you very much for your wise guidance, so I learned a lot of things!

Board footer

Powered by FluxBB