Hi there,
On 04/08/2008, at 5:39 PM, Andrey Razumovsky wrote:
This is definitely MS SQL's issue, not Cayenne's. Only thing I can
recommend, if you can allow that, select all rows and then seed
out duplicate rows manually
AFAIK we are not purposely turning on the flag for obtaining distinct
rows. (Well to be fair - we don't have the root stack trace from ROP
so can't be certain if we are or not).
But AFAIK Cayenne does turn certain queries into select distinct
(e.g., joins). Is that right?
2008/8/4, Matthias Moeser <[EMAIL PROTECTED]>:
We are using Cayenne with Microsoft SQL Server. We get a
com.microsoft.sqlserver.jdbc.SQLServerException: "The text data
type cannot
be selected as DISTINCT because it is not comparable."
The problem is that the following query is not allowed in MS SQL
Server:
SELECT DISTINCT column FROM table;
where "column" is of datatype "text". So i think that cayenne does
somewhere such a DISTINCT query on a "text" datatype column.
The datatype "text" in MS SQL server is a variable-length data with a
maximum length of 2^31 - 1 (2,147,483,647) characters, Varchar()
can have
only maximum 8000 character.
What can I do? I need the "text" datatype.
Thank you
Matthias
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at
org.mortbay.jetty.bio.SocketConnector
$Connection.run(SocketConnector.jav
a:228)
at
org.mortbay.thread.BoundedThreadPool
$PoolThread.run(BoundedThreadPool.ja
va:450)
Caused by: java.lang.Exception: The text data type cannot be
selected as
DISTINCT because it is not comparable.
com.microsoft.sqlserver.jdbc.SQLServerException: The text data type
cannot be selected as DISTINCT because it is not comparable.
at
com
.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Un
known Source)
at
com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown
Source)
at
com
.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePrepare
dStatement(Unknown Source)
at
com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement
$PrepStmtExecCmd.
doExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown
Source)
at
com
.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown
Source)
at
com
.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknown
Source)
at
com
.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(Unknown
Source)
at
com
.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(Unk
nown Source)
at
org
.apache.cayenne.access.jdbc.SelectAction.performAction(SelectAction.j
ava:73)
at
org
.apache.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryActi
on.java:58)
with regards,
--
Lachlan Deck