1、Information technology Information Resource Dictionary System (IRDS) Services Interface AMENDMENT 1: C language binding Amendment 1:2013 (IDT) toNational Standard of CanadaCAN/CSA-ISO/IEC 10728-95(ISO/IEC 10728:1993, IDT)NOT FOR RESALE. / PUBLICATION NON DESTINE LA REVENTE.Standards Update ServiceAm
2、endment 1:2013 toCAN/CSA-ISO/IEC 10728-95January 2013Title: Information technology Information Resource Dictionary System (IRDS) Services Interface AMENDMENT 1: C language binding Pagination: 19 pages (ii preliminary and 17 text)To register for e-mail notification about any updates to this publicati
3、ongo to shop.csa.caclick on CSA Update ServiceThe List ID that you will need to register for updates to this publication is 2422238.If you require assistance, please e-mail techsupportcsagroup.org or call 416-747-2233.Visit CSA Groups policy on privacy at csagroup.org/legal to find out how we protec
4、t your personal information.INTERNATIONAL STANDARD ISO/IEC 10728 First edition 1993-04-15 AMENDMENT 1 1995-12-15 Information technology - Information Resource Dictionary System (IRDS) Services Interface AMENDMENT 1: C language binding Technologies de I information - Interface de servkes du gestionna
5、ire de ressources du Systeme d informations (IRDS) AMENDEMENT 7: Liant de langage C Reference number ISO/lEC 10728:1993/Amd.l :1995(E) ISO/IEC 10728:1993/Amd 1:1995(E) Foreword ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form the s
6、pecialized System for worldwide standardization. National bodies that are mem- bers of ISO or IEC participate in the development of International Standards through technical com- mittees established by the respective organization to deal with particular fields of technical activity. ISO and IEC tech
7、nical committees collaborate in fields of mutual interest. Other international organizations, govemmental and non-govemmental, in liaison with ISO and IEC, also take part in the work. In the field of information technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1. Dra
8、ft International Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as an International Standard requires approval by at least 75 % of the national bodies casting a vote. Amendment 1 to International Standard ISO/IEC 10728:1993 was prepared b
9、y Joint Technical Com- mittee ISO/IEC JTC 1, Information technology, Subcommittee SC 21, Open Systems interconnection, data management and open distributed processing. . 0 ISO/IEC 1995 All rights reserved. Unless otherwise specified, no part of this publication may be repro- duced or utilized in any
10、 form or by any means, electronie or mechanical, including photo- copying and microfilm, without Permission in writing from the publisher. ISO/IEC Copyright Office l Case Postale 56 l CH- 1211 Geneve 20 l Switzerland Printed in S wi tzerland Amendment 1:2013 to CAN/CSA-ISO/IEC 10728-950 ISO/IEC ISO/
11、IEC 10728:1993/Amd 1:1995(E) Information technology - Information Resource Dictionary System (IRDS) Service Interface AMENDMENT 1: C language binding Page v Contents Add a new entry to the Table of Contents as follows: “Annex C - C language binding” Page 1 Clause 1 Add a new sentence in clause 1 Par
12、agraph 2, before the last sentence. “A language binding for the C language is provided in annex C.” Page 5 Subclause 4.4 Add a new sentence in subclause 4.4. “Data structures for use with the C language are defined in annex C.” Page 5 Subclause 4.5 Add a new sentence in subclause 4.5. “C language bi
13、ndings for the Services are provided in annex C.” Page 71 Subclause 8.1 Amend the first sentence of the NOTE in subclause 8.1 to read: “For the Pascal language binding specified in this clause and the C language binding specified in annex C, enumerated types are . . ” Page 75 Clause 9 Amend the firs
14、t sentence of the second Paragraph of Clause 9 to read: “The Service formats are specified in this clause using ISO Standard Pascal. Alternative Service formats for use with the C language are specified in annex C.” Page 105 Add a new annex C as follows: Amendment 1:2013 to CAN/CSA-ISO/IEC 10728-95I
15、SO/IEC 10728:1993/Amd 1:1995(E) 0 ISO/IEC Annex C (normative) C language binding The IRDS Services Interface language bindings for the C language are presented in the form of a C .h file as set out in clause C.3 below. C.1 Strategy for the Language Binding In this binding the data names and data str
16、uctures defined in clause 8 have been adhered to except where the C language does not provide an appropriate construct. In this binding the procedure names and their Parameters defined in clause 8 have been adhered to except where the C language does not provide an appropriate construct. Macros have
17、 been used for various limits instead of const-qualified variables. Standard C requires that the length of an array be a compile-time constant integer expression and a const- qualified variable does not have this property. Use of this language binding requires the use of a C implementation that conf
18、orms to ISO/IEC 9899: 1990. C.2 General Rules 1 . Those data names in C.2 below that also appear in Clause 8 shall have the same meaning as is defined in Clause 8. The Same rules for the use of separators as defined in Clause 8 shall apply. 2 . The function and Parameter names in C.2 below shall hav
19、e the Same meaning as is defined in Clause 9. 3 . The Service Return Codes returned shall be those defined by Clause 9 and Annex A and they shall have the Same meaning. 4 . The following mappings from SQL data types to C data types have been used: SQL DATA TYPE CHARACTER CHARAm VARYING JWTIONAL,CHAR
20、A! NATIONALCHARACT!ERvARyIT JG DXJBLE PRlzcIsIaN FLOAT mm sb4AILm NUMERK DEUMALl mm C DATA TYPE pIrdsText pIrdsText pIrdsText pIrdsText float double float /* See 8.2.1 */ /* See 8.2.1 */ /* See 8.2.1 */ /* See 8.2.1 */ short lang 1oKl IrdsIBte IrdsTime /* See 8.2.1 */ /* See 8.2.1 */ Amendment 1:201
21、3 to CAN/CSA-ISO/IEC 10728-950 ISO/IEC ISO/IEC 10728:1993/Amd 1:1995(E) TIMEST= lIINlxRw IrdsTimeStamp /* See 8.2.1 */ IrdsInterval /* See 8.2.1 */ 5 . Every function returns an int which is to be set to the value of the NumStates field of the RetCode returned by the function. C.3 Notes for Implerne
22、ntors 1 . To ensure uniqueness all extemally visible names Start with the characters Irds. 2 For readability and because of the above requirement, many names are not unique within the first six characters of the name. Those implernentors whose implernentations do not support long names are to add su
23、itable #define Statements to ensure that all names are distinguished by their implementation. For example, #define IrdsOpen 1 0 - #define IrdsOpenCursor 1 OC - C.4 C language .h file / * This file is called irds.h * * This version of this header conforms to: * ISO/IEC 10728:1993 (E) * IRDS Services
24、Interface 3; * 0 Cowright ISO 1995 * / /* Protect against multiple inclusion of the header file */ #ifndef IRDS H #define IRDS-H - /* Allow use 3cqr C+ Compilers */ #ifdef cplusplus extern “C“ #endif #include 1rd.sTi.rr-e; typedef struct -t IrdsDate Date; ChX Sepr7; IrdsTime Time; IrdsTimestamp; Ame
25、ndment 1:2013 to CAN/CSA-ISO/IEC 10728-950 ISO/IEC ISO/IEC 10728:1993/Amd 1:1995(E) typedef struct ChELK- YSru ; ChX SepI; IrdsTime Tirw; IrdsInterval; typedef char IrdsKeyIrdsKeyLen; /* IrdsKeyLen is defined in 8.1.3 above */ /* Clause 8.2.2 Object Narnes */ typedef char IrdsSQLNamel28; / * 128 is
26、set by ISO/IEC 9075:1992 database Language SQL */ typedef char IrdsNameIrdsNameLim; /* IrdsNameLim is defined in 8.1.1 above */ typedef char IrdsVarNameIrdim; /* IrdsVarLim is defined in 8.1.1 above */ typedef char UserIdIrdsNameLim; /* IrdsNameLim is defined in 8.1.1 above */ /* Clause 8.2.3 Contro
27、l Identifiers */ typedef char IrdsSessIdIrdsSessIdLim; /* IrdsSessIdLim is defined in 8.1.3 above * / typedef char IrdsCurIdIrdsCurIdLim; /* IrdsCurIdLim is defined in 8.1.3 almve * / typedef char IrdsDicNameIrdsBnpDicNameLen; /* IrdsIrnpDicNameLen is defined in 8.1.3 almve */ /* Clause 8.2.4 Diagno
28、stics Area */ typedef struct char StateClass2; char StateSuWlass3; IrdsState; /* IrdsState is used in 8.2.5 below */ Amendment 1:2013 to CAN/CSA-ISO/IEC 10728-95ISO/IEC 10728: 1993/Amd 1: 1995(E 0 ISO/IEC typedef struct -t int IrdStateSeq; IrdsState IrdRetumedState; IrdsSQL IrdsSQLName IrdConstraint
29、Name; IrdsSQLName IrdSchmame; IrdsSQLName IrdTableName; in-t IrdColumNumber; IrdsSQLkme IrdColumnName; IrdsStateRec; / * IrdsStateRec is used in the Get Diagnostcs Service in 9.1.8 below 3; / / * Clause 8.2.5 Service Return Code */ typedef struct 1 int NmStates; IrdsState State; IrdsRetCode; / * Cla
30、use 8.2.6 Cola List parameters */ / * In the C binding the column list actually is a list. In the Pascal binding the list was actually an array. In IrdsColList the FirstColumn points to the first IrdsSingleColSpec. In each IrdsSingleColSpec, NextColurrm points to the following IrdsSingleColSpec and
31、so on. The definition of a boolean data tme is not included in the C language definition, but defines one autmatically. To be is defined. AL many environments secure, an Irds Boolean - * / typedef enum Irds False = 0, Irds True - - = 1) Irds Boolean; - Amendment 1:2013 to CAN/CSA-ISO/IEC 10728-950 I
32、SO/IEC ISO/IEC 10728:1993/Amd 1:1995(E) typedef Union pIrdsWxt / * double short long IrdslXte IrdsTime IrdsTimestasrrp IrdsInterval IrdsDataTypeUnion; ColValText; Note that this is a pointer to text */ ColValReal; ColValShortInteger; ColValLongInteger; ColValDate; ColValTime; ColValTimestamp; ColVal
33、Interval; struct IrdsSingleColSpec IrdsSQLName Irds Boolean - IrdslXtaType IrdsDataTypeunUnion struct IrdsSingl ColNull; ColType; IrdsColVal; NextCohmn; 1 . tpedefstruct IrdsSingleColSpec* pIrdsSingleColspeC; / * Note that unlike Pascal, C offers no enforcment of the interpretation of the data type
34、of IrdsColVal according to the value of ColType. It is therefore the responsibility of the client to intexpret data returned w the IRDS according to the value of ColType. * / typedef struct Iint Char pIrdsSingleColSpec IrdsColList; Numols; StateSubClass3; FirstColm; typedef IrdsColList* pIrdsColList
35、; Amendment 1:2013 to CAN/CSA-ISO/IEC 10728-95ISO/IEC 10728: 1993/Amd 1: 1995(E) 0 ISO/IEC / * IRDS C function prototypes * / / * All functions return an int which is the value of the NumStates field of the RetCode returned by the function. See clause 8.2.5 */ /* Clause 9.1,1 Create IRD Definition S
36、ervice */ int IrdsCreateIRDEfinition ( const UserId const IrdsB-rpDicName IrdsSessId IrdsRetCode* ; IrdsUser, IrdIXfName, CurrSessId, RetCode /* Clause 9.1.2 Drop IRD Definition Service */ int IrdsDropIRDIXfinition ( const UserId IrdsUser, const IrdsIrqDicName IrdDefName, IrdsRetCode* RetCode ; /* C
37、lause 9.1.3 Open IRDS Service */ int IrdsOpen ( const UserId IrdsUser, const IrdslmpDicName IrdIMName, const IrdsName IrdDicName, const Irds Boolean - WillUpdate, IrdsSessId CurrSessId, IrdsRetCode* RetCode 10 Amendment 1:2013 to CAN/CSA-ISO/IEC 10728-950 ISO/IEC ISO/IEC 10728:1993/Amd 1:1995(E) /*
38、Clause 9.1.4 Prepare Service */ int IrdsPrepare ( const IrdsSessId CurrSessId, IrdsRetCode* RetCode ; /* Clause 9.1.5 Coirmit Service */ int IrdsCorranit const IrdsSessId CurrSessId, IrdsRetCode3c RetCode ; /* Clause 9.1.6 Rollback Service */ int IrdsRollback const IrdsSessId CurrSessId, IrdsRetC /*
39、 Clause 9.1.7 Close IRDS Service */ int IrdsClose const IrdsSessId CurrSessId, const IrdsCloseQpe c10se /* Clause 9.1.8 GetDiagnostics Service */ int IrdsGetDiagnostics const IrdsSessId CurrSessId, const int StatGNutn, IrdsStateRec* StateRec, IrdsRetCode* RetCode 1 ; 11 Amendment 1:2013 to CAN/CSA-I
40、SO/IEC 10728-95ISO/IEC 10728:1993/Amd 1:1995(E) 0 ISO/IEC /* Clause 9.2.1 Set Context Service */ int IrdsSetContext ( const IrdsSessId CurrSessId, const IrdsName SessWkgSetNm, const IrdsName SessWYkgSetVerId, const Irds Boolean - Willupdate, IrdsRetCode* RetCode ; /* Clause 9.2.2 Add Object Service
41、*/ int IrdsAddObject ( const IrdsSessId CurrSessId, const IrdsName WDYpc const IrdsColList* NeWols, IrdsRetCode* RetCode ; /* Clause 9.2.3 Open Cursor Service */ int IrdsOpenCursor ( const IrdsSessId const Irds Boolean - const pIrdsText const IrdsName const IrdsName const Irds Boolean - const Irds B
42、oolean - IrdsCu.rId* IrdsRetCode* CurrSessId, UseContext, ObjSelExpr, WkgSetName, WkgSetverId, FullContext, Willpdate, ObjCurId, RetCde 12 Amendment 1:2013 to CAN/CSA-ISO/IEC 10728-950 ISO/IEC ISO/IEC 10728:1993/Amd l:l995(E) /* Clause 9.2.4 Retrieve Object Service */ int IrdsRetrieveObject ( const
43、IrdsSessId const IrdsCurId IrdsColList* IrdsRetCode* CurrSessId, ObjCurId, RequestedCols, RetCode ; /* Clause 9.2.5 Modify Object Service */ int IrdsModifyObject ( const IrdsSessId CurrSessId, const IrdsCurId ObjCurId, const IrdsColList* ModifiedCols, IrdsRetCode* RetCode ; /* Clause 9.2.6 Elete Obj
44、ect Service */ int Irds /* Clause 9.2.7 IrdsDeclassifyCbject Object Service */ int Irds /* Clause 9.2.9 Close Cursor Service */ int IrdsCloseCursor const IrdsSessId const IrdsCurId IrdsRetCode* CurrSessId, ObjCurId, RetCode ; /* Clause 9.2.10 Create Working Set Service */ int IrdsCreateWorkingSet (
45、const IrdsSessId const IrdsName const IrdsName const IrdsNme const IrdsName const IrdsName const Irds Boolean - IrdsRetCode* ; CurrSessId, NewWkgSetNme, NemkgSetVerId, NevDzs, EasisWkgSetNamel BasisWkgSetVerId, Versienable, RetCode /* Clause 9.2.11 Drop Working Set Service */ int IrdsDropWorkingSet
46、( const IrdsSessId CurrSessId, const IrdsName WkgSetName, const IrdsName WkgSetVerId, IrdsRetCode* RetCode ; /* Clause 9.2.12 Modify Content Status Service */ 14 Amendment 1:2013 to CAN/CSA-ISO/IEC 10728-950 ISO/IEC ISO/IEC 10728:1993/Amd l:l995(E) int IrdsModifyContentStatus ( const IrdsSessId cons
47、t IrdsName const IrdsName const IrdsName IrdsRetCode* ; CurrSessId, WkgSetName, WkgSetVerId, NeMEs, RetCode /* Clause 9.2.13 Create Reference Path Service */ int IrdsCreateRefPath ( const IrdsSessId CurrSessId, const IrdsName TbWkgSetName, const IrdsName !bWkgSetVerId, IrdsRetCode* RetCode ; /* Clau
48、se 9.2.14 Modify Reference Path Service */ int IrdsModifyRefPath ( const IrdsSessId CurrSessId, const IrdsName OldWkgSetName, const IrdsName OldToWkgSetVerId, const IrdsName NmfIbWkgSetName, const IrdsName NmgSetVerId, IrdsRetCode* RetCode ; /* Clause 9.2.15 Drop Reference Path Service */ int IrdsDr
49、opRefPath const IrdsSessId CurrSessId, const IrdsName TbWkgSetName, const IrdsName ToFJkgSetVerId, IrdsRetCode* RetCode ; /* Clause 9.3.1 Create IRD Service */ int IrdsCreateIRD const IrdsSessId CurrSessId, const IrdslmpDicName IrdExternalName, 15 Amendment 1:2013 to CAN/CSA-ISO/IEC 10728-95ISO/IEC 10728:1993/Amd 1:1995(E) 0 ISO/IEC const IrdsName IrdDicNm, const IrdsName SchmaGroupName, IrdsRetCode* RetCode ; /* Clause 9.3.2 Drap IRD Service */ int IrdsDropIRD ( const IrdsSessId const IrdsNme IrdsRetCode* CurrSessId, rdDicN /* Clause 9.3.4 R
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1