SQL/MX Programming Manual for C and COBOL (G06.24+, H06.03+)

C/C++ Program Compilation
HP NonStop SQL/MX Programming Manual for C and COBOL523627-004
15-48
Quick Builds and mxcmp Defaults in a One-File
Application Deployment
1. Create or edit static SQL C/C++ source files (for example, s1.sql, s2.sql,
s3.sql) as needed:
// s1.sql
EXEC SQL MODULE s1m;
int sow(int a) { ...
EXEC SQL INSERT INTO seeds VALUES(?, ?, ?);
...
}
// s2.sql
EXEC SQL MODULE s2m;
int grow(int j) { ... EXEC SQL UPDATE trees SET h=h+? WHERE
id=?;
...
}
// s3.sql
EXEC SQL MODULE s3m;
int reap(int z) { ...
EXEC SQL DELETE crops WHERE id=?;
...
}
Notice that references to the SQL tables seeds, trees, and crops do not specify
their catalog and schema so that the full resolution of these SQL object references
can be deferred to as late as the module compilation step.
2. Run the SQL/MX C/C++ preprocessor to generate code that references modules
named cat.sch.s1m, cat.sch.s2m, and cat.sch.s3m:
cd /usr/meas
mxsqlc s1.sql -g moduleSchema=cat.sch
mxsqlc s2.sql -g moduleSchema=cat.sch
mxsqlc s3.sql -g moduleSchema=cat.sch
These modules use the default mxsqlc option that generates the annotated
output source files s1.c, s2.c, and s3.c.
3. Run the C/C++ compiler:
cd /usr/meas
c89 -Wversion2 -I /usr/tandem/sqlmx/include -c s1.c
c89 -Wversion2 -I /usr/tandem/sqlmx/include -c s2.c
c89 -Wversion2 -I /usr/tandem/sqlmx/include -c s3.c
This step generates the object files s1.o, s2.o, and s3.o.
4. Run the native linker. For TNS/R native applications, use the nld utility:
cd /usr/meas
nld -elf -set systype oss -set highpin off \
-set highrequestor on -set inspect on \
-obey /usr/lib/libc.obey -set saveabend on \
/usr/lib/crtlmain.o s1.o s2.o s3.o \
-l zcplsrl -l zcrtlsrl -l zcresrl -l zcplosrl -l ztlhgsrl \
-l ztlhosrl -Bdynamic -l zclisrl -o sprog