Jump to content

Juan C.Cilleruelo

Members
  • Content Count

    103
  • Joined

  • Last visited

Posts posted by Juan C.Cilleruelo


  1. Change from FireDAC to another set of components like Devart is not going to be a problem in my case. 

     

    My software follows a strict MVC architecture. All the Models are independent of the rest for the application and in fact, there are tested as a separate unity.  I have a project of Unit-Tests that test separately all the models without link any Controller.

     

    Only some functionalities of FireDAC I'm going to miss, but I'm sure that in a new set of components I'm going to find new functionalities too, that is going to make more special the experience.

     

    The problem, in my case, is the frustration of making plans and see how Embarcadero doesn't take you into account.

     

    To see that Embarcadero trace his own plans without the worry about the plans of his customers. 

     

    What's Next?  Eliminate Professional version, perhaps?

     

    They coming bad times to all of us. Times in which the price can be a very, very, very important thing in all the ambits. 

     

    In these new times, decisions based exclusively on money are going to be frequent. 

    • Like 1
    • Sad 1

  2. These days I've received the offer to renovate Delphi Professional Subscription, but this time don't come with the FireDAC Add-On, like past years. 
     

    Asked my local reseller in Spain about this, he said to me that FireDAC Add On is discontinued
     

    Does anyone know anything about this? 
     

    Local reseller tells me about migration to Enterprise version, but there is not a special offer to upgrade from Professional version. He tells me that I need to buy a new subscription license, and I think this is very, very expensive, taking into account the type of product that I'm developing and selling. 

     

    I think that Embarcadero is eliminating lower versions of his licences, converting Delphi into a luxury tool for development. 

     

    This is not in concordance with the quality of his last versions. I'm currently using 10.3 Update 2, after tried to install, with a great effort of time and resources the 10.4.

    Version 10.4 was significant, for me. The worst experience in years with Embarcadero. Nothing is working, but when at last I got an installation running (Patchs and Update 2) I notice that Mobile functionalities are not installed.

     

    I've informed Embarcadero of this problem and he said to me that there is a problem with my license and that they are studying how to resolve it.

     

    Because of this, I continued developing with the 10.3 version. 

     

    If Embarcadero is going to be as expensive per licence, I think this is the moment of study the possibility of migrating to another environment. 

     

    Evolution is a need, but not at any cost!  

    • Sad 1

  3. 11 hours ago, dummzeuch said:

    The exit doesn't make sense, but it is quite possible that it is left from a previous version of the code that didn't re-raise the exception.

    (Or it's just from somebody who didn't understand the way exceptions work.)

     

    All the code is from somebody who didn't understand, absolutely, the way exceptions work.

     

    This structure is not a punctual case in the code I'm revisiting, is a constant. Is on all the methods. I think that this type of wrong conception code is more than 30% of the whole code.

    It's because I commented it like 'paranoid code'.


  4. 3 hours ago, Zacherl said:

    Just trying to open the file is already the correct solution IMHO. You should catch the exception and retry until it works.

         

    This is my current code. I think now is working well. 

     

    Any idea!

     

    Thanks to all. 
         

     ......
          CountErrors := 0;
          while not (TFile.Exists(PNG_FileName) or (CountErrors > 5)) do begin
             Inc(CountErrors);
             Sleep(1000);
          end;
    
          Sleep(1000);
    
          CountErrors := 0;
          SuccessLoad := False;
          while (not SuccessLoad) or (CountErrors > 10) do begin
             try
                BlobField.LoadFromFile(PNG_FileName);
                SuccessLoad := True;
             except
                on EFOpenError do begin
                   SuccessLoad := False;
                   Inc(CountErrors);
                   Sleep(1000);
                end;
             end;
          end;
          .....

     

    • Like 1

  5. My application generates a data file with instructions to generate a graphic file and after call an external program that processes this information and generates the graphic file.

     

    Next, my program, that is waiting until the graphic file exists, takes this graphic file and incorporates it to his database. 

     

    The problem is the the time that the external application take to processing the data file. This time can be very large. An sometimes, my program traying to get the resulting file meanwhile the external program is processing it.  This becomes in an OS exception. 

     

    Can I ask to the OS, if the file I want to take is been still processing by another application?

     

    The program is cross platform, because of this I can't call the external application waiting to his finallization. And of course, if the solution is for crossplatform, more better. 

    Thank in advance.

    g4K4Fp25.32g.png


  6. 16 hours ago, Dany Marmur said:

    I must say, at the beginning (20, 25 years ago) I fretted a lot about this. Then I had the pressure to driver so I ditched BCD. It has happened that a client became frustrated because a huge list had one unit of currency wrong. But seriously if you are for two extra precision, problem well be rare.

     

    I know, this is a non-orthodix sentiment, but IMHO fretting about this is "premature optimization". Of course it's business treated, if you are into measurements, take care. If it's about money, do not fret.

     

    HtH,

     

    /d

     

    In this case, if for measurements but is the same type of data I use for all economic values.

     

    I read an EU document in which he explains how to treat with decimal values in operations with Euro.

     

    It's easy: You always should take three decimals for all operations and finally show a "round half up" function to two decimals when you show or print the results. 

     

    I can't remember where is this document, but if you need it you can search on the web. 


    reference for "Round Half Up": https://en.wikipedia.org/wiki/Rounding#Types_of_rounding
     

     

     

     


  7. 16 hours ago, Fritzew said:

    If you are using TBCDField you can simply use Currency, because these Fieldtype is designed to work with currency as the internal DataType.
    Look in the Source from Data.DB.......

     

    Thank you all!  Working again!  

     

    The final solution was finally, use Currency.  I can take this TFields AsCurrency and this works well.

     

    The problem comes from a modify in all the program.

     

    I had all the measures for the furniture in millimetres. This is a good thing for woodworking, but I have now a new customer that need my program for modelling complex things for 3D printing and he needs until hundredths of millimetres (two decimals).

    Solved.

     

     

     

    Capture OK again.PNG

    • Like 1
×