-(NSInteger)getHistoryRecordwithStockID:(NSString*)stockID LeaderName:(NSString*)leaderName dataSource:(NSInteger)dataSource{
////////////using MySQL C API
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "root";
char *password = "123456";
char *database = "stockinfo";
conn = mysql_init(NULL);
if (!mysql_real_connect(conn, server,
user, password, database, 0, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
if (!mysql_set_character_set(conn, "gbk"))
{
printf("New client character set: %s\\n", mysql_character_set_name(conn));
}
if (dataSourceType==ShangeHaiMainBoard) {
tableName=@"shzb";
}else if (dataSourceType==ShenzhenMainBoard) {
tableName=@"szzb";
}else if (dataSourceType==ShenzhenSmallBoard) {
tableName=@"szzxb";
}else if (dataSourceType==HongKongMainBoard) {
tableName=@"hkzb";
}
NSString *queryString=[NSString stringWithFormat: @"SELECT * FROM %@ ",tableName];
NSString *newQueryString=NULL;
if (!(stockID==nil||[stockID isEqualToString:@""])&& ([leaderName isEqualToString: @""]||leaderName==nil)) {
newQueryString=[queryString stringByAppendingFormat:@"WHERE companyID like '%@'",stockID];
}
else if ( (stockID==nil||[stockID isEqualToString:@""])&& !([leaderName isEqualToString: @""]||leaderName==nil)){
newQueryString=[queryString stringByAppendingFormat:@"WHERE holdingChangerName like '%@'",leaderName];
}else if ( !(stockID==nil) && !(leaderName==nil)){
newQueryString=[queryString stringByAppendingFormat:@"WHERE holdingChangerName like '%@' AND companyID like '%@'",leaderName,stockID];
}
NSStringEncoding enc=CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000 ); //转换编码,包括中文
if (mysql_query(conn, (char*)[newQueryString cStringUsingEncoding:enc])) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
res = mysql_store_result(conn);
[historyRecords removeAllObjects];
int rowCount = mysql_num_rows(res);
NSLog(@"rowCount:%d",rowCount);
for(int i = 0; i < rowCount; i++)
{
StockInfo *stockinfo= [[StockInfo alloc]init];
if(row = mysql_fetch_row(res))
{
if ([dataSource isEqualToString: @"shzb"]) {
stockinfo.companyID=[NSString stringWithUTF8String:row[0]];
stockinfo.companyName=[NSString stringWithCString:row[1]encoding:enc ];
stockinfo.leaderName=[NSString stringWithCString:row[2]encoding:enc ];
stockinfo.holdingChangerName=[NSString stringWithCString:row[3]encoding:enc ]; //股份变更者与董监高为同一人
stockinfo.job=[NSString stringWithUTF8String:row[4]];
stockinfo.stockType=[NSString stringWithUTF8String:row[5]];
stockinfo.currencyType=[NSString stringWithUTF8String:row[6]];
stockinfo.numberOfSharesBeforeChange=[[[NSString stringWithUTF8String:row[7]]stringByReplacingOccurrencesOfString:@"," withString:@""]floatValue];
stockinfo.numberOfSharesChanged=[[[NSString stringWithUTF8String:row[8]]stringByReplacingOccurrencesOfString:@"," withString:@""]floatValue];
stockinfo.averagePrice=[[NSString stringWithUTF8String:row[9]]floatValue];
stockinfo.numberOfSharesAfterChange=[[[NSString stringWithUTF8String:row[10]]stringByReplacingOccurrencesOfString:@"," withString:@""]floatValue];
stockinfo.changeReason=[NSString stringWithUTF8String:row[11]];
stockinfo.changeDate=[StockInfo dateFromString:[NSString stringWithUTF8String:row[12]] withFormat:@"yyyy-MM-dd"];
stockinfo.reportedDate=[StockInfo dateFromString:[NSString stringWithUTF8String:row[13]] withFormat:@"yyyy-MM-dd"];
}
else if([dataSource isEqualToString:@"szzb"]||[dataSource isEqualToString:@"szzxb"]){
stockinfo.companyID=[NSString stringWithUTF8String:row[0]];
stockinfo.companyName=[NSString stringWithCString:row[1]encoding:enc ];
stockinfo.holdingChangerName=[NSString stringWithCString:row[2]encoding:enc ];
stockinfo.changeDate=[StockInfo dateFromString:[NSString stringWithUTF8String:row[3]] withFormat:@"yyyy-MM-dd"];
stockinfo.numberOfSharesChanged=[[[NSString stringWithUTF8String:row[4]]stringByReplacingOccurrencesOfString:@"," withString:@""] floatValue];
stockinfo.averagePrice=[[NSString stringWithUTF8String:row[5]]floatValue];
stockinfo.changeReason=[NSString stringWithUTF8String:row[6]];
stockinfo.holdingRateChanged=[[NSString stringWithUTF8String:row[7] ]floatValue];
stockinfo.numberOfSharesAfterChange=[[[NSString stringWithUTF8String:row[8]]stringByReplacingOccurrencesOfString:@"," withString:@""]floatValue];
stockinfo.leaderName=[NSString stringWithCString:row[9]encoding:enc];
stockinfo.job=[NSString stringWithUTF8String:row[10]];
}else if ([dataSource isEqualToString:@"hkzb"]||[dataSource isEqualToString:@"hkcyb"]) {
stockinfo.companyID=[NSString stringWithUTF8String:row[0]];
stockinfo.companyName=[NSString stringWithCString:row[1]encoding:enc ];
stockinfo.holdingChangerName=[NSString stringWithCString:row[2]encoding:enc ];
stockinfo.numberOfSharesChanged=[[[NSString stringWithUTF8String:row[3]]stringByReplacingOccurrencesOfString:@"," withString:@""] floatValue];
stockinfo.numberOfSharesAfterChange=[[[NSString stringWithUTF8String:row[4]]stringByReplacingOccurrencesOfString:@"," withString:@""]floatValue];
stockinfo.holdingRateAfterChange=[[NSString stringWithUTF8String:row[5]]floatValue];
NSLog(@"changedate:%@",[NSString stringWithCString:row[6]encoding:enc] );
stockinfo.changeDate=[StockInfo dateFromString:[NSString stringWithCString:row[6]encoding:enc ] withFormat:@"yyyy-MM-dd"];
}
}
row = NULL;
[historyRecords addObject:stockinfo];
[stockinfo release];
}
mysql_free_result(res);
mysql_close(conn);
[self.table reloadData];
return rowCount;
}