Setting up IP source and schema
- Last Updated: May 12, 2026
- 4 minute read
- OpenAccess SDK
- Version 8.1
- Documentation
You can develop an IP for your data source by starting with the installed template IP, one of the installed examples.
The steps in this section assume you are starting from the template IP installed at install_dir/ip/oac/template_c. The template IP consists of stubs for each of the IP functions that you must implement.
If you start from one of the examples, the steps are the same as if you start from a template IP, except that you replace references to template with example. For code samples downloaded from the Progress DataDirect code library, follow the instructions provided with the sample. If you are coding in C++, then use template_cpp instead of template_c.
The template IP directory install_dir/ip/oac/template_c shipped with OpenAccess SDK contains the following files:
damip.c- defines the IP functions such as OAIP_connectdamip_ascii.def- export definitions to be used on Windows for an ASCII IPdamip_unicode.def- export definitions to be used on Windows for a Unicode IPoadamip.vcxproj- Visual Studio project file for Windowsmakefile- makefile for use on Linux/UNIX
OpenAccess SDK also provides the following schema directories:
install_dir/ip/schema/template_staticinstall_dir/ip/schema/template_dynamic
The ip/schema/template_static directory contains the minimal OA_TABLES, OA_COLUMNS, OA_STATISTICS, and OA_FKEYS configuration required to use the OpenAccess SDK SQL engine schema manager.
The ip/schema/template_dynamic directory contains the minimal OA_TABLES and OA_COLUMNS required to support views over dynamic schema and are used when the IP is implementing the schema management.
To set up the source and schema for a new IP:
-
Copy the contents of the
ip/oac/template_cdirectory and all subdirectories and files to a directoryip/oac/youripand rename the template files. For example, on UNIX, perform the following commands, replacingyouripwith the name you have chosen for your IP:
a.cdinstall_dir/ip/oac
b.mkdiryourip
c.cp -r template/yourip
d.cdyourip
e.mv damip.cyourip_drv.c -
Edit the project file on Windows or the makefile on UNIX to reference your IPfiles.
- For building on Windows:
-
Open Visual Studio project
ip\oac\yourip\oadamip.vcxproj. -
Remove
damip.cfiles from the Source Files folder and add inyourip_drv.cfiles and any other files required to build your IP.- If the IP project is being created from the template project provided by OpenAccess SDK, skip to step 3.
- If the IP is implemented from scratch on OpenAccess SDK 8.1 or is being upgraded from OpenAccess SDK 6.0 SP3 to OpenAccess SDK 8.1, add the
xxx_info.cfile explicitly in the IP project.
-
Add references to any other libraries required to build your IP. The Library Files group contains a reference to the oadsdam.lib and must not be removed.
-
The project is set up to output the generated DLL to
install_dir\ip\binfolder and must not be changed. The name of the file can be changed, and this name will be used as the value for ServiceIPModule service attribute when setting up the OpenAccess SDK Service to access your data source. -
The project is set up to use the
damip_ascii.deffile for exporting the IP API functions. Use thedamip_unicode.deffile if you are exposing Unicode IP functions, such as OAIP_schemaW. This file must be edited to include all the IP API functions that are being exported. For example, if you are implementing dynamic schema, then you must have an entry calledOAIP_schemaorOAIP_schemaWin the file. -
Perform a build and make sure your IP DLL builds without any issues and is placed in the
install_dir\ip\binfolder.
-
For building on UNIX:
-
Change to your installation directory.
-
Set up required environment variable:
- If working in Korn Shell then use the command:
unixKshPrompt> . ip/cfg/setenv.sh- If working in C shell then use the command:
unixCshPrompt> source ip/cfg/setenv.csh -
Change to directory
ip/oac/yourip. -
Edit the makefile to add source files and required libraries for your IP.
Add any additional files required to build and link your IP. The supplied makefile is set up to create a shared library and to place it in
install_dir/ip/binfolder. The name of the output file can be changed. This name will be used as the value for ServiceIPModule attribute when setting up the OpenAccess SDK service to access your data source.The supplied makefile references
install_dir/ip/cfg/env.mkfor compiler and linker commands and options. Modify thisenv.mkfile as required for your compiler and system environment.Compile your IP into a shared library by issuing the build command:
unixCshPrompt> make
-
For schema support, do one of the following steps:
- Static schema: If you want to use the static schema feature where the OpenAccess SDK SQL engine manages the schema, set up the required schema storage files by copying the contents of
ip/schema/template_staticdirectory to directoryip/schema/yourip. - Dynamic schema: If you are implementing a dynamic schema where the IP implements the SCHEMA function and you want to take advantage of SQL views, then copy the contents of
ip/schema/template_dynamic directoryto directoryip/schema/yourip.
The schema directory you create in this step will be used as the DataSourceIPSchemaPath when configuring the data source for the OpenAccess SDK service using this IP.
On UNIX, for example, perform the following commands to set up a static schema:
a. cd ip/schema
b. mkdir yourip
c. cp -r template_static/\ yourip
The development environment and the schema folder for your IP are now set up. Next, set up the OpenAccess SDK service to access your data source. Refer to Debugging an OpenAccess SDK Interface Provider on the Progress DataDirect web site for details on how to debug an IP on Linux, UNIX, and Windows.
Important: By default, the files xxx_info.c and xxx_info.h are already included in the projects of samples and template. If you implement your IP from scratch on OpenAccess SDK 8.1 or if you are migrating from OpenAccess SDK 6.0 SP3 to OpenAccess SDK 8.1, you must include these files explicitly in your projects. Inclusion of these files is mandatory.