XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Nick ForthmanSubject: Is SQL/XML Extension usage limited by the database?
Author: Nick Forthman
Date: 22 Feb 2006 12:50 PM
I am using the Stylus Studio DB-to-XML Editor connected to a MySQL Server 4.1 database.

When my SELECT window has a SELECT * FROM <table_reference> everything works as it should and I get the rows expected in the Preview window.

When I attempt to use the default SQL/XML extensions based query:
SELECT
XMLELEMENT(name "row",
XMLELEMENT(name "user_id",t.user_id),
XMLELEMENT(name "login_name",t.login_name),
...

I receive the following error:

java.sql.SQLException: [StylusStudio][SequeLink JDBC Driver][ODBC Socket][MySQL][ODBC 3.51 Driver][mysqld-4.1.10a-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(name "row", XMLELEMENT(name "user_id",t.user_id), XMLELEMENT(name "login_name",' at line 1; at ZC.jdbc.jxtr.JXTRDriverConfig.translateSQLException(Unknown Source);
at ZC.jdbc.jxtr.JXTRDriverConfig.createSQLException(Unknown Source);
at ZC.jdbc.jxtr.JXTRDriverPassThruPreparedStatement.executeQuery(Unknown Source);
at com.stylusstudio.DataDirectStub.select(DataDirectStub.java:286);
at com.stylusstudio.SQLXFile.executeQuery(SQLXFile.java:533);

Do SQL/XML Extensions rely on support from the underlying database?

When I researched XMLELEMENT on MySQL it appears to not be supported natively, and that MySQL only starts getting into native support with XPATH in MySQL 5.1...

Postnext
(Deleted User) Subject: Is SQL/XML Extension usage limited by the database?
Author: (Deleted User)
Date: 22 Feb 2006 01:31 PM
Hi, Nick. Stylus Studio supports only SQL/XML, which is the SQL standard. There is no one-to-one mapping between SQL/XML and the proprietary Microsoft SQLXML SQL extension -- each has different features.

Hope this helps.

David Foster
Stylus Studio Team

Postnext
Nick ForthmanSubject: Is SQL/XML Extension usage limited by the database?
Author: Nick Forthman
Date: 22 Feb 2006 01:51 PM
Ok, good background material, I was only using the phrase "SQL/XML Extensions" because that is how the concept is referred in the SQL/XML Video Demonstrations on your website.

The focus of my question is being able to use SQL/XML statements like XMLELEMENT while addressing a MySQL database.

Does Stylus Studio convert SQL/XML statements internally to basic SQL like:
SELECT <column_reference>, <column_reference>, ... FROM <table_reference>

Or does it rely on the underlying database to support SQL/XML statements like XMLELEMENT directly?

Net: If my database (MySQL 4.1) does not natively support XMLELEMENT, using Stylus Studio does not suddently provide XMLELEMENT support.

Postnext
(Deleted User) Subject: Is SQL/XML Extension usage limited by the database?
Author: (Deleted User)
Date: 22 Feb 2006 02:42 PM
Hi, Nick. SQL/XML is translated to SQL by DataDirect Connect for SQL/XML, which is embedded in Stylus Studio. The query result is then translated to XML.

So, to your original question: XMLELEMENT should work just fine on MySQL, so it's possible that your original SQL/XML statement contains an error.

Can you let us have a look at it (either here, or by mailing it to stylus-field-report at progress dot com)?

Thanks.

David Foster
Stylus Studio Team

Postnext
Nick ForthmanSubject: Is SQL/XML Extension usage limited by the database?
Author: Nick Forthman
Date: 22 Feb 2006 04:56 PM
Ok, in the process of making a clean example that can be shared with the world, I think I found the problem, but first the SQL/XML:

SELECT
XMLELEMENT(name "row",
XMLELEMENT(name "id",t.id),
XMLELEMENT(name "name",t.name)
)
FROM test.user t

The above statement causes the same error as my original post and I believe that the problem is in the table reference: test.user

In that I think "user" is getting interpreted as a reserved word rather than as a table name. ( I didn't invent the table, just merely attempting to access it ;) ).

When I create the exact same table but with a name of user1 and change the table reference to test.user1 everything works fine.

Now according to the MySQL documentation, "A word that follows a period in a qualifed name must be an identifier, so it is not necessary to quote it, even if it is a reserved word." - http://dev.mysql.com/doc/refman/4.1/en/reserved-words.html

So either this is a possible bug, or DataDirect Connect for SQL/XML requires an identifier quote character.

Note that in MySql the backtick (`) is the identifier quote character, but alas this does not seem to be honored (attempted `test.user` and test.`user`)

Please advise on bug or quote character (I have attempted with `, ', and " ).



Postnext
Ivan PedruzziSubject: Is SQL/XML Extension usage limited by the database?
Author: Ivan Pedruzzi
Date: 22 Feb 2006 05:23 PM
Hi Nick,

Connect For SQL/XML requires to escape SQL keywords using double quotes
The following should work

SELECT
XMLELEMENT(name "row",
XMLELEMENT(name "id",t.id),
XMLELEMENT(name "name",t.name)
)
FROM test."user" t

Hope this helps
Ivan Pedruzzi
Stylus Studio Team

Postnext
Nick ForthmanSubject: Is SQL/XML Extension usage limited by the database?
Author: Nick Forthman
Date: 22 Feb 2006 05:34 PM
I cut and pasted your example; it fails as well, slightly different error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"user" t' at line 1.

Full error message:
java.sql.SQLException: [DataDirect][JXTR Driver]SQL Exception detected: java.sql.SQLException: [StylusStudio][SequeLink JDBC Driver][ODBC Socket][MySQL][ODBC 3.51 Driver][mysqld-4.1.10a-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"user" t' at line 1.;
at ZC.jdbc.jxtr.JXTRDriverConfig.createSQLException(Unknown Source);
at ZC.jdbc.jxtr.JXTRDriverPreparedStatement.executeQuery(Unknown Source);
at com.stylusstudio.DataDirectStub.select(DataDirectStub.java:286);
at com.stylusstudio.SQLXFile.executeQuery(SQLXFile.java:533);


Postnext
Ivan PedruzziSubject: Is SQL/XML Extension usage limited by the database?
Author: Ivan Pedruzzi
Date: 23 Feb 2006 02:18 PM
Hi Nick,

You are right, I installed MySQL and I was able to reproduce it.
There is an escaping problem with reserved keywords, we are invetigating.

In the mean while you are still able to generate XML using the default mapping using straight SQL like SELECT * from user.

Hope this helps
Ivan Pedruzzi
Stylus Studio Team

Postnext
Nick ForthmanSubject: Is SQL/XML Extension usage limited by the database?
Author: Nick Forthman
Date: 23 Feb 2006 03:44 PM
Ivan,

Thanks for the follow up test on your side to confirm my observations.

Yes, SELECT * FROM user works fine, so I will use that in the meantime.

Please let us know your conclusions when they are ready.

Thank you,
Nick

Posttop
Ivan PedruzziSubject: Is SQL/XML Extension usage limited by the database?
Author: Ivan Pedruzzi
Date: 24 Feb 2006 12:19 PM
Hi Nick

The only suggestion I can give at this point is to set the sql_mode to ANSI_MODE as describe at
http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html

Hope this helps
Ivan Pedruzzi
Stylus Studio Team

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.