Jump to content

rvk

Members
  • Content Count

    69
  • Joined

  • Last visited

Community Reputation

19 Good

Technical Information

  • Delphi-Version
    Delphi 10.2 Tokyo

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. rvk

    sql query

    First: Ieks. Extended ascii characters in a table name? I wouldn't do that. Second: What is "FROM tablename := :A". Does that work in SQL? Can you parameterize a tablename in a query in ADO? Or did you mean "FROM tablename WHERE field := :A" ?
  2. rvk

    FB3 - FDBackUp

    Not sure which backup program this is but assuming it uses the backup service of Firebird it is weird that your filesize of the backup is the same as the database itself. Normal gbak already strips out a lot during backup. Depending on the size and usage of your database, the backup should be at least a couple of bytes smaller but it could even be as much as 50% of the DB size. Or does FDBackUp do a backup cycle and a restore cycle right after? (but even then I would expect some bytes less)
  3. rvk

    TDataSet emulation without database

    And is there a reason not to use the traditional Insert etc. Like EditDataSet1.Insert; EditDataSet1.FieldByName('number').AsString := 'a'; EditDataSet1.FieldByName('square').AsString := 'b'; EditDataSet1.Post;
  4. rvk

    TDataSet emulation without database

    I see that the code is a mess concerning the use of override instead of overload. If you compile this, watch all the warnings you get (and fix them). I think TDataSet has changed since the creation of this additional code and you now need to use overload on many places. Otherwise your own SetData etc aren't executed and your records aren't populated (which you are experiencing). You'll notice the execution of your code never reaches your EditDataSet1PerformSetFieldData() event.
  5. rvk

    TDataSet emulation without database

    Isn't that just like the standard TClientDataSet? Or am I missing something? https://docwiki.embarcadero.com/Libraries/Sydney/en/Datasnap.DBClient.TClientDataSet
  6. And in professional that version of FireDAC can't connect to a server. It can only make local connections. With IBX you can make connections to a server.
  7. Unfortunately there is no FireDAC C/S connection possible for Delphi Professional. (And also no C/S Add-on Pack anymore I think) (My knowledge of this might be out of date because of those policies by Embarcadero.)
  8. rvk

    Firebird3- Active and InActive ALL Triggers

    No problem. We've all got to start somewhere The EXECUTE BLOCK method groups multiple SQL commands together. But if you are using a STORED PROCEDURE all those commands are already grouped together by the STORED PROCEDURE itself. So you can remove that statement. This should work in FlameRobin (under Object > New > Procedure when connected to the database). SET TERM ^ ; CREATE PROCEDURE TRIGGERSINACTIVE AS DECLARE VARIABLE NOMTABLE varchar(100); DECLARE VARIABLE REQ1 Varchar(100); BEGIN for select x.RDB$TRIGGER_NAME from rdb$triggers x where rdb$trigger_source is not null and (coalesce(rdb$system_flag,0) = 0) and rdb$trigger_source not starting with 'CHECK' into :NOMTABLE do begin NOMTABLE=trim(NOMTABLE); req1= 'ALTER TRIGGER ' || :NOMTABLE || ' INACTIVE;'; execute statement req1; end END^ SET TERM ; ^
  9. rvk

    Firebird3- Active and InActive ALL Triggers

    Maybe it's because ExecSQL with CommandText only expects one SQL command. Not an entire EXECUTE BLOCK. I always use TIbScript for this (from IBX). I'm not sure what the script execute equivalent is for your db-style components (probably dbExpress seeing as you are using TSQLDataset). You could also put this code in a stored procedure (activate and inactivate) and call that if you need to call it more often. (you can call a stored procedure with ExecSQL if you set the commandtype to ctStoredProc.)
  10. rvk

    Firebird3- Active and InActive ALL Triggers

    You could try to remove the SET TERM lines (top and bottom). Not sure if they are needed in commandtext. Then also remove the ^ after the last END.
  11. rvk

    Firebird3- Active and InActive ALL Triggers

    Was this still possible in the latest Interbase version??? For Firebird 3+ at least, directly updating the RDB$TRIGGERS isn't allowed anymore. See the comment here: https://gist.github.com/martinusso/1278962/07650568e3e71cb369dba68562a1e69e7fc4ba33 You could try the EXECUTE BLOCK mentioned there. (I didn't test this) (Inactivating. Activating could be done similarly) SET TERM ^ ; EXECUTE BLOCK AS DECLARE VARIABLE NOMTABLE varchar(100); DECLARE VARIABLE REQ1 Varchar(100); BEGIN for select x.RDB$TRIGGER_NAME from rdb$triggers x where rdb$trigger_source is not null and (coalesce(rdb$system_flag,0) = 0) and rdb$trigger_source not starting with 'CHECK' into :NOMTABLE do begin NOMTABLE=trim(NOMTABLE); req1= 'ALTER TRIGGER ' || :NOMTABLE || ' INACTIVE;'; execute statement req1; end END^ SET TERM ; ^
  12. rvk

    Sending Email via GMail Using OAuth 2.0 via Indy

    Glad it works now 👍
  13. rvk

    Sending Email via GMail Using OAuth 2.0 via Indy

    I just tested your messsage.txt and it works for me. I can create a draft with that message but I can also directly send it (because I have both draft and send access in my app approval). This is my code. (Although I would remove the headers From, Reply-To and Date because those would be added automatically. It doesn't hurt when you add them but they are NOT used. From is always the address of the default sender in gmail and Reply-To is always the gmail account and Date is always now.) Looking at your code I now do see a difference with my code. You are using Url := 'https://gmail.googleapis.com/gmail/v1/users/' + emailFrom + '/messages/send'; I'm using Url := 'https://www.googleapis.com/upload/gmail/v1/users/' + gOAuth2.email + '/messages/send'; You need to use the Upload URI, for media upload requests to post this as raw message. See here https://developers.google.com/gmail/api/reference/rest/v1/users.messages/send There is a difference with /gmail/v1 and /upload/gmail/v1. If I use your Url I also get an invalid JSON error message 400. So use the other Url and it should be fine.
  14. rvk

    Sending Email via GMail Using OAuth 2.0 via Indy

    Btw. It's best you first try a very simple rfc822 style message without attachment. If that works you can debug why adding attachments doesn't work. You can post the simple message here if it doesn't work for you so we can debug it. (i.e. wrong headers due to not disabling escaping mail adresses)
  15. rvk

    Sending Email via GMail Using OAuth 2.0 via Indy

    Can you post the raw rfc822 data in a txt file here with a simple testmail? (Did you try the overloaded saveto helper to disable escaping email adresses as suggested??) I can try it here to see what goes wrong. The rfc822 mimetype should work with send-api too (i thought). I also found that the error messages you get are indeed often unhelpfull (just a 4xx rejected without reason). Another option is just plain smtp with a specific app-password. But that's something each user should set in their own account (and provide your app with that password). Using the authetication method is much easier. Downside is that your app needs to go through the approval process of Google for the specified access.
×