怎样获得查询中使用的表名?(50分)

  • 主题发起人 主题发起人 wangxd
  • 开始时间 开始时间
W

wangxd

Unregistered / Unconfirmed
GUEST, unregistred user!
我允许用户自定义sql查询,但怎样才能获得其查询中用了那几个表呢?
如:select * from a,b where a.age>b.age
我怎样才能获得a,b这两个表名呢?
 
建议不要让用户谢全部的语句.
 
自己分析SQL语句,放在from和where之间的就是了,逗号分隔。。
 
楼上同志说的不错。请用pos, copy等函数自己分析Sql语句
程序段如下(仅参考)
function GetTableName(MySQL :String) : STRING ;
VAR FromPos , WherePos : integer ;
begin
FromPos := Pos('From',MySql) ;
WherePos := Pos('Where',MySql) ;
Result := copy(MySql,FromPos, WherePos-1) ;
end;
 
没有更好的办法吗?
我的情况比较特殊,最好Tquery直接有这个功能。
 
分析SQL语句
 
多人接受答案了。
 
后退
顶部