¶ÔÿÌõSQLÓï¾äµÄ·ÃÎʼƻ®£¬Ëü´æ·ÅÔÚDB2Êý¾Ý¿â·þÎñÆ÷ÉÏ¡£Ó¦ÓóÌÐòÖ´Ðе½SQLÓï¾äʱ£¬¾Íµ½ÏàÓ¦µÄ·þÎñÆ÷ÉÏÈ¥ÕÒËüÃǵÄPACKAGE£¬Êý¾Ý¿â·þÎñÆ÷¸ù¾ÝPACKAGEÖ´ÐоßÌåµÄÊý¾Ý¿â²Ù×÷¡£ËùÒÔ£¬Èç¹ûÒ»¸öÓ¦ÓóÌÐò·ÃÎÊÁ˶à¸öÊý¾Ý¿â·þÎñÆ÷£¬Ôò¸ÃÓ¦ÓóÌÐòÓ¦ÔÚËü·ÃÎʵ½µÄÊý¾Ý¿â·þÎñÆ÷ÉϾùÉú³ÉÏàÓ¦µÄPACKAGE¡£Òò´Ë£¬µ±Óöµ½ÕâÖÖÇé¿öʱ£¬ÍƼöµÄ·½Ê½Êǽ«Ô´³ÌÐò·Ö³ÉÈô¸É¸öÎļþ£¬Ã¿¸öÎļþÖ»·ÃÎÊÒ»¸ö·þÎñÆ÷£¬È»ºó·Ö±ð½øÐÐÔ¤±àÒë¡£
Ö´ÐÐPREPÃüÁîʱ£¬¼ÓÉÏÑ¡ÏîPACKAGE»ò²»×¢Ã÷BINDFILE¡¢SYNTAX»òSQLFLAGÑ¡ÏÕâʱBIND²Ù×÷½«×Ô¶¯½øÐС£
Ö±½ÓʹÓÃBINDÃüÁî´ÓBINDÎļþÖÐÉú³ÉPACKAGE´æ·ÅÔÚÊý¾Ý¿â¹ÜÀíÆ÷ÖС£BINDÍê³ÉµÄ¹¦ÄÜÊÇ£¬´ÓÊý¾Ý¿âÖÐÕÒµ½SQLÓï¾äËùÉæ¼°µÄ±í£¬²é¿´SQLÓï¾äÖÐÌáµ½µÄ±íÃû¼°ÊôÐÔÊÇ·ñÓëÊý¾Ý¿âÖеıíÃûºÍÊôÐÔÏàÆ¥Å䣬ÒÔ¼°Ó¦ÓóÌÐò¿ª·¢ÕßÊÇ·ñÓÐȨÏÞ²éѯ»òÐÞ¸ÄÓ¦ÓóÌÐòÖÐËùÉæ¼°µ½µÄ±í¼°ÊôÐÔ¡£Õâ¾ÍÊÇΪʲôÔÚÔ¤±àÒë֮ǰҪÁ¬½Óµ½ÏàÓ¦µÄÊý¾Ý¿âÉϵÄÔÒò¡£ÔÚ×öBIND²Ù×÷ºó£¬ÔÚÊý¾Ý¿â¹ÜÀíÆ÷ÖоÍÉú³ÉÒ»¸öPACKAGE£¬PACKAGEµÄÃû×ÖÓëÔ´³ÌÐòµÄÎļþÃû×ÖÏàͬ¡£
Ò»¸öÔ´ÎļþÔÚÊý¾Ý¿âÖпÉÓжà¸öPACKAGE´æÔÚ¡£ÎªÁËÇø·Ö²»Í¬µÄPACKAGE£¬DB2ÖÐÒýÈëÁËʱ¼ä´ÁµÄ¸ÅÄî¡£ÔÚPREPÖ´ÐÐʱ£¬ÏµÍ³¶ÔÉú³ÉµÄÐ޸ĹýµÄCÓïÑÔ³ÌÐòºÍBINDÎļþÒÔ¼°PACKAGEÖж¼¼ÓÈëÁËÒ»¸öʱ¼ä´Á¡£BINDÎļþÔÚÉú³ÉPACKAGEʱҲ½«Ê±¼ä´Á´«µÝÏÂÀ´£¬Ð޸ĹýµÄCÓïÑÔ³ÌÐòÔÚÉú³É¿ÉÖ´ÐгÌÐòʱ£¬Í¬ÑùÒ²½«Ê±¼ä´Á´«µÝÏÂÈ¥¡£µ±Ó¦ÓóÌÐòÔËÐÐʱ£¬¿ÉÖ´ÐгÌÐòÊÇͨ¹ýʱ¼ä´ÁÕÒµ½ÏàÓ¦µÄPACKAGE£¬Èç¹ûʱ¼ä´Á²»Æ¥Å䣬Ôò˵Ã÷°æ±¾¸üУ¬ÐèÒª×öBIND¡£
6 ÊÂÎñ
ËùνÊÂÎñ£¬¾ÍÊÇһϵÁÐÓ¦ÓóÌÐòºÍÊý¾Ý¿âÖ®¼ä½»»¥²Ù×÷µÄ¼¯ºÏ¡£Ò»µ©Ò»¸öÊÂÎñ¿ªÊ¼Ö´ÐУ¬ÔòÊÂÎñÖеIJÙ×÷Ҫôȫ²¿Ö´ÐУ¬ÒªÃ´È«²¿²»Ö´ÐС£
ÊÂÎñ¿ªÊ¼£ºDB2ÊÂÎñÊÇÒþʽ¿ªÊ¼µÄ£¬³ýÁËÏÂÁеÄһЩÓï¾ä£¬ÆäËûÈκÎÒ»¸ö¿ÉÖ´ÐеÄSQLÓï¾ä¶¼ÒþʽµØ¿ªÊ¼Ò»¸öÊÂÎñ¡£
BEGIN DECLARE SECTION END DECLARE SECTION
DECLARE CURSOR INCLUDE SQLCA INCLUDE SQLDA
WHENEVER
ÊÂÎñ½áÊø£ºÊÂÎñÓÉÒ»¸ö¿ÉÖ´ÐеÄSQLÓï¾ä¿ªÊ¼£¬ºóÃæÖ´ÐеÄËùÓÐSQLÓï¾ä¶¼½«ÊôÓÚͬһ¸öÊÂÎñ£¬¸ÃÊÂÎñÒ»Ö±Óöµ½COMMIT»òROLLBACKÃüÁîʱ²Å½áÊø¡£
COMMIT²Ù×÷µÄ×÷ÓÃÊÇ£¬½áÊøµ±Ç°µÄÊÂÎñ£¬ÊÂÎñ¶ÔÊý¾Ý¿âËù×öµÄÐÞ¸ÄÓÀ¾Ã»¯¡£ROLLBACKµÄ×÷ÓÃÊÇ£¬½áÊøµ±Ç°µÄÊÂÎñ£¬½«±»Ð޸ĵÄÊý¾Ý»Ö¸´µ½ÊÂÎñÖ´ÐÐÒÔǰµÄ״̬£¬¼´È¡ÏûÊÂÎñÖ´ÐвúÉúµÄÓ°Ïì¡£µ±³ÌÐò½áÊøÊ±£¬ÏµÍ³×Ô¶¯ÒþʽµØÖ´ÐÐCOMMIT²Ù×÷£¬Èç¹ûϵͳ¼ì²âµ½ËÀËøµÈ¹ÊÕÏ£¬ÔòÒþʽµØÖ´ÐÐROLLBACK²Ù×÷¡£
CICS CLIENTµ÷ÓÃ
ͨÓÃÁ÷³Ì(×î¼ò)ºÍµ÷Ó÷½·¨£º
EasyCicsÌṩÒÔÏÂÖ§³ÖÎļþ¹©¿ª·¢ÕßʹÓãº
ec.h (CÓïÑÔÍ·Îļþ£©
ec.c
ec.umk(for UNIX)»òec.nmk(for NT)
Óɴ˱àÒëÉú³É£ºec.o(for UNIX),»òec.obj(for NT) ecx.h (C++ÓïÑÔÍ·Îļþ£©
ecx.c
ecx.umk(for UNIX)»òecx.nmk(for NT)
Óɴ˱àÒëÉú³É£ºecx.o(for UNIX),»òecx.obj(for NT) EasyCICS Client OLE°²×°³ÌÐò£¬°²×°Éú³ÉEcOle.dll¡£ È·±£°²×°CICS¿Í»§³ÌÐòÖ®ºóÔÙ°²×°EasyCICS¡£
¶ÔWin9x/NT¿Í»§£¬Ó¦ÖØÐÂÆô¶¯»úÆ÷£¬ÒÔ±£Ö¤ÔÚPATH»·¾³±äÁ¿Öк¬ÓÐCICS¿Í»§³ÌÐòµÄ
°²×°×¢ÒâÊÂÏ
Ö´ÐÐĿ¼¡£¶ÔWIN9X¿Í»§£¬ÓÐʱÐèÒªÔö¼Ó»·¾³±äÁ¿µÄÄÚ´æ¿Õ¼ä£¬°ì·¨ÊÇÔÚc:\\config.sysÎļþÖмÓÈëÒÔÏÂÒ»ÐÐÄÚÈÝ£º
SHELL=c:\\command.com c:\\ /E:2048 /P ? ? ? ? ?
ÉùÃ÷\EasyCics.App\×é¼þ½Ó¿Ú µ÷ÓÃConnectServer½Ó¿Úº¯Êý µ÷ÓÃBeginWrite½Ó¿Úº¯Êý
ʹÓÃSetValue½Ó¿Úº¯ÊýÉèÖÃÊäÈëµÄÌõ¼þ(¿ÉÒÔ) µ÷ÓÃCallProgramAndCommit½Ó¿Úº¯Êý
ʹÓÃGetValue½Ó¿Úº¯Êý»òRsOpen½Ó¿Úº¯ÊýµÃµ½Êä³öµÄ½á¹û
˵Ã÷£ºCICS SERVER¶Ë³ÌÐòµÄ×÷ÓÃÀàËÆÓÚDLL£¬CICS½Ó¿Ú¾ÍÊÇÈçºÎµ÷ÓÃDLL;
ʹÓÃCº¯Êý¿âºÍÍ·Îļþ
ÒÔÏÂÊÇʹÓÃC¿ª·¢EasyCICSµÄÒªµã£º
1. EasyCicsͨ¹ýEc.hºÍEc.cÎļþÌṩ·ÃÎÊEasyCics Client C APIµÄÖ§³Ö¡£ 2. ÔÚCÔ´Îļþ¼ÓÈëÒÔÏÂÉùÃ÷£º
#include \
3. Á¬½Óʱ¼ÓÈëEc.cÉú³ÉµÄÄ¿±êÎļþ¡£
#include \
int get_custinfo(char * custid) { int r; char sum_str[20];
r=ConnectServer(\if(r!=0)return(0);
SetValue(\
}
SetValue(\TE\
CallProgramAndCommit(\GetValue(\GetValue(\GetValue(\sum=atof(sum_str); return(1);
int get_spinfo(char *txm) {
int r;
char price_str[200],kcl_str[200],result[20];
/* r=ConnectServer(\ if(r!=0)return(0); */ }
int set_sale() {
int r,k;
char qty_str[230],result[20]; SetValue(\SetValue(\
CallProgramAndCommit(\GetValue(\if (strcmp(result,\ GetValue(\ } return 0;
GetValue(\GetValue(\price=atof(price_str); GetValue(\kcl=atof(kcl_str); spname[20]='\\0'; return(1);
/* r=ConnectServer(\ if(r!=0) return(0);
RsSetColNameList(\TE\*/ RsCreate(4); for(k=0;k<=currow-1;k++){ }
RsAddRow();
RsSetCol(1,item_id[k]); RsSetCol(2,custid);
sprintf(qty_str,\RsSetCol(3,qty_str); RsSetCol(4,date); RsSaveRow();
}
CallProgramAndCommit(\GetValue(\if(strcmp(result,\
return(0);
return 1;
Á¬½ÓCICS SERVER
ʹÓÃOLE¶ÔÏó£º
oEc = CreateObject(\
r = oEc.ConnectServer(\if r<>0 then wait window \
return End if
µ÷ÓÃCICS·þÎñ£º
Çå¿Õ»º³åÇø£º =oEc.BeginWrite() ÉèÖòÎÊý£º
oEc.SetValue ²ÎÊýÃû£¬²ÎÊýÖµ Àý×Ó£º
oEc.SetValue \oEc.SetValue \oEc.SetValue \