You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.3 KiB
77 lines
2.3 KiB
/*******************************************************
|
|
**
|
|
** A sample program that demonstrates the use of Static embedded SQL.
|
|
** Before compiling this program, be sure you have created a table
|
|
** called video and inserted some tuples in it.
|
|
**
|
|
********************************************************/
|
|
#include <stdio.h>
|
|
|
|
/* sqlca: is the sql communications area. All error codes
|
|
* are returned from db2 in that structure which is filled
|
|
* each time an interaction with db2 takes place.
|
|
*/
|
|
|
|
EXEC SQL INCLUDE SQLCA; /* SQL communication area structure */
|
|
|
|
EXEC SQL BEGIN DECLARE SECTION; /* declare host variables */
|
|
char db_name[8]; /* database name */
|
|
char video_title[30]; /* title of the video */
|
|
short video_id; /* serial number */
|
|
char director[20]; /* director name */
|
|
EXEC SQL END DECLARE SECTION;
|
|
|
|
/* These lines are redundant here because the default
|
|
* action is to continue. They just show the kind of
|
|
* errors that could arise and one way to control them.
|
|
*/
|
|
|
|
EXEC SQL WHENEVER SQLWARNING CONTINUE; /* sqlca.sqlcode > 0 */
|
|
EXEC SQL WHENEVER SQLERROR CONTINUE; /* sqlca.sqlcode < 0 */
|
|
EXEC SQL WHENEVER NOT FOUND CONTINUE; /* sqlca.sqlcode = 100 */
|
|
/* sqlca.sqlcode = 0 (no error) */
|
|
|
|
void main()
|
|
{
|
|
strcpy(db_name, "csc343h");
|
|
|
|
/* C variables are preceded by a colon when they are passed to DB2 */
|
|
|
|
EXEC SQL CONNECT TO :db_name;
|
|
|
|
if (sqlca.sqlcode != 0)
|
|
{
|
|
printf("Connect failed!: reason %ld\n", sqlca.sqlcode);
|
|
exit(1);
|
|
}
|
|
|
|
/* cursor delcaration. Have to declare a cursor each time you
|
|
* want tuples back from db2
|
|
*/
|
|
|
|
EXEC SQL DECLARE c1 CURSOR FOR
|
|
SELECT video_title
|
|
FROM video;
|
|
|
|
/* you have to open the cursor in order to get tuples back */
|
|
|
|
EXEC SQL OPEN c1;
|
|
|
|
do
|
|
{
|
|
/* fetch tuples from the cursor. This will execute the statement
|
|
* the cursor implements and will return the results */
|
|
|
|
EXEC SQL FETCH c1 into :video_title;
|
|
if (SQLCODE != 0)
|
|
{
|
|
break; /* SQLCODE refers to sqlca.sqlcode */
|
|
}
|
|
/* host variables should have ':' prefix when they are used in DB2 commands */
|
|
|
|
printf("%s\n", video_title);
|
|
} while (1);
|
|
EXEC SQL CLOSE c1;
|
|
EXEC SQL CONNECT RESET;
|
|
}
|