Dear all,
When executing an SQL query with the SQL module:
sql:init("com.microsoft.sqlserver.jdbc.SQLServerDriver"),
let $connection := sql:connect("jdbc:sqlserver://SQLHOST:1433;databaseName=DBNAME", "username", "pa$$w0rd")
return sql:execute($connection, "SELECT * FROM TABLE")
I get the following error message:
Error:
Stopped at /Users/sa/staging/file, 3/19:
[sql:error] An SQL exception occurred: Das Resultset wurde geschlossen.
Compiling:
- inline let $connection_0 := sql:connect("jdbc:sqlserver://SQLHOST:1433;databaseName=DBNAME", "username", "pa$$w0rd")
- simplify FLWOR expression: sql:connect("jdbc:sqlserver://SQLHOST:1433;databaseName=DBNAME", "username", "pa$$w0rd") ! sql:execute(., "SELECT * FROM TABLE")
Optimized Query:
(sql:init("com.microsoft.sqlserver.jdbc.SQLServerDriver"), sql:connect("jdbc:sqlserver://SQLHOST:1433;databaseName=DBNAME", "username", "pa$$w0rd") ! sql:execute(., "SELECT * FROM TABLE"))
Query:
sql:init("com.microsoft.sqlserver.jdbc.SQLServerDriver"), let $connection := sql:connect("jdbc:sqlserver://SQLHOST:1433;databaseName=DBNAME", "username", "pa$$w0rd") return sql:execute($connection, "SELECT * FROM TABLE")
Query Plan:
<QueryPlan compiled="true" updating="false">
<List type="item()*">
<SqlInit name="sql:init" type="empty-sequence()" size="0">
<Str type="xs:string" size="1">com.microsoft.sqlserver.jdbc.SQLServerDriver</Str>
</SqlInit>
<IterMap type="item()*">
<SqlConnect name="sql:connect" type="xs:integer" size="1">
<Str type="xs:string" size="1">jdbc:sqlserver://SQLHOST:1433;databaseName=DBNAME</Str>
<Str type="xs:string" size="1">username</Str>
<Str type="xs:string" size="1">pa$$w0rd</Str>
</SqlConnect>
<SqlExecute name="sql:execute" type="item()*">
<ContextValue type="xs:integer" size="1"/>
<Str type="xs:string" size="1">SELECT * FROM TABLE</Str>
</SqlExecute>
</IterMap>
</List>
</QueryPlan>
Does anyone have an idea what the problem is?
Any hints are welcome!