void __fastcall AnaLyze(AnsiString sql)
{
    AnsiString table[10];    //保存表名
    AnsiString field[50];    //保存字段名
    int biao=0;
    int i = 0;
    int m = 0;
    sql =  sql.Delete(1,6); //去掉select
    sql =  sql.TrimLeft();  //去掉左边的空格
    sql =  sql.SubString(1,sql.AnsiPos("from")-1);
    if(sql.AnsiPos("*"))return;
    while(sql.AnsiPos(".")<sql.Length())
    {
        field[m]=sql.SubString(1,sql.AnsiPos(",")-1);
        table[i]=sql.SubString(1,sql.AnsiPos(".")-1);
        sql = sql.Delete(1,sql.AnsiPos(",")); //删除字段
        sql = sql.TrimLeft();  //去掉左边的空格
        for(int j=0;j<i;j++)
        {
            if(CompareStr(table[i],table[j])==0)
            {
                table[i]="";
                i--;
            }
        }
        i++;
        m++;
        if(sql.AnsiPos(".")&&!sql.AnsiPos(","))break;
    }    sql =sql.Trim();
    field[m]=sql;
    table[i]=sql.SubString(1,sql.AnsiPos(".")-1);
    for(int j=0;j<i;j++)
    {
        if(CompareStr(table[i],table[j])==0)  table[i]="";
    }
}用BCB3实现