Jump to content

Dmitry Arefiev

  • Content Count

  • Joined

  • Last visited

  • Days Won


Dmitry Arefiev last won the day on May 11 2019

Dmitry Arefiev had the most liked content!

Community Reputation

41 Excellent


Technical Information

  • Delphi-Version
    Delphi 10.3 Rio

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Dmitry Arefiev

    FireDac MySQL Connectivity

    1. libmysql.dll must be in EXE folder, or in some folder which is in PATH, or in SysWOW64 for x86 and System for x64. 2. libmysql.dll must have the same bitness as EXE. Simple way to verify it: tdump libmysql.dll | find "CPU type" 3. libmysql.dll v 8 is not yet supported. Use version 5 or 6. Which one - almost not important. 4. Note, that libmysql.dll, depending on version, depends on MS C RTL.
  2. You can try to do: FDUpdateSQL1.Commands[arInsert].CommandKind := skSelect;
  3. Dmitry Arefiev

    Why upgrade?

    Could you please provide RSP numbers. May be even you can provide your patch.
  4. Dmitry Arefiev

    FireDAC and read table metadata

    FDMetaInfoQuery1.MetaInfoKind := mkResultSetFields; FDMetaInfoQuery1.ObjectName := 'RESOURCE'; FDMetaInfoQuery1.Open;
  5. Dmitry Arefiev

    Why upgrade?

    Beside what @Vandrovnik said, Delphi with each one new version is getting more and more "green" (in the sense of Greenpeace, or energy class). What in past consumed N CPU cycles, now may consume less or much less. Want to make the World more green ? Upgrade your Delphi 🙂 PS: Of course, this is questionable statement. But it is true in many Delphi areas ...
  6. Dmitry Arefiev


    For SQL Server the AName parameter usage is not specified.
  7. This is because ODBC 17 is unknown version for FireDAC.
  8. Dmitry Arefiev

    How to Code SQL IN Statement correctly

    For unlimited number of items for "IN" clause, may be possible to use SQL Server Table Valued Parameter. For details see "Object Pascal\Database\FireDAC\Samples\DBMS Specific\MSSQL\TVP" demo. PS: I am not tested that ...
  9. Dmitry Arefiev

    TFDBatchMoveSQLWriter and table structure updates

    TFDBatchMoveSQLWriter cannot alter table structure, it can only create a new table.
  10. Dmitry Arefiev

    THTTPReqResp.OnBeforePost breaking change

    @A.M. Hoornweg, did you checked THttpClient API ? accept gzip encoded data: set THttpClient.AutomaticDecompression to [THTTPCompressionMethod.GZip] accept an invalid/self-signed SSL certificate: set THttpClient.OnValidateServerCertificate to event handler which optionally can analyze Certificate and set Accepted to True / False
  11. @Edson.pol, could you please provide a test application, reproducing the issue. Also, do you have any non default settings in FetchOptions or ResourceOptions ?
  12. Dmitry Arefiev

    FDQuery, threads and CmdExecMode

    Leave it amBlocking.
  13. Dmitry Arefiev

    InterBase or Firebird?

    1) DB admin features - PostgreSQL 2) DB developer features - PostgreSQL / FireBird 3) Encryption, and ... speed - InterBase. On many tests IB outperforms FB, at least. 4) Mobile platforms - InterBase 5) Change Views is unique InterBase feature If to put SQLite into this list, then if you does not need multi-user access, scalability, DB is relatively small, then SQLite is the right way. If something from this list is not true, or may become false in future, then not SQLite. In order of descending preferences - SQLite, IbToGo / Firebird embedded, PostgreSQL
  14. Dmitry Arefiev

    New to Json

    This may be coded in a more short form using 10.3.2. First case: var JsonValue: TJSONValue; Branch: string; begin JsonValue := TJSONObject.ParseJSONValue(st, False, True); try Branch := JsonValue.GetValue<string>('data.conditions[0].temp'); memo1.Lines.add('Parsed temperature '+branch); Branch := JsonValue.GetValue<string>('data.conditions[2].bar_sea_level'); memo1.Lines.add('Parsed barometer '+branch); finally JsonValue.Free; end; end; Second case: var JsonValue: TJSONValue; Branch: string; begin JsonValue := TJSONObject.ParseJSONValue(st, False, True); try Branch := JsonValue.GetValue<string>('iWN5p2qfRFeGKXn1m3iGnDW0Vkl2.PROFILE.BIRTHDAY'); memo1.Lines.Add('Parsed BIRTHDAY ' + Branch); Branch := JsonValue.GetValue<string>('iWN5p2qfRFeGKXn1m3iGnDW0Vkl2.PROFILE.FULL NAME'); memo1.Lines.Add('Parsed FULL NAME ' + Branch); finally JsonValue.Free; end; end; This is most simple code. Although not fastest, but may be enough fast. Depending on the requirements it may be optimized.
  15. Dmitry Arefiev

    JSON string value

    No, because they are rather "features", than bugs, introduced from library beginning. "Fixing" them will break backward compatibility.