Jump to content

Dmitry Arefiev

Members
  • Content Count

    161
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by Dmitry Arefiev


  1. Is it bad to use official DLL ? Several questions:

    * are you limited in distributing capabilities of this DLL (license, space, what ever) ?

    * who will support you, when something is broken, and you are using non-official connectivity ?

    * with whom you you can discuss your connectivity problems on INet, if you are using some from 3d party ?

    * how long will live your software, when 3d party provider is out of business, and DLL "insides"/protocol are changed ?

     


  2. On 1/31/2019 at 7:47 PM, David Schwartz said:

    This has to do entirely with how CLOBs are stored vs. VARCHAR2's. The data is new -- it happens with five records created yesterday. And changing the architecture is not going to help because if you need to store >4k then you need to use LOBs. Period. 

    Oracle 12 extended maximum length of VARCHAR2 to 32Kb. And there always was LONG.

    On 1/31/2019 at 7:47 PM, David Schwartz said:

    Apparently Oracle saves CLOBs and BLOBs directly to disk in their own files, not in the DB.

    CLOB / BLOB are stored in tablespaces. BFILE are stored in external files.


  3. 1) This is worth to report, but rather as a feature request. Support for automatic decoding may be done easily using WinHTTP WINHTTP_OPTION_DECOMPRESSION option. And probably already in 10.3 Update 1. As a quick workaround, you can modify System.Net.HttpClient.Win.pas, for example:

    function TWinHTTPClient.DoExecuteRequest(const ARequest: THTTPRequest; var AResponse: THTTPResponse;
      const AContentStream: TStream): TWinHTTPClient.TExecutionResult;
    
    begin
    
    .....
    
      // Enable automatic decoding
      LOptionValue := WINHTTP_DECOMPRESSION_FLAG_GZIP or WINHTTP_DECOMPRESSION_FLAG_DEFLATE or WINHTTP_DECOMPRESSION_FLAG_ALL;
      WinHttpSetOption(LRequest.FWRequest, WINHTTP_OPTION_DECOMPRESSION, @LOptionValue, sizeof(LOptionValue));
    
    ....
    
    end;

    2) THTTPReqResp was using WinINet API directly. In 10.3 it was completely reworked to enable support of other platforms, including Linux, OSX, etc.

     

     

    • Thanks 1

  4. Changing method to code below and setting FDPhysFBDriverLink1.Embedded to True will make it working. Without that the only workaround is to renamed fbclient.dll into fbembed.dll.

    procedure TIBLib.LoadFB(const AVendorHome, AVendorLib: String;
      AEmbedded, AThreadSafe: Boolean);
    {$IFNDEF FireDAC_IB_STATIC}
    const
      C_FBClient: String = {$IFDEF MSWINDOWS} 'fbclient' {$ENDIF}
                           {$IFDEF POSIX} 'libfbclient' {$ENDIF} + C_FD_DLLExt;
      C_FBEmbed:  String = {$IFDEF MSWINDOWS} 'fbembed' {$ENDIF}
                           {$IFDEF POSIX} 'libfbembed' {$ENDIF} + C_FD_DLLExt;
    {$ENDIF}
    begin
      if AEmbedded then
        LoadBase(AVendorHome, AVendorLib, AThreadSafe {$IFNDEF FireDAC_IB_STATIC}, [C_FBEmbed, C_FBClient] {$ENDIF})
      else
        LoadBase(AVendorHome, AVendorLib, AThreadSafe {$IFNDEF FireDAC_IB_STATIC}, [C_FBClient, C_FBEmbed] {$ENDIF});
      if AEmbedded and (Version >= ivFB030000) then
        FEmbedded := True;
    end;
    

     

    • Like 1
    • Thanks 1
×