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