Мир InterBase


Пример 2. Запрос с параметрами - часть 2


isc_stmt_handle statement_handle=NULL;

char dpb_buffer[256], *dpb, *p;

short dpb_length;

ISC_STATUS status_vector[20];

XSQLDA *isqlda, *osqlda;

Long fetch_code;

Short

o_ind[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);

int i = 0;

int hDisplayed=0;

int formVarErr;

int ExecSP=l;

long res_code;

long b_id;

char b_index[17];

SQL_VARCHAR(100) b_name;

SQL_VARCHAR(100) b_author;

SQL_VARCHAR (100) b_theme;

ISC_TIMESTAMP b_added;

struct tm added_time;

char decodedTime[100];

char form_b_index[17],

form_b_name[81],

form_b_author[81],

form_b_theme[61];

В этой части происходит анализ переменных, полученных скриптом, и в зависимости от метода вызова принимается решение, исполнять ли ХП или нет.

printf("Content-type:

text/plain\n\n<htmlxbody><center><b>Example Nr 2</b><hr

width=\%></centerxbr>&nbsp;&nbsp;&nbsp;Part 1: Executable SP

demo with both types of parameters.<br>");

if(strcmp(cgiRequestMethod,"POST")==0){

formVarErr =

cgiFormStringNoNewlines("b_index",form_b_index,17);

if (formVarErr!=cgiFormSuccess){

printf("<br><b>Error: Book index missed or too long</b>");

ExecSP=0,

}

formVarErr = cgiFormStringNoNewlines("b_name",form_b_name,81);

if {formVarErr!=cgiFormSuccess){

printf ("<brxb>Error: Book name missed or too long</b>");

ExecSP=0;

}

formVarErr =

cgiFormStringNoNewlines("b_author",form_b_author,81);

if (formVarErr!=cgiFormSuccess){

printf ("<br><b>Error: Book author missed or too long</b>");

ExecSP=0;

}

formVarErr =

cgiFormStringNoNewlines("b_theme",form_b_theme,61);

if (formVarErr!=cgiFormSuccess){

printf("<br><b>Error: Book theme missed or too long</b>");

ExecSP=0;

}

}

else{

ExecSP=0;

printf ("<brxi>Procedure execution skipped</i> - REQUEST_METHOD

must be POST");

}

Заметьте: если специфика приложения требует того, чтобы определенные www-переменные обязательно присутствовали и удовлетворяли определенным условиям (например, учетные данные пользователя могут быть защищены контрольной суммой), то именно в этом месте приложение производит решение о целесообразности продолжения работы. 1




Начало  Назад  Вперед



Книжный магазин