Visual foxpro 在foxpro中选择查询

Visual foxpro 在foxpro中选择查询,visual-foxpro,foxpro,Visual Foxpro,Foxpro,我在试这个 col= thisform.combo4.DisplayValue+SUBSTR(thisform.combo3.DisplayValue,1,3) SELECT col as a1 FROM doc WHERE com=thisform.combo1.DisplayValue INTO CURSOR c1 thisform.text30.Value=c1.a1 变量col表示dbf中列的名称 结果是列的名称,而不是存储在该列中的值 col= thisform.combo4.Dis

我在试这个

col= thisform.combo4.DisplayValue+SUBSTR(thisform.combo3.DisplayValue,1,3)
SELECT col as a1 FROM doc WHERE com=thisform.combo1.DisplayValue INTO CURSOR c1
thisform.text30.Value=c1.a1
变量col表示dbf中列的名称
结果是列的名称,而不是存储在该列中的值

col= thisform.combo4.DisplayValue+SUBSTR(thisform.combo3.DisplayValue,1,3)

* here I assume col is a correct string that represents an existing column


SELECT &col as a1 FROM doc ;
  WHERE com=thisform.combo1.DisplayValue ;
  INTO CURSOR c1 ;
  nofilter
thisform.text30.Value=c1.a1
若要在Select中使用字符串作为列名,则需要使用&(宏子项)运算符


若要在Select中使用字符串作为列名,则需要使用&(宏子项)运算符

Alan说“你需要使用”你是对的evaluate()是一个选项。我应该说“你应该使用”。SQL select中的IMHO是一个好方法,它可能是1或2个有地方使用的地方之一(rest不需要,也不应该在其他地方使用,但我们知道许多VFP用户滥用它:),它给了我一个错误:下标是外部定义的range@BONIETTE,创建一个变量,如“dv=thisform.combo1.displayValue”在where子句中使用。VFP将使用。表示表或别名。列名。由于您有多个点符号,我知道VFP会对此感到困惑。尝试输入一个变量,您将失去额外点引用的问题。@BONIETTE,错误不在此语法范围内。我们不知道“col”到底想干什么。如果它是一个有效的列名,则不会有错误,但似乎不是。@DRapp,VFP没有这种“混乱”,并且可以清楚地解释thisform.combo1.displayvalue。您所说的只是更新查询中的一个问题。Alan说“您需要使用”是正确的evaluate()是一个选项。我应该说“你应该使用”。SQL select中的IMHO是一个好方法,它可能是1或2个有地方使用的地方之一(rest不需要,也不应该在其他地方使用,但我们知道许多VFP用户滥用它:),它给了我一个错误:下标是外部定义的range@BONIETTE,创建一个变量,如“dv=thisform.combo1.displayValue”在where子句中使用。VFP将使用。表示表或别名。列名。由于您有多个点符号,我知道VFP会对此感到困惑。尝试输入一个变量,您将失去额外点引用的问题。@BONIETTE,错误不在此语法范围内。我们不知道“col”到底想干什么。如果它是一个有效的列名,则不会有错误,但似乎不是。@DRapp,VFP没有这种“混乱”,并且可以清楚地解释thisform.combo1.displayvalue。您所说的只是更新查询中的问题。