mirror of
https://github.com/FirebirdSQL/firebird-qa.git
synced 2025-01-22 13:33:07 +01:00
BAIL switch must be returned to its default value when script is to be finished. See IMPORTANT NOTES inside this .sql: PIPE is handled differently on Windows vs Linux.
This commit is contained in:
parent
06f8a51f71
commit
ef8b688182
@ -29,3 +29,29 @@ insert into employee( emp_no, last_name, dept_no) values (7, 'e7', 2);
|
|||||||
insert into employee( emp_no, last_name, dept_no) values (8, 'e8', 3);
|
insert into employee( emp_no, last_name, dept_no) values (8, 'e8', 3);
|
||||||
insert into employee( emp_no, last_name, dept_no) values (9, 'e9', 3);
|
insert into employee( emp_no, last_name, dept_no) values (9, 'e9', 3);
|
||||||
commit;
|
commit;
|
||||||
|
|
||||||
|
-- ### ACHTUNG: IMPORTANT ###
|
||||||
|
-- On WINDOWS setting 'set bail on' is siletnly ignored when .sql commands
|
||||||
|
-- are passed via PIPE, i.e. using command like this:
|
||||||
|
-- type <script_with_bail_on.sql> | %fb_home%\isql host/port:db_file
|
||||||
|
-- If some statement from <script_with_bail_on.sql> failed then script
|
||||||
|
-- will be CONTINUED, thus ignoring SET BAIL ON!
|
||||||
|
-- The reason is that PIPE operator (vertical bar, "|") is considered
|
||||||
|
-- on Windows as *interactive*, i.e. like user manually types command-by-command.
|
||||||
|
-- On Linux this is not so, and any failed statement will stop execurion
|
||||||
|
-- of the whole script immediately. So, we have a
|
||||||
|
-- ###############################################
|
||||||
|
-- ### DIFFERENT BEHAVIOUR ON WINDOWS vs LINUS ###
|
||||||
|
-- ###############################################
|
||||||
|
-- See also:
|
||||||
|
-- 1. Discussion with pcisar, alex and dimitr:
|
||||||
|
-- subj: "[new-qa] ISQL "SET BAIL ON" problem on Windows when commands come from PIPE"
|
||||||
|
-- date: 12-mar-2022 16:04
|
||||||
|
-- 2. doc\README.isql_enhancements.txt ("if the user loads isql interactively and later
|
||||||
|
-- executes a script with the input command, this is considered an interactive session
|
||||||
|
-- even though isql knows it's executing a script")
|
||||||
|
|
||||||
|
-- BECAUSE OF THIS, IT IS MANDATORY TO RETURN BAIL TO ITS DEFAULT VALUE:
|
||||||
|
--############
|
||||||
|
set bail off;
|
||||||
|
--############
|
||||||
|
Loading…
Reference in New Issue
Block a user