Ознакомление с базовыми функциями выборки данных в ODBC, страница 2

errmsg[actualmsglen] = '\0';

printf("MSG = %s\n", errmsg);

End(env);

}

//-----------------------------------------------------------------------------     

/* Define data storage */

code = SQLBindCol(stmt,1, SQL_C_CHAR, n_post,(SDWORD)sizeof(n_post),&val_n_post);

if ((code == SQL_SUCCESS) || (code == SQL_SUCCESS_WITH_INFO))   

printf("Data storage for first column has been defined...\n");   

else                                                      

{

printf("Error is occured during defining data storage!\n");

SQLError(env,dbc,stmt,sqlstate, &nativeerr, errmsg,

SQL_MAX_MESSAGE_LENGTH - 1, &actualmsglen);

printf("SQLSTATE = %s\nNATIVE ERROR = %d\n", sqlstate, nativeerr);

errmsg[actualmsglen] = '\0';

printf("MSG = %s\n", errmsg);

End(env);

}

code = SQLBindCol(stmt,2,SQL_C_CHAR,surname,(SDWORD)sizeof(surname),&val_surname);

if ((code == SQL_SUCCESS) || (code == SQL_SUCCESS_WITH_INFO))   

printf("Data storage for second column has been defined...\n");   

else                                                      

{

printf("Error is occured during defining data storage!\n");

SQLError(env,dbc,stmt,sqlstate, &nativeerr, errmsg,

SQL_MAX_MESSAGE_LENGTH - 1, &actualmsglen);

printf("SQLSTATE = %s\nNATIVE ERROR = %d\n", sqlstate, nativeerr);

errmsg[actualmsglen] = '\0';

printf("MSG = %s\n", errmsg);

End(env);

}   

code = SQLBindCol(stmt,3,SQL_C_SLONG,&rating,(SDWORD)sizeof(rating),&val_rating);

if ((code == SQL_SUCCESS) || (code == SQL_SUCCESS_WITH_INFO))   

printf("Data storage for third column has been defined...\n");   

else                                                      

{

printf("Error is occured during defining data storage!\n");

SQLError(env,dbc,stmt,sqlstate, &nativeerr, errmsg,

SQL_MAX_MESSAGE_LENGTH - 1, &actualmsglen);

printf("SQLSTATE = %s\nNATIVE ERROR = %d\n", sqlstate, nativeerr);

errmsg[actualmsglen] = '\0';

printf("MSG = %s\n", errmsg);

End(env);

}   

code = SQLBindCol(stmt,4,SQL_C_CHAR,city,(SDWORD)sizeof(city),&val_city);

if ((code == SQL_SUCCESS) || (code == SQL_SUCCESS_WITH_INFO))   

printf("Data storage for forth column has been defined...\n");   

else                                                      

{

printf("Error is occured during defining data storage!\n");

SQLError(env,dbc,stmt,sqlstate, &nativeerr, errmsg,

SQL_MAX_MESSAGE_LENGTH - 1, &actualmsglen);

printf("SQLSTATE = %s\nNATIVE ERROR = %d\n", sqlstate, nativeerr);

errmsg[actualmsglen] = '\0';

printf("MSG = %s\n", errmsg);

End(env);

}   

//----------------------------------------------------------------------------/* Choose data */

printf("\nResults:\n");

code = SQLFetch(stmt);

if (code == SQL_ERROR)

{

printf("Error is occured during fetching data!\n");

SQLError(env,dbc,stmt,sqlstate, &nativeerr, errmsg,

SQL_MAX_MESSAGE_LENGTH - 1, &actualmsglen);

printf("SQLSTATE = %s\nNATIVE ERROR = %d\n", sqlstate, nativeerr);

errmsg[actualmsglen] = '\0';

printf("MSG = %s\n", errmsg);

End(env);

}

while (code != SQL_NO_DATA_FOUND)

{

printf("%s %s %d %s\n",n_post,surname,rating,city);

code = SQLFetch(stmt);

if (code == SQL_ERROR)

{

printf("Error is occured during fetching data!\n");

SQLError(env,dbc,stmt,sqlstate, &nativeerr, errmsg,

SQL_MAX_MESSAGE_LENGTH - 1, &actualmsglen);

printf("SQLSTATE = %s\nNATIVE ERROR = %d\n", sqlstate, nativeerr);

errmsg[actualmsglen] = '\0';

printf("MSG = %s\n", errmsg);

End(env);

}

}