工作,我需要遷移從MS SQL的舊程序通過ODBC的SQLite。我沒有源代碼。它在編寫數據時工作得很好,但是一些帶有TOP子句的SELECT不起作用。從可執行文件查詢字符串是:如何從查詢中刪除MS SQL TOP子句,使其在SQLite的
SELECT TOP %ld [%s] FROM [%s] WHERE ([%s] < %f)
查詢是針對單個字段。我需要刪除「TOP%ld」部分,但保留結果。正確的查詢是這樣的:
SELECT "%s" FROM "%s" WHERE ("%s" < %f)
此字符串傳遞給sprintf的或類似的C函數,所以我需要LD%作爲第一個參數,但結果應該是一樣的第一個查詢。
有沒有辦法讓LD%沒有量變到質變的結果,而改變從MS SQL數據庫對於SQLite?
編輯1:這是一個32位Windows應用程序。
編輯2: 如果我使用下一個字符串:
SELECT "%.*s" FROM "%s" WHERE ("%s" < %f)
我可以得到非常接近的結果,但我失去了請求的行數。另外,如果第一個參數小於列名稱的字符數,則會有SQL異常。
EDIT 3: Aloso可能:
SELECT (%ld * 0) + "%s" FROM "%s" WHERE ("%s" < %f)
它要求該列是數字型這是通常的情況。編輯2的例外情況可以避免。
如果您的應用程序沒有源代碼,您可以更改哪些內容? – jpw
謝謝!非常有幫助。我需要改變我上面寫的內容。 –