簡體   English   中英

vb6和SQL中的查詢字符串語法錯誤

[英]Query string syntax error in vb6 & SQL

我不知道這段代碼的哪一部分寫得不正確。

在我的查詢字符串中,我試圖在sFrom和sTo的值之間收集一系列記錄。 基本上,我想這樣做,以便使我從數據庫中收集到的所有控制編號中,唯一顯示的內容是用戶為起始范圍(sFrom)和結束范圍(sTo)輸入的任何內容。

sQuery = "SELECT " & sFields & " FROM " & sTable &
         " Where store_id Like 'XXX'" & sFilter &
         " Where control_no > sFrom and < sTo " &
           order by " & sOrderBy

這個:

" Where control_no > sFrom and < sTo "

應該可能是這樣的:

" Where control_no >= " & sFrom & " and control_no <= " & sTo

(當然,假設sFrom和sTo是用用戶輸入的數字填充的字符串變量)

您不能在<

sQuery = "SELECT " & sFields & " FROM " & sTable & " Where store_id Like 'XXX'" & sFilter & " Where control_no > sFrom and control_no < sTo " & order by " & sOrderBy
  1. Like 'XXX'" & sFilterX '和下一個字符串之間沒有空格。
  2. 您根本沒有換行符。
  3. 您有兩個Where子句。
  4. sFromsTo是文字字符串。 您可能打算將它們用作變量。
  5. 您無法在control_nosTo之間進行比較。
  6. sFilter和周圍的SQL之間沒有語句。
  7. order by之前,您沒有雙引號。
  8. 就像樣式選擇一樣,SQL關鍵字的大小寫也不一致。

現在,將它們放在一起:

sQuery = "SELECT " & sFields & " FROM " & sTable & _
         " WHERE store_id LIKE 'XXX'" & _
         " AND " & sFilter & _
         " AND control_no > " & sFrom & _
         " AND control_no < " & sTo & _
         " ORDER BY " & sOrderBy 

調試此錯誤的最佳方法是查看生成的SQL語句,然后從那里開始工作。

您目前的評價為

SELECT field, field2 FROM table Where store_id Like 'XXX'FilterString Where control_no > sFrom and < sTo order by field1
  1. 您不能有多個WHERE子句。
  2. 我希望您的sFilter包含非常錯誤,但這取決於確切的值。
  3. sFromsTo作為文字包括在內,未評估(請參閱tcarvin的答案
  4. WHERE子句的每個部分都必須完整。 您不能忽略該字段進行檢查(請參閱Darrel的答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM