0
我有一些查詢在使用PostgreSQL數據庫和舊版JDataStore(用於與數據庫交互的部分)的某些部分運行。有時查詢會從查詢的一次執行中發送到數據庫兩次。更奇怪的是,發送的第一個查詢與第二個查詢稍有不同,並且不正確。例如:添加到查詢中的其他未指定字段
First Query (incorrect)
SELECT b."construct_id", c."instance_id", a.SymbolName, c.Address AddressDecimal,
c.Description, b.ConstructName, a.DeclarationType, a.Symbol_id,
a.SymbolType_id, a.Construct_id, a.Leaf
FROM tblSymbolDeclaration a, tblLanguageConstructName b, tblSymbolInstance c
WHERE a.Construct_id = b.Construct_id and a.Symbol_id = c.Symbol_id
and a.DeclarationType = 1 and a.Root = 1
注意在該查詢開始時的兩個領域,而缺乏單詞「爲」的,與此相比:
Second Query (correct)
SELECT a.SymbolName, c.Address as AddressDecimal, c.Description,
b.ConstructName, a.DeclarationType, a.Symbol_id, a.SymbolType_id,
a.Construct_id, a.Leaf
FROM tblSymbolDeclaration a, tblLanguageConstructName b, tblSymbolInstance c
WHERE a.Construct_id = b.Construct_id and a.Symbol_id = c.Symbol_id
and a.DeclarationType = 1 and a.Root = 1
我們查詢的一組列表中,我們使用,並且第一個查詢甚至不在該列表中。什麼會造成這種情況? (對不起,我沒有提供代碼,但在這種情況下這樣做是不可行的。)
是的,那些也是我的想法。然而,我不是SQL專家。 1.查詢以源代碼中的字符串形式存儲(整個事情 - 根本沒有在代碼中構建)。我直接將字符串傳遞給一個QueryDataSet對象,然後在其上運行executeQuery()(這些來自JDataStore;我不希望任何人知道太多) 2.我在SQL服務器的日誌文件中看到兩個查詢。 – Chris 2010-01-06 15:33:20
你的編輯似乎已經奏效,但我不明白爲什麼。 – Chris 2010-01-06 15:59:39