tomcat-taglibs-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Derek Mahar" <DMa...@penson.ca>
Subject RE: [JSTL] How do I enter a null value with <sql:param>?
Date Wed, 19 May 2004 14:00:45 GMT
Correction: the table name should have read tblTest rather than
tblTestDerek.

-----Original Message-----
From: Derek Mahar 
Sent: May 19, 2004 9:45 AM
To: Tag Libraries Users List
Subject: RE: [JSTL] How do I enter a null value with <sql:param>?


Your solution is equivalent to Case 2 that I listed in my original
message.  The Microsoft SQL Server JDBC driver complains with a
JspException:

javax.servlet.ServletException: javax.servlet.jsp.JspException: 
  INSERT INTO tblTest(a) VALUES (?)
: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Syntax error 
converting the nvarchar value 'null' to a column of data type int.

However, the JDBC driver accepts and correctly processes the following
query:

<sql:update>
  INSERT INTO tblTestDerek VALUES (null)
</sql:update>

In light of this, I suspect that there may be an error in the
implementation of <sql:param> where it treats "null" as a string
argument rather than as an SQL null argument.

Derek

-----Original Message-----
From: Kris Schneider [mailto:kris@dotech.com] 
Sent: May 18, 2004 9:10 PM
To: Tag Libraries Users List
Subject: Re: [JSTL] How do I enter a null value with <sql:param>?


<sql:param value="${null}"/>

Derek Mahar wrote:
> How do I enter a null value into a table column with <sql:param>?  The

> JSTL 1.1 specification states for <sql:param> that, "If value is null,

> the parameter is set to the SQL value NULL."  However, no matter what
> value I pass to <sql:param>, I'm unable to set a null column:
> 
> Case 1: Set value to undefined variable
> <sql:update>
>   INSERT INTO tblTest(a) VALUES (?)
>   <sql:param value="${nullValue}"/>
> </sql:update>
> 
> Output:
> javax.servlet.ServletException: javax.servlet.jsp.JspException: 
>   INSERT INTO tblTest(a) VALUES (?)
> : [Microsoft][SQLServer 2000 Driver for JDBC]The specified SQL type is

> not supported by this driver.
> 
> Case 2: Set value to "null"
> <c:set var="nullValue" value="null"/>
> <sql:update>
>   INSERT INTO tblTest(a) VALUES (?)
>   <sql:param value="${nullValue}"/>
> </sql:update>
> 
> Output:
> javax.servlet.ServletException: javax.servlet.jsp.JspException: 
>   INSERT INTO tblTest(a) VALUES (?)
> : [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Syntax error
> converting the nvarchar value 'null' to a column of data type int.
> 
> Cast 3: Set value to empty string
> <c:set var="nullValue" value=""/>
> <sql:update>
>   INSERT INTO tblTest(a) VALUES (?)
>   <sql:param value="${nullValue}"/>
> </sql:update>
> 
> Output:
> Microsoft SQL Server inserts a new row with column a set to 0.
> 
> Any suggestions?
> 
> Derek

-- 
Kris Schneider <mailto:kris@dotech.com>
D.O.Tech       <http://www.dotech.com/>
NOTICE: This email contains privileged and confidential information and is intended only for
the individual to whom it is addressed. If you are not the named addressee, you should not
disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail
if you have received this transmission by mistake and delete this communication from your
system. E-mail transmission cannot be guaranteed to be secured or error-free as information
could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses.


AVIS: Le présent courriel contient des renseignements de nature privilégiée et confidentielle
et n’est destiné qu'à la personne à qui il est adressé. Si vous n’êtes pas le destinataire
prévu, vous êtes par les présentes avisés que toute diffusion, distribution ou reproduction
de cette communication est strictement interdite.  Si vous avez reçu ce courriel par erreur,
veuillez en aviser immédiatement l’expéditeur et le supprimer de votre système. Notez que
la transmission de courriel ne peut en aucun cas être considéré comme inviolable ou exempt
d’erreur puisque les informations qu’il contient pourraient être interceptés, corrompues,
perdues, détruites, arrivées en retard ou incomplètes ou contenir un virus.  

---------------------------------------------------------------------
To unsubscribe, e-mail: taglibs-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: taglibs-user-help@jakarta.apache.org


Mime
View raw message