Page 1 of 2 1 2 LastLast
Results 1 to 15 of 19

Thread: FireDac probleem met gewijzigde record opslaan

  1. #1
    Carpe Diem Leander's Avatar
    Join Date
    Feb 2005
    Location
    Noord Brabant
    Posts
    125

    FireDac probleem met gewijzigde record opslaan

    Ik ben een Delphi7 project aan het herschrijven in Embarcadero 10.4 en dat gaat aardig, maar ik stuit op een probleem
    bij het opslaan van een gewijzigde record.

    Ik gebruik Sysbase met de componenten van FireDac en de FDConnection staat in mijn DataModule en dat gaat prima totdat ik een veld wijzig en doe dan het volgende.


    Code:
    procedure TFrame_Boekingen.SaveRecord;
    var
      s1 :string;
    begin
      if ( FDQuery_Boekingen.State in [dsEdit,dsInsert] ) and ( IsErIetsGewijzigd ) then
        begin
           try
             FDQuery_Boekingen.FieldByName(BOEKINGEN_LAATSTEWIJZIGING').AsDateTime := Now;
             s1 := FDQuery_Boekingen.FieldByName('BOEKINGEN_OMSCHRIJVING').AsString;    <------------------  ik zie hier (met F8) dat het veld is gewijzigd 
             FDQuery_Boekingen.Post;
             bIsErIetsGewijzigd := false;
             DData.FDConnection_FinanPro.Commit;
           except
             DData.FDConnection_FinanPro.Rollback;
           end;
        end;
    end;
    Ik zie in CodeSite en bij de s1 dat fieldbyname is gewijzigd en met F8 (step over) zie ik dat de FDQuery_Boekingen.POST word uitgevoerd en dat gaat zonder fouten goed.
    als ik dan het frame afsluit en later weer terug kom om de boeking te zoeken zie ik dat het record niet is aangepast.

    Bij een Insert of Append gaat het prima maar bij een Edit en Post niet, ik zie het even niet
    Last edited by Leander; 15-Mar-21 at 00:29. Reason: SpelVaut
    Met vriendelijke groet, With kind regards, Mit freundlichen grüßen,
    Leander

  2. #2
    Zie je alleen in je applicatie dat het niet is aangepast of ook in de DB?

    Je zou eens kunnen kijken of Firedac ook een soort log component heeft, misschien dat dit het doet. Zelf gebruik ik Unidac en die heeft een monitor component waarmee je alle SQL die van je DAC naar de database gaat logt. Vaak kom je er dan snel achter waar het verkeerd gaat.

  3. #3
    Ik mis de commit!

    De rollback zie ik wel, maar de commit niet

  4. #4
    Carpe Diem Leander's Avatar
    Join Date
    Feb 2005
    Location
    Noord Brabant
    Posts
    125
    Klopt RsMeijer, ben ik vergeten en heb het aangepast

    Quote Originally Posted by rsjmeijer View Post
    Ik mis de commit!

    De rollback zie ik wel, maar de commit niet
    Met vriendelijke groet, With kind regards, Mit freundlichen grüßen,
    Leander

  5. #5
    Carpe Diem Leander's Avatar
    Join Date
    Feb 2005
    Location
    Noord Brabant
    Posts
    125
    Goeie tip Luigi,

    Firedac heeft een log component (FDMoniFlatFileClientLink) en heb nu een logfile maar zie niet waar het fout gaat. zal me daar is meer in verdiepen.

    Het blijft vreemd want het is ook niet aangepast in de DB , ik had het dan al kunnen zien want de SQL word opnieuw opgebouwd en geopend.


    Quote Originally Posted by luigi View Post
    Zie je alleen in je applicatie dat het niet is aangepast of ook in de DB?

    Je zou eens kunnen kijken of Firedac ook een soort log component heeft, misschien dat dit het doet. Zelf gebruik ik Unidac en die heeft een monitor component waarmee je alle SQL die van je DAC naar de database gaat logt. Vaak kom je er dan snel achter waar het verkeerd gaat.
    Met vriendelijke groet, With kind regards, Mit freundlichen grüßen,
    Leander

  6. #6
    Misschien dat je de update SQL die in het log staat handmatig, met een SQL editor kunt proberen uit te voeren.

    Ik weet niet of het mogelijk is/toegestaan is, maar je zou een stukje log kunnen posten.

  7. #7
    Carpe Diem Leander's Avatar
    Join Date
    Feb 2005
    Location
    Noord Brabant
    Posts
    125
    Ik heb de log hier tijdelijk geupload


    Quote Originally Posted by luigi View Post
    Misschien dat je de update SQL die in het log staat handmatig, met een SQL editor kunt proberen uit te voeren.

    Ik weet niet of het mogelijk is/toegestaan is, maar je zou een stukje log kunnen posten.
    Met vriendelijke groet, With kind regards, Mit freundlichen grüßen,
    Leander

  8. #8
    vage site waar je je bestand hebt neergezet. Gewoon downloaden wil niet werken en bij poging 2 wil hij allerlei meuk installeren....

    Heb je geen normale download locatie?

  9. #9
    Carpe Diem Leander's Avatar
    Join Date
    Feb 2005
    Location
    Noord Brabant
    Posts
    125
    Heb HIER een tijdelijke link.

    Quote Originally Posted by Benno View Post
    vage site waar je je bestand hebt neergezet. Gewoon downloaden wil niet werken en bij poging 2 wil hij allerlei meuk installeren....

    Heb je geen normale download locatie?
    Met vriendelijke groet, With kind regards, Mit freundlichen grüßen,
    Leander

  10. #10
    Ik zie in jouw log alleen maar 2 keer een select staan en geen update of insert.

    Heb jij in je FDquery wel een update en insert sql gedefinieerd?

  11. #11
    Carpe Diem Leander's Avatar
    Join Date
    Feb 2005
    Location
    Noord Brabant
    Posts
    125
    De vinkjes stonden uit heb het tekstbestand weer geupload

    het gaat om de simpele handeling hieronder

    Code:
    FDQuery_Boekingen.Edit;
    FDQuery_Boekingen.FieldByName('BOEKINGEN_OMSCHRIJVING').AsString:= 'Dit is een test';
    FDQuery_Boekingen.Post;

    dit zou toch moeten werken maar toch word dit niet opgeslaan in de DB

    Quote Originally Posted by Benno View Post
    Ik zie in jouw log alleen maar 2 keer een select staan en geen update of insert.

    Heb jij in je FDquery wel een update en insert sql gedefinieerd?
    Met vriendelijke groet, With kind regards, Mit freundlichen grüßen,
    Leander

  12. #12
    dit zou toch moeten werken maar toch word dit niet opgeslaan in de DB
    Dan sla je hem volgens mij alleen op in de memorytabel (fdqery). Ik weet niet of die zelf een updateSQL maakt en ook niet of die meteen een update gaat uitvoeren op je database.

    Bij sommige van die componenten moet je nog een applyupdates o.i.d. doen om de updates in je lokale (in memory) kopie uiteindelijk ook in je database te krijgen.

    Ik denk dat als je na je post FDQuery_Boekingen.Applyupdates; toevoegt dat die dan wel naar de DB gaat.
    Last edited by Benno; 16-Mar-21 at 15:45.

  13. #13
    Carpe Diem Leander's Avatar
    Join Date
    Feb 2005
    Location
    Noord Brabant
    Posts
    125
    Als ik dit doe via een knop dan werkt edit en post wel, tijdens het testen blijkt dat append, insert en delete wel gewoon werkt in de TabSheet_Boekingen.
    Kan het niet te maken hebben dat ik het frame afsluit (TabSheet_Boekingen_Exit) tijdens het editten en dat er dan iets vreemds gebeurd met de FDQuery_Boekingen.


    Quote Originally Posted by Benno View Post
    Dan sla je hem volgens mij alleen op in de memorytabel (fdqery). Ik weet niet of die zelf een updateSQL maakt en ook niet of die meteen een update gaat uitvoeren op je database.

    Bij sommige van die componenten moet je nog een applyupdates o.i.d. doen om de updates in je lokale (in memory) kopie uiteindelijk ook in je database te krijgen.

    Ik denk dat als je na je post FDQuery_Boekingen.Applyupdates; toevoegt dat die dan wel naar de DB gaat.
    Met vriendelijke groet, With kind regards, Mit freundlichen grüßen,
    Leander

  14. #14
    Carpe Diem Leander's Avatar
    Join Date
    Feb 2005
    Location
    Noord Brabant
    Posts
    125
    Ik denk dat ik het hier moet zoeken.

    Ik heb een RzPageControl (Konopka) in de MainMenu staan waar ik de frames mee maak en open, als ik op de close button klik van de RzPageControl om het frame te sluiten dan word er in de TabSheet_Boekingen_Exit de procedure SaveRecord nog uitgevoerd of het record is gewijzigd, kan het zijn dat FDQuery_Boekingen zijn focus kwijt raakt in dsEdit mode door dat het frame word verwijderd ?
    Last edited by Leander; 17-Mar-21 at 21:54. Reason: spelvaut
    Met vriendelijke groet, With kind regards, Mit freundlichen grüßen,
    Leander

  15. #15
    Geen idee, zou zomaar kunnen ....

    Maak je dat spul dynamisch aan en gooi je het meteen weg?

    Is er geen beforechange of zo om het op een eerder moment af te vangen? Vind het persoonlijk best gevaarlijk om bewaren van data afhankelijk te maken van een wissel van een tab, maar goed mogelijk heb je daar een goede reden voor.

Page 1 of 2 1 2 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •