2014-08-27 16 views
-1

不好意思,偶爾我會提到一些問題,可能它已經被修復了。在任何情況下,我將不勝感謝澄清與 我有一個TariffeEstere表的國家,最小值,最大值,關稅 從中提取有關國家的速度,取決於值是否在最小值和最大和我應該返回一個記錄從中提取其資費: 查詢是:用數值變量在ADO(vb6)中選擇

stsql = "Select * from QPagEstContanti Where country = ' Spain ' 
     and min <= ImpAss and max >= ImpAss" 

哪裏ImpAss是double類型的變量。

當我做 rstariffa.open ststql,..... 重新錄製包含記錄,例如, ImpAss = 160(即一個沒有小數的整數),然後查詢起作用,但是如果它包含21,77 ImpAss(意大利語格式)不再起作用並且給我一個語法錯誤。

爲了驗證事實的查詢字符串(stsql),我發現的內容:

Select * from QPagEstContanti Where country = 'Spain' and min < = 21,77 and max > = 21,77 
在實踐

的煩心事,想一個逗號小數,但不知道該怎麼辦。 我試圖通過連

format (ImpAss, "####0.00"), 

但你在stsql發現值爲21,77始終。 我該如何解決這個問題?

回答

1

這聽起來像SQL中的基礎語言設置期望'。'小數點而不是','小數點表示法。

要檢查這一點 - 運行DBCC useroptions命令並查看'語言'值設置爲什麼。如果該語言設置爲英語或其他'。'十進制符號 - 它解釋了爲什麼你的SQL字符串失敗,值爲double。

如果是這樣的問題,解決它是你的stsql =語句之後插入以下行最簡單的方法:
    stsql = REPLACE(stsql, 「 」「」)

另一個修復它的方法是使用ALTER LOGIN命令更改登錄的DEFAULT_LANGUAGE(但這會永久更改設置)

修復它的另一種方法是將此命令添加到stsql的開頭,更改rs的持續時間的語言。打開:
   「SET LANGUAGE Italian;」

+0

但我使用文件訪問.mdb – Antony 2014-08-28 06:50:46

+0

安東尼,我的道歉,因爲我不知道它是MS Access。嘗試第一個解決方案:** stsql = REPLACE(stsql,「,」,「。」)**。忽略其他選項 – Timothy 2014-08-28 23:07:40

+0

蒂莫西,所有坦克 – Antony 2014-08-29 14:45:20