2
lcVillkor1 = "table.numbers > 1"

SELECT * FROM table WHERE lcVillkor1 ORDER BY table.numbers

エラーが発生しました - SQL: WHERE clause is invalid

私はほぼすべての可能な組み合わせを試しました

"table.numbers > 1", (table.numbers > 1), "(table.numbers > '1')"等..

テーブルからいくつかの投稿 (数字が 1 より大きい場合) を取得して印刷しようとしています。

4

3 に答える 3

10

&変数の前に使用して展開します。

lcVillkor1 = "table.numbers > 1"

SELECT * FROM table WHERE &lcVillkor1 ORDER BY table.numbers
于 2012-09-24T23:36:51.857 に答える
1

コード行に変数名を入れて実行させることはできません。代わりに、SQL コマンドをテキスト変数として作成し、マクロ置換などを使用して実行します。

lcVillkor1 = "table.numbers > 1" 
lcSql = "SELECT * FROM table WHERE " + lcVillkor1 + " ORDER BY table.numbers"
&lcSql

また、今後の参考のために、予約語に近いテーブル名やフィールド名 ("table" や "number" など) は理想的ではない可能性があります。

于 2012-09-24T21:56:38.783 に答える
0

マクロ置換は正常に機能します (前述の両方の例で)。VFP9 を使用する場合は、クエリ文字列を作成した後に関数 EXECSCRIPT() を使用することもできます。

lcVillkor1 = "table.numbers > 1" 
lcSql = "SELECT * FROM table WHERE " + lcVillkor1 + " ORDER BY table.numbers"
EXECSCRIPT(lcsql)
于 2012-09-26T00:37:12.733 に答える