如果上面這步未能完成,后面的就更難做的了。
設想實現以下:SQL語句,簡單統計:
select A , sum(B) From Table1
group By A
order By A
簡單聯合:
select A , B From Table1 , Table2
where Table1.ID = Table2.ID
這次作業完成這步把結果輸出成文本文件應該就可以算了吧。如果要完成更多,只好罷工了。
1。不做語法分析器,用固定的方式,要示用戶輸入:(為簡化設計而已你要寫也可以的)
簡單統計:
please input :
1. TxtTableName :
2. Group By Fields (用逗號分隔):
3. sum Fields (用逗號分隔):
從而得到
select A , sum(C) From Table1
group By A
order By A
所需要的變量。
然後:
1.LoadDataset1FormTxtField , 生成DataSet1 ;
2.生成結果數據集DataSet2 , 包括字段: A , B , C .//這也不算很難,BCB Help中有例子
3.計算TStrings sumStrings.
for(DataSet1->First();! DataSet1->Eof ; DataSet1->Next())
{
TLocateOptions Opts ;
//group by 如果
for(int i = 0 ; sumStrings->Count ; ++i)
{
AnsiString sunFieldName = sumStrings->strings[i];
if(DataSet2->Locate(sunFieldName,DataSet1->Fields(sunFieldName)->Value,Opts);
DataSet2->Edit();
else
DataSet2->Append();
DataSet2->Fields(sunFieldName)->Value += DataSet1->Fields(sunFieldName)->Value ;
//這就完成了Group By 要完成的動作的了
}
}
4.將結果集存成文本文件。