带括号的变量与不带括号的变量有什么区别解决办法

带括号的变量与不带括号的变量有什么区别
例如下面三句中的a与(a)有什么区别
a=alltrim(thisform.text1.value)
select * from 学生 where 姓名=a into table (a)
thisform.grid1.recordsource="select * from (a) into cursor bb"

(a)写成&a可以吗?
a=alltrim(thisform.text1.value)
select * from 学生 where 姓名=a into table &a
thisform.grid1.recordsource="select * from &a into cursor bb"


------解决方案--------------------
SQL code

*---问题1
**********
* ( )命令
**********
语法:
(字符表达式)

参数:
字符表达式:为字符型变量。

返回值:字符型

说明:名字表达式的功能类似于&(宏替换),当程序在执行过程中,遇到名字表达式时,计算字符表达式,用结果进行替换,然后继续执行命令。名字表达式要比宏替换快,但适用范围较窄,用于字段名、文件名等。
当字符型表达式是一个字符型变量时,必须用圆括号括起来;
-----------------------------
DBFILE="PEOPLE"
IDXFILE="PEONAME"
USE (DBFILE) INDEX (IDXFILE)
-----------------------------
如果含有操作符,则圆括号可以省略。
----------------------------------
DBFILE="PEOPLE"
IDXFILE="PEONAME"
USE (DBFILE) INDEX IDXFILE+".IDX"
----------------------------------
IDXFILE+".IDX"中的操作符"+"告诉VFP它是名字表达式,因此不需要用圆括号括起来。
*---问题2
可以
查看VFP帮助文件中& 命令的说明

------解决方案--------------------
写成 & 也可以,如果 a 中不包含空格的话,例如:
a = 'C:\Documents and Settings\Administrator\My Documents\aaa.dbf'

select * from ttt into table (a) 可以
select * from ttt into table &a 出错
改成 select * from ttt into table "&a" 才可以