Jump to content

TurboMagic

Members
  • Content Count

    235
  • Joined

  • Last visited

  • Days Won

    9

Everything posted by TurboMagic

  1. TurboMagic

    TFDBatchMove with non NULL column in target table

    Ok, I have a solution now, thanks to Uwe's suggestion: If I use a DataSetWriter instead of a SQL one, I can assign a TFDTable component to that one, which has the TableName property and which calls OnNewRecord just fine. In that one can I check the table name and if it's one of the tables where not Null columns have been added later on, I can check these columns for 'not NULL' and assign a default value there. In my tests the DB functionality of having default values didn't work. Maybe the TFDBatchMove added NULL values itsself for these additional columns...
  2. TurboMagic

    TFDBatchMove with non NULL column in target table

    Ok, the plan with the TFDBatchMoveDataSetWriter isn't so easy. It lacks the .TableName property and it looks like I need to assign a TDataSet to that one. Seems more investigation is required.
  3. TurboMagic

    TFDBatchMove with non NULL column in target table

    Well, when I provide an SQL query for the reader as you describe I'm getting more inflexible when adding new fields to that table in comparison to only having to deal with cases where a "not NULL" for a column needs to be dealt with. Since Uwe hints that a SQLWriter will not call OnNewRecord I will try the TFDBatchMoveDataSetWriter now. If that calls this event and lets me call FieldByName it should do.
  4. TurboMagic

    TFDBatchMove with non NULL column in target table

    I tried OnNewRecord now, but it doesn't seem to get called. What am I'm doing wrong? Here I assign OnNewRecord via code, since FWriter is created at runtime: FWriter.FDDataSet.OnNewRecord := OnNewRecord; Here's the implementation of that event: procedure TDBCopy.OnNewRecord(DataSet: TDataSet); begin if (FWriter.ActualTableName.ToUpper = 'KASSE_EINSTELLUNGEN') then begin DataSet.FieldByName('DRAWBACK_CALCULATION').AsInteger := 0; end; if (FWriter.ActualTableName.ToUpper = 'KASSE_PRINTSETTINGS') then begin DataSet.FieldByName('PRINT_SMALL_BONS').AsInteger := 0; end; end; But when running FBatchMove.Execute; the breakpoint in the event is never ever called. And the way my application crashes indicates that it's actually never run. Do I need to activate something somewhere? I only assign TableNames to FReader.TableName and FWriter.TableName and then run FBatchMove.Execute;
  5. TurboMagic

    TFDBatchMove with non NULL column in target table

    Thanks for that pointer.
  6. Hello, this is the notice that DEC (Delphi Encryption Compendium) has a new home. The GitHub repository has been transferred to me by the previous maintainer as he no longer found the time to work on it and I was the main developer since a few years already anyway. The new URL is: https://github.com/MHumm/DelphiEncryptionCompendium This transfer also makes it a bit more likely that the V6.0 which is still in the works will be released in the near future. Best regards TurboMagic
  7. I have D10.4.2 with ICS 8.65 installed (having not had any need for ICS in the recent years I only got aware of V9.0 now). I would like to read out the contents on a DNS TXT record. For this I looked at the OverbyteICSNSLookup sample application. While this can display a bunch of stuff read out from DNS I don't see where the contents of a TXT record if accessed. I don't want to parse the raw DNS answer. I guess there's some simpler way available. The only string like thing I found was AnswerName but that doesn't really sound like it.
  8. TurboMagic

    How to read DNS TXT record contents?

    Thanks for the info! That one works for me. My DNS is an inernal one so Google etc. don't help me...
  9. TurboMagic

    How to read DNS TXT record contents?

    Ok, I can query this TXT record now, when I know the IP of one of our internal DNS servers. But how to find that one out? Yes, cmd.exe -> ipconfig /all would tell me, but I need to implement this internally. I tried to understand what THTTPCli does to determine that, but I failed to do so. Is there some other easier solution available to get such an IP-address? I know that I can have several connections and thus several DNS servers. but I think I can manage when I get a list of all those.
  10. TurboMagic

    How to read DNS TXT record contents?

    Well, I won't use this for e-mail, but the data will most likely not change often, if at all. But this is good to know for first tests.
  11. TurboMagic

    ICS V9.0 announced

    Ah! Yes, you're right! D2009 was Generics and Anonymous methods...
  12. TurboMagic

    How to read DNS TXT record contents?

    Thanks, this looks like what I'm after.
  13. TurboMagic

    How to read DNS TXT record contents?

    Ok, time to upgrade. I see. Thanks! What I learned is, that TXT records can have a name and thus I could retrieve that one with this?
  14. TurboMagic

    ICS V9.0 announced

    As far as I remember Win64 compiler was introduced with D2009 already.
  15. Hello, I've got some good news and sort of a Christmas present: What is it? Delphi Code Coverage Wizard V2.0. A GUI to make using the CodeCoverage.exe tool easier. Oh and what please is code coverage? With code coverage one can find out whether the unit tests one has (I do hope you have some!) really cover all of your code or if you missed some scenarious. If you still are unsure how that looks like you might have a look at the screenshots provided at the bottom of the project's github page here: https://github.com/MHumm/delphi-code...ge-wizard-plus Now where to get this fine tool? https://github.com/MHumm/delphi-code...eases/tag/V2.0 Hopefully via GetIt package manager soon as well. That one currently still contains V1.1 A list of the improvements made between V1.1 and V2.0 is found on the release URL above. Now enjoy it TurboMagic
  16. TurboMagic

    Delphi Code Coverage WIzard Plus V2.0 released

    Well, I'd be gratefull if somebody could grab that new version from development branch and test the new additions to find out if I understood and implemented those correctly.
  17. TurboMagic

    Delphi 12 is available

    This one only exists since 10.4 or 11.x or so...
  18. TurboMagic

    Delphi 12 is available

    The issue is: CE is such a system. You are only allowed up to a certain $$$$ you make a year. But EMBT isn't MS which has more revenue streams and thus can better stay profitable even if a number of persons misuse the free version as replacement for the paid one. That's also the reason why CE only is being released months after a new major release.
  19. TurboMagic

    Delphi 12 is available

    Well, paying subscription users usually get an invitation to the beta as well nowadays afaik.
  20. TurboMagic

    Delphi 12 is available

    Not sure where you looked at, but for Delphi Android and iOS are supported. For Android the SDK 33 requirement is fullfilled with 12.0 now. If you should be a C++ Builder developer things would look differently, but since this is a Delphi forum I doubt you are one... 😉
  21. I also struggle to load a .so. In my case the .so was created in Delphi for testing purposes. I tried to follow your idea with the deployment but I didn't fully understand this yet. Is this only relevant if I'm building an .aab later on? I'm currently still struggeling with a normal apk / debugger / debug build. I'm currently using an Android 11 device but will test on a Android 13 device in a few minutes. On the device used the first call to SafeLoadLibrary results in a Segmentation fault(11) crash. Here's my code: procedure Tf_Main.b_CalcClick(Sender: TObject); var Handle : HMODULE; s : string; begin Memo1.Lines.Clear; s := TPath.Combine(TPath.GetLibraryPath, 'libSO_Test.so'); if System.SysUtils.FileExists(s) then Memo1.Lines.Add('Exists'); Handle := SafeLoadLibrary('libSO_Test.so'); Memo1.Lines.Add('Handle1: ' + Handle.ToString); if (Handle = 0) then Handle := SafeLoadLibrary(s); Memo1.Lines.Add('Handle2: ' + Handle.ToString); if (Handle <> 0) then begin try FDoAdd := GetProcAddress(Handle, PChar('DoAdd')); if (@FDoAdd = nil) then Memo1.Lines.Add('Failure loading proc (is nil)') else begin l_Result.Text := FDoAdd(tf_Summand1.Text.ToInteger, tf_Summand2.Text.ToInteger).ToString; FDoAdd := nil; Memo1.Lines.Add('Success'); end; finally FreeLibrary(Handle); end; end else Memo1.Lines.Add('SO handle is invalid'); end; Any idea?
  22. Hello, the DEC (Delphi Encryption Compendium) library recently got a pull request from somebody to make it more compatible with FPC. While that's nice I took that request, but found out later, that it made it no longer compile on Delphi. With some help of Stevie I got that fixed, but I guess it now doesn't compile on FPC anymore. The issue is the use of IFDEF/IFEND etc. constructs. While I want to stay FPC compatible with DEC I have not enough knowledge of FPC and I also lack the time to look after that part right now. So I'd be grateful if somebody could look at this and make suggestions how to change it so that it is compatible with both. Cheers TurboMagic
  23. TurboMagic

    Delphi Code Coverage WIzard Plus V2.0 released

    This is the information that I added a few things in development branch of this tool lately. I updated the command line code coverage tool used and started to add the new parametrs it provides. I haven't yet added all and I don't think all make sense for this tool, but you might still want to try it out. I haven't tested those additions yet, as I don't fully understand yet how they must be used from that bit of documentation provided for them and now I have lack of time, but I still hope they're usefull as is. So if I get feedback on them (and I didn't completely missunderstand those) I might still get a new release together soon. Cheers TurboMagic
  24. I'm using FastReports Embarcadero edition. I'm looking for an even which signals me, that the report has been output (saved as PDF or sent to the printer). I haven't really found a suitable event yet. Maybe I just overlooked it?
  25. I'll try to find the time to look into those examples tomorrow. I have to find the cause of some memory issue where my report generating class gets an interface reference, which it stores as a field in the object instance. It takes some of the data from it and assigns that to the report components in OnGetValue event. But when that event is called, the field with the interface reference is NIL! I haven't found out yet, who nils that reference or who overwrites that memory... 😞
×