#define SALES_PERSON_LEN 10 #define STATUS_LEN 6 SQLSMALLINT sOrderID; SQLSMALLINT sCustID; DATE_STRUCT dsOpenDate; SQLCHAR szSalesPerson[SALES_PERSON_LEN]; SQLCHAR szStatus[STATUS_LEN); SQLINTEGER cbOrderID = 0, cbCustID = 0, cbOpenDate = 0, cbSalesPerson = SQL_NTS, cbStatus = SQL_NTS; SQLRETURN retcode; SQLHSTMT hstmt; /* Prepare the SQL statement with parameter markers. */ retcode = SQLPrepare(hstmt, "INSERT INTO ORDERS (ORDERID, CUSTID, OPENDATE, SALESPERSON, STATUS) VALUES (?, ?, ?, ?, ?)", SQL_NTS); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) { /* Specify data types and buffers for OrderID, CustID, OpenDate, SalesPerson, */ /* Status parameter data. */ SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_SSHORT, SQL_INTEGER, 0, 0, &sOrderID, 0, &cbOrderID); SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT, SQL_C_SSHORT, SQL_INTEGER, 0, 0, &sCustID, 0, &cbCustID); SQLBindParameter(hstmt, 3, SQL_PARAM_INPUT, SQL_C_TYPE_DATE, SQL_TYPE_DATE, 0, 0, &dsOpenDate, 0, &cbOpenDate); SQLBindParameter(hstmt, 4, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, SALES_PERSON_LEN, 0, szSalesPerson, 0, &cbSalesPerson); SQLBindParameter(hstmt, 5, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, STATUS_LEN, 0, szStatus, 0, &cbStatus); /* Specify first row of parameter data. */ sOrderID = 1001; sCustID = 298; dsOpenDate.year = 1996; dsOpenDate.month = 3; dsOpenDate.day = 8; strcpy(szSalesPerson, "Johnson"); strcpy(szStatus, "Closed"); /* Execute statement with first row. */ retcode = SQLExecute(hstmt); /* Specify second row of parameter data. */ sOrderID = 1002; sCustID = 501; dsOpenDate.year = 1996; dsOpenDate.month = 3; dsOpenDate.day = 9; strcpy(szSalesPerson, "Bailey"); strcpy(szStatus, "Open"); /* Execute statement with second row. */ retcode = SQLExecute(hstmt); }