From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00, T_FILL_THIS_FORM_SHORT autolearn=ham autolearn_force=no version=3.4.6 X-Received: by 2002:a05:620a:4489:: with SMTP id x9mr1314697qkp.633.1642513834614; Tue, 18 Jan 2022 05:50:34 -0800 (PST) X-Received: by 2002:a25:b906:: with SMTP id x6mr34396394ybj.372.1642513834406; Tue, 18 Jan 2022 05:50:34 -0800 (PST) Path: eternal-september.org!reader02.eternal-september.org!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Tue, 18 Jan 2022 05:50:34 -0800 (PST) In-Reply-To: <2306ce86-b1da-4448-a77a-9be0f5cec9f6n@googlegroups.com> Injection-Info: google-groups.googlegroups.com; posting-host=80.194.57.154; posting-account=xS3LTwoAAAB3aeXopC8a-M58TGE8K6go NNTP-Posting-Host: 80.194.57.154 References: <09dcb07d-f7b8-432b-8338-840ff90faef1n@googlegroups.com> <55bae7e8-f5da-4cfc-b0f9-284bc900d89cn@googlegroups.com> <13fa1a0d-eeed-4f44-a1ec-cace658fec0dn@googlegroups.com> <2306ce86-b1da-4448-a77a-9be0f5cec9f6n@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <2e5eeb92-cc9b-43ae-8718-5cdd9774baf3n@googlegroups.com> Subject: Re: Odd Behaviour From: Mark Wilson Injection-Date: Tue, 18 Jan 2022 13:50:34 +0000 Content-Type: text/plain; charset="UTF-8" Xref: reader02.eternal-september.org comp.lang.ada:63394 List-Id: Just for completeness, this is what I end up doing SPEC: -------------------------------------------------------------------------------- function SQL_OK (rc : in SQLRETURN) return Boolean with Global => null, Depends => (SQL_OK'Result => (rc)), Post => (SQL_OK'Result = (rc = SQL_SUCCESS or rc = SQL_SUCCESS_WITH_INFO)); -------------------------------------------------------------------------------- procedure SQLAllocEnv (hEnv : in out SQLHENV; Result : out SQLRETURN) with Inline, Global => (Output => Environment), Depends => ((Result, hEnv, Environment) => (hEnv)), Pre => (SQLHANDLE (hEnv) = SQL_NULL_HANDLE), Post => (if SQL_OK (Result) then SQLHANDLE(hEnv) /= SQL_NULL_HANDLE else SQLHANDLE(hEnv) = SQL_NULL_HANDLE); -------------------------------------------------------------------------------- procedure SQLAllocDbc (hEnv : in SQLHENV; hDbc : in out SQLHDBC; Result : out SQLRETURN) with Inline, Global => (Input => Environment, Output => Database_Connection), Depends => ((Result, hDbc, Database_Connection) => (hEnv, hDbc, Environment)), Pre => (SQLHANDLE (hEnv) /= SQL_NULL_HANDLE and SQLHANDLE (hDbc) = SQL_NULL_HANDLE), Post => (if SQL_OK (Result) then SQLHANDLE(hDbc) /= SQL_NULL_HANDLE else SQLHANDLE(hDbc) = SQL_NULL_HANDLE); -------------------------------------------------------------------------------- BODY: -------------------------------------------------------------------------------- function SQLAllocHandle (HandleType : in SQL_HANDLE_TYPE; InputHandle : in SQLHANDLE; OutputHandlePtr : in out SQLHANDLE) return SQLRETURN with Import => True, Convention => C, External_Name => "SQLAllocHandle"; -------------------------------------------------------------------------------- function SQL_OK (rc : in SQLRETURN) return Boolean is (rc = SQL_SUCCESS or rc = SQL_SUCCESS_WITH_INFO); -------------------------------------------------------------------------------- procedure SQLAllocEnv (hEnv : in out SQLHENV; Result : out SQLRETURN) is begin Result := SQLAllocHandle (HandleType => SQL_HANDLE_ENV, InputHandle => SQL_NULL_HANDLE, OutputHandlePtr => SQLHANDLE (hEnv)); end SQLAllocEnv; -------------------------------------------------------------------------------- procedure SQLAllocDbc (hEnv : in SQLHENV; hDbc : in out SQLHDBC; Result : out SQLRETURN) is begin Result := SQLAllocHandle (HandleType => SQL_HANDLE_DBC, InputHandle => SQLHANDLE (hEnv), OutputHandlePtr => SQLHANDLE (hDbc)); end SQLAllocDbc; -------------------------------------------------------------------------------- Thanks for the help!