📄 mysql.cpp
字号:
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
retcode= SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR,SQL_LONGVARCHAR, filelen, 0, contents, 0, &cbcontentslen);
if(retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO)
{
SQLFreeStmt(hstmt, SQL_DROP);
printf("\nBinding FAIL!!!") ;
return -5 ;
}
cbcontentslen = SQL_LEN_DATA_AT_EXEC(0);
retcode = SQLExecute(hstmt) ;
while(retcode == SQL_NEED_DATA)
{
retcode = SQLParamData(hstmt, &pParamData);
if(retcode == SQL_NEED_DATA)
{
if(pParamData == contents ) SQLPutData(hstmt, contents, filelen );
}
else break ;
}
retcode = SQLExecute(hstmt) ;
if(retcode == SQL_NEED_DATA)
{
retcode= SQLCancel(hstmt) ;// 020620 YGI
retcode= SQLFreeStmt(hstmt, SQL_RESET_PARAMS);
//retcode= SQLTransact(SQL_NULL_HENV, hDBC, SQL_COMMIT);
if(retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) {
MyLog(LOG_NORMAL, "Transact commit Error") ;
}
//printf("\nTransact & free") ;
return(1); // succeed
}
else
{
displaySQLError(hstmt) ;
//SQLTransact(SQL_NULL_HENV, hDBC, SQL_ROLLBACK);
SQLFreeStmt(hstmt, SQL_DROP);
return(-3);
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
return 0;
}
// 0305 YGI
int GetTitleBBS( int count, int ct[10], TIMESTAMP_STRUCT date[10], char name[10][ FILENAME_MAX], char title[10][ FILENAME_MAX] )
{
SDWORD cbValue;
HSTMT hStmt = NULL;
RETCODE retCode;
char szQuerry[128];
DWORD bbs_count=0; // 傍瘤荤亲狼 醚 俺荐
int max=10;
sprintf( szQuerry, "SELECT no FROM bbs ORDER BY no DESC" );
SQLAllocStmt(hDBC, &hStmt);
retCode = SQLExecDirect(hStmt, (UCHAR *)szQuerry, SQL_NTS);
if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
{
retCode = SQLFetch( hStmt );
retCode = SQLGetData(hStmt, 1, SQL_C_ULONG, &bbs_count, 0, &cbValue);
SQLFreeStmt(hStmt, SQL_DROP);
bbs_count -= count*10;
if( bbs_count > 0 && bbs_count < 10 )
{
max = bbs_count;
}
else if( bbs_count < 0 ) return 0;
sprintf( szQuerry, "select no, name, title, date from bbs order by no DESC" );
SQLAllocStmt(hDBC, &hStmt);
retCode = SQLExecDirect(hStmt, (UCHAR *)szQuerry, SQL_NTS);
if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
{
for( int i = 0 ; i < max ; i ++)
{
retCode = SQLFetch( hStmt );
retCode = SQLGetData(hStmt, 1, SQL_C_ULONG, &ct[i], 0, &cbValue);
retCode = SQLGetData(hStmt, 2, SQL_C_CHAR, &name[i], FILENAME_MAX, &cbValue);
retCode = SQLGetData(hStmt, 3, SQL_C_CHAR, &title[i], FILENAME_MAX, &cbValue);
retCode = SQLGetData(hStmt, 4, SQL_C_TIMESTAMP, &date[i], sizeof( TIMESTAMP_STRUCT ), &cbValue);
}
}
if(retCode == SQL_SUCCESS)
{
SQLFreeStmt(hStmt, SQL_DROP);
return ( max ); // 啊廉柯 单捞磐狼 俺荐甫 府畔秦霖促.
}
else
{
SQLFreeStmt(hStmt, SQL_DROP); // 0308 YGI
return( 0 );
}
}
SQLFreeStmt(hStmt, SQL_DROP); // 0308 YGI
return( 0 );
}
int GetContentsBBS( char *date, char *con )
{
SDWORD cbValue;
HSTMT hStmt = NULL;
RETCODE retCode;
char szQuerry[128];
sprintf( szQuerry, "select con from bbs where date = '%s'", date );
SQLAllocStmt(hDBC, &hStmt);
retCode = SQLExecDirect(hStmt, (UCHAR *)szQuerry, SQL_NTS);
if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
{
//if( count == 0 )
retCode = SQLFetch( hStmt );
retCode = SQLGetData(hStmt, 1, SQL_C_CHAR, con, 0, &cbValue);
if(retCode == SQL_SUCCESS)
{
SQLFreeStmt(hStmt, SQL_DROP);
return (1);
}
else
{
SQLFreeStmt(hStmt, SQL_DROP); // 0308 YGI
return( 0 );
}
}
SQLFreeStmt(hStmt, SQL_DROP); // 0308 YGI
return 1;
}
SkillMain SkillTbl[ MAX_SKILLMAIN];
int InitSkillTable( void )
{
if( MAX_SKILLMAIN <= 0) return -4;
HSTMT hStmt= NULL ;
RETCODE ret ;
char query_stmt[80]= {0, } ;
SDWORD cbValue ;
int c;
SQLAllocStmt(hDBC, &hStmt);
strcpy(query_stmt, "select * from SkillMain") ;
ret= SQLExecDirect(hStmt, (UCHAR *)query_stmt, SQL_NTS) ;
if(ret != SQL_SUCCESS_WITH_INFO && ret != SQL_SUCCESS) {
MyLog( LOG_NORMAL, "SkillMain: ExecDirect Error ") ;
SQLFreeStmt(hStmt, SQL_DROP);
return -1 ;
}
//SQLNumResultCols(hStmt, &nCols) ;
ret= SQLFetch(hStmt) ;
if(ret != SQL_SUCCESS_WITH_INFO && ret != SQL_SUCCESS)
{
MyLog( LOG_NORMAL, "SkillMain: Fetch Error ") ;
return -1 ;
}
int tno;
c = 1;
while(c < MAX_SKILLMAIN && ret == SQL_SUCCESS)
{
ret = SQLGetData(hStmt, 1, SQL_C_LONG, &tno, 0, &cbValue);
SkillTbl[tno].NO = tno;
ret = SQLGetData(hStmt, 2, SQL_C_CHAR, SkillTbl[tno].Skill_Minute, 30, &cbValue);
EatRearWhiteChar( SkillTbl[tno].Skill_Minute );
ret = SQLGetData(hStmt, 3, SQL_C_LONG, &SkillTbl[tno].Class_Warrior, 0, &cbValue);
ret = SQLGetData(hStmt, 4, SQL_C_LONG, &SkillTbl[tno].Class_Thief , 0, &cbValue);
ret = SQLGetData(hStmt, 5, SQL_C_LONG, &SkillTbl[tno].Class_Archery, 0, &cbValue);
ret = SQLGetData(hStmt, 6, SQL_C_LONG, &SkillTbl[tno].Class_Wizard , 0, &cbValue);
ret = SQLGetData(hStmt, 7, SQL_C_LONG, &SkillTbl[tno].Class_Priest , 0, &cbValue);
ret = SQLGetData(hStmt, 8, SQL_C_LONG, &SkillTbl[tno].Select_Farmer, 0, &cbValue);
ret = SQLGetData(hStmt, 9, SQL_C_LONG, &SkillTbl[tno].Select_miner , 0, &cbValue);
ret = SQLGetData(hStmt, 10, SQL_C_LONG, &SkillTbl[tno].Select_fisher, 0, &cbValue);
ret = SQLGetData(hStmt, 11, SQL_C_LONG, &SkillTbl[tno].Select_Lumberjack, 0, &cbValue);
ret = SQLGetData(hStmt, 12, SQL_C_LONG, &SkillTbl[tno].Select_Butcher, 0, &cbValue);
ret = SQLGetData(hStmt, 13, SQL_C_LONG, &SkillTbl[tno].Select_Herbdigger, 0, &cbValue);
ret = SQLGetData(hStmt, 14, SQL_C_LONG, &SkillTbl[tno].Select_herdman, 0, &cbValue);
ret = SQLGetData(hStmt, 15, SQL_C_LONG, &SkillTbl[tno].Select_Carpenter , 0, &cbValue);
ret = SQLGetData(hStmt, 16, SQL_C_LONG, &SkillTbl[tno].Select_Blacksmith, 0, &cbValue);
ret = SQLGetData(hStmt, 17, SQL_C_LONG, &SkillTbl[tno].Select_Cooking, 0, &cbValue);
ret = SQLGetData(hStmt, 18, SQL_C_LONG, &SkillTbl[tno].Select_Tailoring , 0, &cbValue);
ret = SQLGetData(hStmt, 19, SQL_C_LONG, &SkillTbl[tno].Select_Bowcraft_Fletcher, 0, &cbValue);
ret = SQLGetData(hStmt, 20, SQL_C_LONG, &SkillTbl[tno].Select_Alchemy , 0, &cbValue);
ret = SQLGetData(hStmt, 21, SQL_C_LONG, &SkillTbl[tno].Select_Candlemaker , 0, &cbValue);
ret = SQLGetData(hStmt, 22, SQL_C_LONG, &SkillTbl[tno].Select_Merchant , 0, &cbValue);
ret = SQLGetData(hStmt, 23, SQL_C_LONG, &SkillTbl[tno].Howto , 0, &cbValue);
ret = SQLGetData(hStmt, 24, SQL_C_LONG, &SkillTbl[tno].mouse_change , 0, &cbValue);
ret = SQLGetData(hStmt, 25, SQL_C_LONG, &SkillTbl[tno].Interface1 , 0, &cbValue);
ret = SQLGetData(hStmt, 26, SQL_C_LONG, &SkillTbl[tno].Interface2 , 0, &cbValue);
ret = SQLGetData(hStmt, 27, SQL_C_LONG, &SkillTbl[tno].Success_interface , 0, &cbValue);
ret = SQLGetData(hStmt, 28, SQL_C_LONG, &SkillTbl[tno].Fail_Interface , 0, &cbValue);
ret = SQLGetData(hStmt, 29, SQL_C_LONG, &SkillTbl[tno].Work_target_self , 0, &cbValue);
ret = SQLGetData(hStmt, 30, SQL_C_LONG, &SkillTbl[tno].Work_target_othercharacter, 0, &cbValue);
ret = SQLGetData(hStmt, 31, SQL_C_LONG, &SkillTbl[tno].Work_target_object , 0, &cbValue);
ret = SQLGetData(hStmt, 32, SQL_C_LONG, &SkillTbl[tno].Work_target_Item , 0, &cbValue);
ret = SQLGetData(hStmt, 33, SQL_C_LONG, &SkillTbl[tno].Work_target_earth , 0, &cbValue);
ret = SQLGetData(hStmt, 34, SQL_C_LONG, &SkillTbl[tno].Work_target_water , 0, &cbValue);
ret = SQLGetData(hStmt, 35, SQL_C_LONG, &SkillTbl[tno].Work_target_forest , 0, &cbValue);
ret = SQLGetData(hStmt, 36, SQL_C_LONG, &SkillTbl[tno].Work_target_interface , 0, &cbValue);
ret = SQLGetData(hStmt, 37, SQL_C_LONG, &SkillTbl[tno].Tool , 0, &cbValue);
ret = SQLGetData(hStmt, 38, SQL_C_LONG, &SkillTbl[tno].Object_Workshop , 0, &cbValue);
ret = SQLGetData(hStmt, 39, SQL_C_LONG, &SkillTbl[tno].Object_target , 0, &cbValue);
ret = SQLGetData(hStmt, 40, SQL_C_LONG, &SkillTbl[tno].Obj_Attribute , 0, &cbValue);
ret = SQLGetData(hStmt, 41, SQL_C_LONG, &SkillTbl[tno].Resource1 , 0, &cbValue);
ret = SQLGetData(hStmt, 42, SQL_C_LONG, &SkillTbl[tno].Resource1_quantity , 0, &cbValue);
ret = SQLGetData(hStmt, 43, SQL_C_LONG, &SkillTbl[tno].Resourece2 , 0, &cbValue);
ret = SQLGetData(hStmt, 44, SQL_C_LONG, &SkillTbl[tno].Resource2_quantity , 0, &cbValue);
ret = SQLGetData(hStmt, 45, SQL_C_LONG, &SkillTbl[tno].Resource3 , 0, &cbValue);
ret = SQLGetData(hStmt, 46, SQL_C_LONG, &SkillTbl[tno].Resource3_quantity , 0, &cbValue);
ret = SQLGetData(hStmt, 47, SQL_C_LONG, &SkillTbl[tno].Produce_type , 0, &cbValue);
ret = SQLGetData(hStmt, 48, SQL_C_LONG, &SkillTbl[tno].Produce_Fix , 0, &cbValue);
ret = SQLGetData(hStmt, 49, SQL_C_LONG, &SkillTbl[tno].Ability_Fix , 0, &cbValue);
ret = SQLGetData(hStmt, 50, SQL_C_LONG, &SkillTbl[tno].Time_judge , 0, &cbValue);
ret = SQLGetData(hStmt, 51, SQL_C_LONG, &SkillTbl[tno].Time_Maintain , 0, &cbValue);
ret = SQLGetData(hStmt, 52, SQL_C_LONG, &SkillTbl[tno].Ability_min , 0, &cbValue);
ret = SQLGetData(hStmt, 53, SQL_C_LONG, &SkillTbl[tno].Ability_max , 0, &cbValue);
ret = SQLGetData(hStmt, 54, SQL_C_LONG, &SkillTbl[tno].Plus_element , 0, &cbValue);
ret = SQLGetData(hStmt, 55, SQL_C_LONG, &SkillTbl[tno].Plus_type , 0, &cbValue);
ret = SQLGetData(hStmt, 56, SQL_C_LONG, &SkillTbl[tno].Plus_Rate , 0, &cbValue);
ret = SQLGetData(hStmt, 57, SQL_C_LONG, &SkillTbl[tno].Plus_min , 0, &cbValue);
ret = SQLGetData(hStmt, 58, SQL_C_LONG, &SkillTbl[tno].SP_demand , 0, &cbValue);
ret = SQLGetData(hStmt, 59, SQL_C_LONG, &SkillTbl[tno].Success , 0, &cbValue);
ret = SQLGetData(hStmt, 60, SQL_C_LONG, &SkillTbl[tno].effectCharobj_status , 0, &cbValue);
ret = SQLGetData(hStmt, 61, SQL_C_LONG, &SkillTbl[tno].Change_enermy_status , 0, &cbValue);
ret = SQLGetData(hStmt, 62, SQL_C_LONG, &SkillTbl[tno].Change_enermy_status2 , 0, &cbValue);
ret = SQLGetData(hStmt, 63, SQL_C_LONG, &SkillTbl[tno].charvisible , 0, &cbValue);
ret = SQLGetData(hStmt, 64, SQL_C_LONG, &SkillTbl[tno].Effectobj_status , 0, &cbValue);
ret = SQLGetData(hStmt, 65, SQL_C_LONG, &SkillTbl[tno].Changeobj_attribute , 0, &cbValue);
ret = SQLGetData(hStmt, 66, SQL_C_LONG, &SkillTbl[tno].changeobj_visible , 0, &cbValue);
ret = SQLGetData(hStmt, 67, SQL_C_LONG, &SkillTbl[tno].Skill2job , 0, &cbValue);
ret = SQLGetData(hStmt, 68, SQL_C_LONG, &SkillTbl[tno].effectChar_hide , 0, &cbValue);
ret = SQLGetData(hStmt, 69, SQL_C_LONG, &SkillTbl[tno].Increase_mov , 0, &cbValue);
ret = SQLGetData(hStmt, 70, SQL_C_LONG, &SkillTbl[tno].Increse_Life , 0, &cbValue);
ret = SQLGetData(hStmt, 71, SQL_C_LONG, &SkillTbl[tno].Increse_mana , 0, &cbValue);
ret = SQLGetData(hStmt, 72, SQL_C_LONG, &SkillTbl[tno].Increse_health , 0, &cbValue);
ret = SQLGetData(hStmt, 73, SQL_C_LONG, &SkillTbl[tno].Change_mor , 0, &cbValue);
ret = SQLGetData(hStmt, 74, SQL_C_LONG, &SkillTbl[tno].Obj_attribute1 , 0, &cbValue);
ret = SQLGetData(hStmt, 75, SQL_C_LONG, &SkillTbl[tno].ChangeObj_attribute1 , 0, &cbValue);
ret = SQLGetData(hStmt, 76, SQL_C_LONG, &SkillTbl[tno].Display_LV , 0, &cbValue);
ret = SQLGetData(hStmt, 77, SQL_C_LONG, &SkillTbl[tno].DisPlay_Wis , 0, &cbValue);
ret = SQLGetData(hStmt, 78, SQL_C_LONG, &SkillTbl[tno].Display_Int , 0, &cbValue);
ret = SQLGetData(hStmt, 79, SQL_C_LONG, &SkillTbl[tno].DisPlay_Life , 0, &cbValue);
ret = SQLGetData(hStmt, 80, SQL_C_LONG, &SkillTbl[tno].DisPlay_Health , 0, &cbValue);
ret = SQLGetData(hStmt, 81, SQL_C_LONG, &SkillTbl[tno].DisPlay_Damage , 0, &cbValue);
ret = SQLGetData(hStmt, 82, SQL_C_LONG, &SkillTbl[tno].DisPlay_AC , 0, &cbValue);
ret = SQLGetData(hStmt, 83, SQL_C_LONG, &SkillTbl[tno].DisPlay_inventory , 0, &cbValue);
ret = SQLGetData(hStmt, 84, SQL_C_LONG, &SkillTbl[tno].Display_Foot , 0, &cbValue);
ret = SQLGetData(hStmt, 85, SQL_C_LONG, &SkillTbl[tno].DisPlay_Item_Changeall , 0, &cbValue);
ret = SQLGetData(hStmt, 86, SQL_C_LONG, &SkillTbl[tno].DisPlay_royalty , 0, &cbValue);
ret = SQLGetData(hStmt, 87, SQL_C_LONG, &SkillTbl[tno].DisPlay_Item_Status , 0, &cbValue);
ret = SQLGetData(hStmt, 88, SQL_C_LONG, &SkillTbl[tno].DisPlay_name , 0, &cbValue);
ret = SQLGetData(hStmt, 89, SQL_C_LONG, &SkillTbl[tno].DisPlay_item_Price , 0, &cbValue);
ret = SQLGetData(hStmt, 90, SQL_C_LONG, &SkillTbl[tno].effect , 0, &cbValue);
ret = SQLGetData(hStmt, 91, SQL_C_LONG, &SkillTbl[tno].effect_wave , 0, &cbValue);
ret = SQLGetData(hStmt, 92, SQL_C_LONG, &SkillTbl[tno].effect_race , 0, &cbValue);
ret = SQLGetData(hStmt, 93, SQL_C_LONG, &SkillTbl[tno].Success_range , 0, &cbValue);
ret = SQLGetData(hStmt, 94, SQL_C_LONG, &SkillTbl[tno].Damage , 0, &cbValue);
ret = SQLGetData(hStmt, 95, SQL_C_LONG, &SkillTbl[tno].Status_self , 0, &cbValue);
ret = SQLGetData(hStmt, 96, SQL_C_LONG, &SkillTbl[tno].Effect1 , 0, &cbValue);
ret = SQLGetData(hStmt, 97, SQL_C_LONG, &SkillTbl[tno].Effect_wave1 , 0, &cbValue);
ret = SQLGetData(hStmt, 98, SQL_C_LONG, &SkillTbl[tno].Enemy_status , 0, &cbValue);
ret = SQLGetData(hStmt, 99, SQL_C_LONG, &SkillTbl[tno].Range , 0, &cbValue);
ret = SQLGetData(hStmt,100, SQL_C_LONG, &SkillTbl[tno].Enermy_alram , 0, &cbValue);
ret = SQLGetData(hStmt,101, SQL_C_LONG, &SkillTbl[tno].map , 0, &cbValue);
ret = SQLGetData(hStmt,102, SQL_C_LONG, &SkillTbl[tno].Curser1 , 0, &cbValue);
ret = SQLGetData(hStmt,103, SQL_C_LONG, &SkillTbl[tno].Curser2 , 0, &cbValue);
ret = SQLGetData(hStmt,104, SQL_C_LONG, &SkillTbl[tno].Curser3 , 0, &cbValue);
ret = SQLGetData(hStmt,105, SQL_C_LONG, &SkillTbl[tno].point , 0, &cbValue);
ret = SQLGetData(hStmt,106, SQL_C_LONG, &SkillTbl[tno].inclusive , 0, &cbValue);
ret = SQLGetData(hStmt,107, SQL_C_LONG, &SkillTbl[tno].money , 0, &cbValue);
ret = SQLGetData(hStmt,108, SQL_C_LONG, &SkillTbl[tno].need_exp, 0, &cbValue);
ret = SQLGetData(hStmt,109, SQL_C_LONG, &SkillTbl[tno].MotherSkillType, 0, &cbValue);
ret = SQLGetData(hStmt,110, SQL_C_LONG, &SkillTbl[tno].MotherSkillExp, 0, &cbValue);
// 0619.......
ret = SQLGetData(hStmt,111, SQL_C_ULONG, &SkillTbl[tno].k1, 0, &cbValue);
ret = SQLGetData(hStmt,112, SQL_C_ULONG, &SkillTbl[tno].k2, 0, &cbValue);
if(ret != SQL_SUCCESS_WITH_INFO && ret != SQL_SUCCESS) { MyLog( LOG_NORMAL, "SkillMain: Error!!! (%d)", ret) ; return -1 ;}
c++ ;
ret= SQLFetch(hStmt) ;
}
SQLFreeStmt(hStmt, SQL_DROP) ;
FILE *fp;
int i;
char * tt = (char *)SkillTbl;
char crc = 0;
for( i = 0 ; i < MAX_SKILLMAIN * sizeof(SkillMain) ; i ++ )
{
*tt += ( 200 + i );
crc += ((*tt + *tt ) - i);
tt ++;
}
fp = fopen( "./Output/skilltable.bin", "wb" );
if( fp )
{
fwrite( &crc, 1,1, fp );
fwrite( SkillTbl, MAX_SKILLMAIN, sizeof(SkillMain), fp );
fclose(fp);
}
tt = (char *)SkillTbl;
for( i = 0 ; i < MAX_SKILLMAIN * sizeof(SkillMain) ; i ++ )
{
*tt -= ( 200 + i );
tt ++;
}
MyLog( LOG_NORMAL, " .'SkillMain' %4d data Loaded", c) ;
return c ;
}
t_SkillMapTable SkillMapTable[ MAX_SKILLMAPTABLE];
int SkillMapTableCount;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -