Jump to content

Stéphane Wierzbicki

Members
  • Content Count

    230
  • Joined

  • Last visited

Posts posted by Stéphane Wierzbicki


  1. 1 hour ago, salvadordf said:

    About the registration issue, send me a PM with your username and I'll activate it manually.

    Hi Salvador,

     

    Thank you for your help but I received my confirmation email a couple of hours later and was able to confirm my account 🙂

     

    What I'm basically trying to achieve is to create a client that will directly connect to spaces.avayacloud.com.

     

    I'm still not able to get my webcam and microphone detected. 

     


  2. Hi,

     

    I'm playing with CEF4DELPHI and I'm not able to get access to my Webcam nor to my microphone (test on 'https://webcamtoy.com' ).

     

    Quote

      GlobalCEFApp                          := TCefApplication.Create;
      GlobalCEFApp.MultiThreadedMessageLoop := False;
      GlobalCEFApp.ExternalMessagePump      := False;
      GlobalCEFApp.EnableMediaStream := True;
      GlobalCEFApp.EnableSpeechInput := true;
      GlobalCEFApp.EnableGPU := true;
      GlobalCEFApp.UseFakeUIForMediaStream := true;
      GlobalCEFApp.OnContextInitialized     := GlobalCEFApp_OnContextInitialized;

     

    Has anyone a clue on how to solves this ? I need maybe to add the URL to a trustee web site list ?

     

    Thanks 

     

    Ps: tried to ask this question on CEF4DELPHI but I'm not able to register !

     


  3. Hi,

     

    I'm having a problem with the "SQL Command Preprocessor". Whenever I enter values containing special characters such as '{' ,'!', '&', '}' , Firedac tries to treat this value as a new macro.

    I played with ResourceOptions.MacroCreate, ResourceOptions.MacroExpand and ResourceOptions.EscapeExpand but I was not able to get a correct password. The only thing I found was to "duplcate" any of these '{' ,'!', '&', '}'.

     

    Password 'Let me out !!" will becomes 'Let me out !!!!'.

     

    Some Delphi code:

     

        FDQuery2.Macros.MacroByName('USER').AsRaw := 'Blablabla';
        FDQuery2.Macros.MacroByName('USER_PASSWORD').AsRaw := 'Let me out !!!!';
        FDQuery2.ExecSQL;

    MS SQL Script

    ALTER LOGIN [&USER] WITH PASSWORD = N'&USER_PASSWORD',
       DEFAULT_DATABASE = [&Database],
       DEFAULT_LANGUAGE = [us_english],
       CHECK_EXPIRATION = OFF,
       CHECK_POLICY = OFF;  

    Is there not a way to tell the "SQL Command Preprocessor" not to preprocess value passed thanks to FDQuery2.Macros.MacroByName method call ?

     

    Thank you.

     

    Stéphane


  4. Just now, dummzeuch said:

    As far as I know, he does not have a current Delphi license any more and needs the community edition of 10.4 before he can even start working on it.

    Too bad....

     

    We will have to wait until Emb decided to release the community version, which will not occurs soon for what I understood...

     

    I guess I'll have to stay with 10.3.3...

     

    Regards


  5. Hi,

     

    In my case FixInsight is throwing an error on IDE splashscreen (plus many time within the IDE, and when closing the IDE

     

    image.png.82d08d1779692224a6555eb0c11668b5.png

     

    Looks like GExperts and FixInsign doesn't like each others 🙂

     

    ps2: FixInsight does not crash on 10.3.3 (where GExperts is also installed).

     

    Regards

     

    Stephane


  6. Good morning,

     

    I have difficulties consuming a SOAP Web Service (obviously developed in C#). I managed to create the different Delphi classes via the WDSL import wizard. 

    Unfortunately the request sent is not correctly formatted when generated by Delphi.


    I don't have any problems when I run my tests via SOAPUI.

    I have attached the two XML requests (the expected format generated by SOAPUI and the one generated by Delphi).


    I could see that the namespaces were not added to the different XML nodes/properties.

     

    Delphi generated SOAP Request 

    <?xml version="1.0"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <SOAP-ENV:Body>
        <Invocar xmlns="http://www.smart-ix.com/SXAPI/">
          <contexto>
            <CodNegocio>BUI</CodNegocio>
            <CodSistema>BUI</CodSistema>
            <Token/>
            <Usuario/>
          </contexto>
          <request>
            <Formulario>
              <VariableCircuitoConsultaInDTO>
                <Codigo>From</Codigo>
                <Valor>20190122</Valor>
              </VariableCircuitoConsultaInDTO>
              <VariableCircuitoConsultaInDTO>
                <Codigo>To</Codigo>
                <Valor>20190522</Valor>
              </VariableCircuitoConsultaInDTO>
            </Formulario>
            <Comando>Reporte_5</Comando>
            <Paginacion>
              <NroPagina>0</NroPagina>
              <RegistrosPorPagina>1</RegistrosPorPagina>
              <RetornaTotalRegistros>false</RetornaTotalRegistros>
            </Paginacion>
            <QuerySettings>
              <Paging>
                <PageNumber>1</PageNumber>
                <PageSize>1</PageSize>
                <TotalElements>1</TotalElements>
                <TotalPages>0</TotalPages>
              </Paging>
            </QuerySettings>
            <ReportCode>Reporte_5</ReportCode>
          </request>
        </Invocar>
      </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

     

    SOAPUI SOAP Envelope (good)

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sxap="http://www.blablabla.com/SXAPI/" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:apis="http://schemas.datacontract.org/2004/07/APISX.Contracts.Query.Models">
       <soapenv:Header/>
       <soapenv:Body>
          <sxap:Invocar>
             <!--Optional:-->
             <sxap:contexto>
    	        <sxap:CodNegocio>BUI</sxap:CodNegocio>
    	        <sxap:CodSistema>BUI</sxap:CodSistema>
    	        <sxap:CodProducto></sxap:CodProducto>
    	        <sxap:Usuario></sxap:Usuario>
             </sxap:contexto>
             <!--Optional:-->
             <sxap:request>
                <!--Optional:-->
                <sxap:Formulario>
    	            <VariableCircuitoConsultaInDTO>
    	            <Codigo>From</Codigo>
    	            <Valor>20190122</Valor>
    	          </VariableCircuitoConsultaInDTO>
    	          <VariableCircuitoConsultaInDTO>
    	            <Codigo>To</Codigo>
    	            <Valor>20190522</Valor>
    	          </VariableCircuitoConsultaInDTO>
                </sxap:Formulario>
                <!--Optional:-->
                <sxap:Aditional>
                </sxap:Aditional>
                <!--Optional:-->
                <sxap:Comando>Reporte_5</sxap:Comando>
                <!--Optional:-->
                     <sxap:Paginacion>
                   <sxap:NroPagina>0</sxap:NroPagina>
                   <sxap:RegistrosPorPagina>20</sxap:RegistrosPorPagina>
                   <sxap:RetornaTotalRegistros>false</sxap:RetornaTotalRegistros>
                </sxap:Paginacion>
                <sxap:QuerySettings>
                   <apis:Filters>
                   </apis:Filters>
                   <apis:Paging>
                      <apis:ContinuationToken></apis:ContinuationToken>
                      <apis:PageNumber>1</apis:PageNumber>
                      <apis:PageSize>20</apis:PageSize>
                      <apis:TotalElements>20</apis:TotalElements>
                      <apis:TotalPages>0</apis:TotalPages>
                   </apis:Paging>
                   <apis:Sorting>
                   </apis:Sorting>
                </sxap:QuerySettings>
                <sxap:ReportCode>Reporte_5</sxap:ReportCode>
             </sxap:request>
          </sxap:Invocar>
       </soapenv:Body>
    </soapenv:Envelope>

    As you can see there are severals differencies. 

    Envelop are not the same between Delphi and SOAPUI

    Namespace are missing in Delphi generated code.

     

    I tried to modify  

     

      InvRegistry.RegisterMethodInfo(TypeInfo(ISrvConsultaCartera), 'Invocar', '','[ReturnName="InvocarResult"]', IS_OPTN or IS_NLBL);

     

    to

     

      InvRegistry.RegisterMethodInfo(TypeInfo(ISrvConsultaCartera), 'Invocar', 'sxap:Invocar',[ReturnName="InvocarResult"]', IS_OPTN or IS_NLBL);

    This worked but I have no clue on how to do this for other properties (paginacion, paging...)

     

    I search the internet but dod not found relevant info. 

    Can someone help me on this ?

     

    Thank you
     

     

     

    Expected Soap Request.xml

    ISrvConsultaCartera1.pas

    Delphi Generated SOAP Request.xml


  7. 22 hours ago, Attila Kovacs said:

    @Stéphane Wierzbicki It's not that easy as it sounds. What if a column name changes? Is it a new column or just the name changed? What if a datatype changes? etc..etc..

    It's not 😉, I know. I've implemented some checks before uploading data. I do have a mapping table used to control XLS file. XLS file is not uploaded if there is a change in the header (a column name changed for example). 

     

    Problem is that I need to both update the mapping table and to create new fields in my database table. I wanted the later to be automatically handled by Tfdbatchmove component. 

     

     


  8. Hello

    I transfer Excel data to an MS SQL database. To do this I use the TFDMemTable, TFDBatchMove and TFDBatchMoveSQLWriter components. 

    The TFDMemTable field definitions are automatically created according to the Excel file (Excel columns and data type are used to create the field definitions).
     
    The name of the Excel file is used to fill in the Tablename property of the TFDBatchMoveSQLWriter component.

    When the TFDBatchMove is executed, the "TableName" table is created if it does not exist in the MS SQL database. If the table does exist, the data is inserted into it. This is perfect.

    I have a problem when the Excel file evolves and especially when a new column appears. TFDBatchMoveSQLWriter does not update the SQL table structure and the new field(s) are not created.

     

    Anyone have an idea to help me solve this problem? Maybe should I use another FireDac for this purpose?


    Here is my function

     

     

    function StoreDataset(aFDConnection: TFDConnection; aDataset: TDataSet;
      aTableName: string = ''; aOptions: TFDBatchMoveOptions = [poIdentityInsert,
      poCreateDest, poSkipUnmatchedDestFields, poUseTransactions];
      aMode: TFDBatchMoveMode = dmAlwaysInsert): boolean;
    var
      FFDTable: TFDTable;
      FBatchmove: TFDBatchMove;
      FBatchmoveDatasetReader: TFDBatchMoveDataSetReader;
      FBAtchMoveSQLWriter: TFDBatchMoveSQLWriter;
    
    begin
      Result := False;
    
      if not assigned(aFDConnection) then
        raise Exception.Create('Please provide a Connection');
    
      if not assigned(aDataset) then
        raise Exception.Create('Please provide a Dataset');
    
      if aTableName = '' then
        aTableName := aDataset.Name;
    
      if aTableName = '' then
        raise Exception.Create('Please provide a table name');
    
      FBatchmove := TFDBatchMove.Create(nil);
      FBatchmoveDatasetReader := TFDBatchMoveDataSetReader.Create(nil);
      FBAtchMoveSQLWriter := TFDBatchMoveSQLWriter.Create(nil);
      FFDTable := TFDTable.Create(nil);
      try
    
        FBatchmove.Reader := FBatchmoveDatasetReader;
        FBatchmove.Writer := FBAtchMoveSQLWriter;
        FBatchmove.Options := aOptions;
        FBatchmove.Mode := aMode;
        FBAtchMoveSQLWriter.Connection := aFDConnection;
        aFDConnection.Connected := True;
    
        FBatchmoveDatasetReader.Dataset := aDataset;
        FBAtchMoveSQLWriter.TableName := aTableName;
        try
          FBatchmove.Execute;
          Result := True;
        except
          on e: Exception do
          begin
            Result := False;
            TMSLogger.Exception(e.message);
          end;
        end;
    
      finally
        aFDConnection.Connected := False;
        FBatchmove.Free;
        FBatchmoveDatasetReader.Free;
        FBAtchMoveSQLWriter.Free;
        FFDTable.Free;
      end;
    end;

     

     


  9. 14 hours ago, jbg said:

    Why? There seem to be no changes in the IDE and the compilers that would brake the current IDE Fix Pack 6.4.4.

    Sorry for the confusion! I should have said that I don't understand why your fixes are not TOTALLY included in Delphi RIO!

    Anyways... I'm still thanking you for all your hard work.

    • Like 3

  10. On 9/14/2019 at 9:24 AM, Stéphane Wierzbicki said:

    Hello, 

     

    Does Indy support SSH? I need to connect to an SFTP server. I need SFTP (FTP over SSH) as it is different than FTPS (FTP over SSL/TLS).

     

    If so, is there simple example available? 

    If not, is there any free library available? 

     

    Thank you! 

    Sorry for the confusion @Remy LebeauI need to connect to an SFTP server! 


  11. 3 minutes ago, Stefan Glienke said:

    I read your post three times but I could not make any sense of it.

     

    What does "BPL are screwed" mean? And what does "bpl output" mean? The binary size of the bpl? So when using the class helper the binary is smaller than when not using it?

    What class helper? Provide more information and be less sketchy.

    You are right....

    It's my mind who was screwed....

     

    Sorry but I found my mistake. I'm working with JVCL Plugin manager and I've created a bunch of plugins (packages). I forgot to update interfaces where I used the same GUID...

    Some of my packages where (badly) configure with GUI units (thus the output bpl size was bigger)

     

    Sorry for this bad topic !


  12. 2 hours ago, Attila Kovacs said:

    Reading your question I don't really know what you need

    I need a component or a library that allows me to connect to a sFTP server. 

     

    I will check links you and @WillH posted.

×