EXEC SQL BEGIN DECLARE SECTION;
char stmnt [255];
EXEC SQL END DECLARE SECTION;
strcpy (stmnt, "select hno, name, price from hotel");
EXEC SQL PREPARE SEL FROM :stmnt;
EXEC SQL EXECUTE SEL;
EXEC SQL PREPARE FET FROM 'FETCH USING DESCRIPTOR';
EXEC SQL DESCRIBE FET;
/* Bind each column to a piece of memory */
for (i=0;i<sqlda.sqln;i++) {
sqlvartype *sqlvar =
&sqlda.sqlvar[i];
switch(sqlvar->coltype){
case (sqlfixed) :
{
if
(sqlvar->colfrac == 0) {
sqlvar->hostvartype = sqlvint4;
sqlvar->hostcolsize = sizeof(int);
sqlvar->hostvaraddr = malloc(sizeof(int));
}
else
{
sqlvar->hostvartype = sqlvreal4;
sqlvar->hostcolsize = sizeof(float);
sqlvar->hostvaraddr = malloc(sizeof(float));
}
break;
}
case (sqlchar) :
{
sqlvar->hostvartype = sqlvchar;
sqlvar->hostcolsize = sqlda.sqlvar[0].collength;
sqlvar->hostvaraddr = malloc(sizeof(int));
break;
}
default : {
/* TODO:
support more datatypes */
}
}
}
/* Process result table */
EXEC SQL EXECUTE FET USING DESCRIPTOR;
while (sqlca.sqlcode
== 0) {
EXEC SQL
EXECUTE FET USING DESCRIPTOR;
}