문제

I am writing a C program in Unix System Services on a z/OS mainframe. One of the requirements is to get a sequence number from a DB2 database residing on the same mainframe. Not having DB2 Connect available, I'm wondering what my options might be. I can open a socket on port 50000 (the default DB2 port), but, from the IBM documentation I can locate, I am unclear about the rest of the process in this environment.

I have UNIX and DB2 in my background, but I'm just getting my feet wet in the z/OS world, so I'm trying to keep this as straightforward and maintainable as possible.

도움이 되었습니까?

해결책

There is a specific section for ODBC access to DB2/z in the DB2/z 9.1 docs over on publib. Publib should always be the first point of call for any IBM doco.

There's also the DB2/z ODBC PDF.

This is the best way to access DB2/z from C on OE/OMVS/USS (or whatever it's called nowadays). If it was Java, I could probably help out more. The online help was invaluable in getting JREs to talk to the mainframe DB2 (from both USS and PCs) with minimal hassling of our local sysprogs. Of course, it'll be a lot easier with them :-) especially for setting up the z/OS (non-USS) side of things.

다른 팁

Why not use a unix ODBC driver to connect to the database and use the ODBC's sql dialect...it's easy to do...in that way with ODBC the flexibility is there for future maintainability, say switch to a different database provider...see here for an example C code that interacts via ODBC

For C++ I can recommend OTL template library to simplify ODBC interaction. It works with IBM C++ and DB2 for z/OS. Can be used on different platforms.

Link: Oracle, ODBC and DB2-CLI Template Library

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top