How to write the program which read from the database tables and write into a file in pro cHow to connect the database through pro c program?

Answer

The program connects to Oracle, then loops, prompting the user for an employee number. It queries the database for the employee's name, salary, and commission, displays the information, and then continues the loop. The information is returned to a host structure. There is also a parallel indicator structure to signal whether any of the output values SELECTed might be NULL.

Precompile sample programs using the precompiler option MODE=ORACLE.

/* * sample1.pc * * Prompts the user for an employee number, * then queries the emp table for the employee's * name, salary and commission. Uses indicator * variables (in an indicator struct) to determine * if the commission is NULL. * */

  1. include <stdio.h>
  2. include <string.h>

/* Define constants for VARCHAR lengths. */

  1. define UNAME_LEN 20
  2. define PWD_LEN 40

/* Declare variables.No declare section is needed if MODE=ORACLE.*/ VARCHAR username[UNAME_LEN]; /* VARCHAR is an Oracle-supplied struct */ varchar password[PWD_LEN]; /* varchar can be in lower case also. */ /* Define a host structure for the output values of a SELECT statement.

  • /
struct { VARCHAR emp_name[UNAME_LEN]; float salary; float commission; } emprec; /* Define an indicator struct to correspond to the host output struct. */ struct { short emp_name_ind; short sal_ind; short comm_ind; } emprec_ind;

/* Input host variable. */ int emp_number; int total_queried; /* Include the SQL Communications Area. You can use #include or EXEC SQL INCLUDE. */

  1. include <sqlca.h>

/* Declare error handling function. */ void sql_error();

main() { char temp_char[32];

/* Connect to ORACLE-- * Copy the username into the VARCHAR. */ strncpy((char *) username.arr, "SCOTT", UNAME_LEN); /* Set the length component of the VARCHAR. */ username.len = strlen((char *) username.arr); /* Copy the password. */ strncpy((char *) password.arr, "TIGER", PWD_LEN); password.len = strlen((char *) password.arr); /* Register sql_error() as the error handler. */ EXEC SQL WHENEVER SQLERROR DO sql_error("ORACLE error--\n");

/* Connect to ORACLE. Program will call sql_error() * if an error occurs when connecting to the default database. */ EXEC SQL CONNECT :username IDENTIFIED BY :password; printf("\nConnected to ORACLE as user: %s\n", username.arr); /* Loop, selecting individual employee's results */ total_queried = 0; for (;;) { /* Break out of the inner loop when a * 1403 ("No data found") condition occurs. */ EXEC SQL WHENEVER NOT FOUND DO break; for (;;) { emp_number = 0; printf("\nEnter employee number (0 to quit): "); gets(temp_char); emp_number = atoi(temp_char); if (emp_number == 0) break; EXEC SQL SELECT ename, sal, comm INTO :emprec INDICATOR :emprec_ind FROM EMP WHERE EMPNO = :emp_number; /* Print data. */ printf("\n\nEmployee\tSalary\t\tCommission\n"); printf("--------\t------\t\t----------\n"); /* Null-terminate the output string data. */ emprec.emp_name.arr[emprec.emp_name.len] = '\0'; printf("%-8s\t%6.2f\t\t", emprec.emp_name.arr, emprec.salary); if (emprec_ind.comm_ind == -1) printf("NULL\n"); else printf("%6.2f\n", emprec.commission);

total_queried++; } /* end inner for (;;) */ if (emp_number == 0) break; printf("\nNot a valid employee number - try again.\n"); } /* end outer for(;;) */

printf("\n\nTotal rows returned was %d.\n", total_queried); printf("\nG'day.\n\n\n");

/* Disconnect from ORACLE. */ EXEC SQL COMMIT WORK RELEASE; exit(0); } void sql_error(msg) char *msg; { char err_msg[128]; int buf_len, msg_len;

EXEC SQL WHENEVER SQLERROR CONTINUE; printf("\n%s\n", msg); buf_len = sizeof (err_msg); sqlglm(err_msg, &buf_len, &msg_len); printf("%.*s\n", msg_len, err_msg); EXEC SQL ROLLBACK RELEASE; exit(1); }

 

Improve Answer Discuss the question "How to write the program which read from the database tables and write into a file in pro cHow to connect the database through pro c program?" Watch Question

First answer by ID1158820354. Last edit by ID1158820354. Question popularity: 32 [recommend question]


Research your answer:

Can you answer other questions about databases and data management systems?

Answers.com > Wiki Answers > Categories > Technology > Computers > Computer Databases > How to write the program which read from the database tables and write into a file in pro cHow to connect the database through pro c program?

Our contributors said this page should be displayed for the questions below. (Where do these come from)
If any of these are not a genuine rephrasing of the question, please help out and edit these alternates.
What is database file?  What does no database mean?  Write a c program for addition?  Write a program to concatenate?  Write a c program five integerrs?  Write a program on fibonaci in c?  How to write matrex by jafa program?  Write small program in c programing?  How do you write a codingin database?  How you can write a program in aspnet?  Write a program for recursive Traverse?  How do you write a codingin in database?  How do you connect a project to the database?  Write a C program to simulate the Kite movement?  Write out the computed racah coefficients tables?  How long did it take to write up a program for ENIAC?  To write a program to implement pointers in structures?  How do you write the program to read the password from the used?  Tell you something about facilities that are required within a database?