Bad patch file!!!!
Bobby Mitchell wrote:
>
>
> Christian Haul wrote:
>
>> On 02.Jul.2002 -- 11:36 AM, Bobby Mitchell wrote:
>>
>>>>> While using Sybase I had to remove the <esql:parameter> begin and
>>>>> end tags in order to actually edit the entry, otherwise I get an
>>>>> sql error stating that "SELECT name, department_id FROM employee
>>>>> WHERE id = ? " is an error. The id is being passed as a ? so it
>>>>> causes an error. When using Hsqldb I made no changes to the code.
>>>>>
>>>>>
>>> This behaviour is the same as before. Here is the error message:
>>>
>>>
>>> org.apache.cocoon.ProcessingException: Exception in
>>> ServerPagesGenerator.generate(): java.lang.RuntimeException: Error
>>> executing statement: SELECT name, department_id FROM employee WHERE
>>> id = ? : com.sybase.jdbc2.jdbc.SybSQLException: Implicit conversion
>>> from datatype 'CHAR' to 'INT' is not allowed. Use the CONVERT
>>> function to run this query.
>>>
>>
>> Yep, error message says it all. The example is attempting to use a
>> String to set an int column. It looks like HSQLDB is more forgiving in
>> this. Change it to
>>
>> <esql:query>
>> SELECT name, department_id FROM employee
>> WHERE id = <esql:parameter
>> type="int"><xsp:expr>Integer.parseInt(<xsp-request:get-parameter
>> name="id" default="0"/>)</xsp:expr></esql:parameter>
>> </esql:query>
>>
>> and convert the string explicitly to an integer. I've set a default of
>> "0" in case the parameter is non-existent to prevent a NPE or
>> NumberFormatException.
>> It would be great if you could go through the tutorial and look for
>> other, similar changes, that would be required to run it e.g. on
>> sybase and file a bug in bugzilla with patches.
>>
>> Chris.
>
>
>
> I applied the changes and everything works fine. I am including a patch
> file and I will also file a report on bugzilla. Thanks for the help.
>
> patch file for the directory cocoon/tutorial/docs:
> **************************************************************************
> diff -Naur tutorial/docs/edit-dept.xsp tutorial/docs.sybase/edit-dept.xsp
> --- tutorial/docs/edit-dept.xsp Tue Jul 9 09:50:57 2002
> +++ tutorial/docs.sybase/edit-dept.xsp Tue Jul 9 09:47:56 2002
> @@ -24,7 +24,7 @@
> <esql:execute-query>
> <esql:query>
> SELECT name FROM department
> - WHERE id = <esql:parameter><xsp-request:get-parameter
> name="id"/></esql:parameter>
> + WHERE id = <esql:parameter
> type="int"><xsp:expr>Integer.parseInt(<xsp-request:get-parameter
> name="id" default="0"/>)</xsp:expr></esql:parameter>
> </esql:query>
> <esql:results>
> <esql:row-results>
> diff -Naur tutorial/docs/edit-empl.xsp tutorial/docs.sybase/edit-empl.xsp
> --- tutorial/docs/edit-empl.xsp Tue Jul 9 09:50:57 2002
> +++ tutorial/docs.sybase/edit-empl.xsp Tue Jul 9 09:54:39 2002
> @@ -23,7 +23,7 @@
> <esql:execute-query>
> <esql:query>
> SELECT name, department_id FROM employee
> - WHERE id = <esql:parameter><xsp-request:get-parameter
> name="id"/></esql:parameter>
> + WHERE id = <esql:parameter
> type="int"><xsp:expr>Integer.parseInt(<xsp-request:get-parameter
> name="id" default="0"/>)</xsp:expr></esql:parameter>
> </esql:query>
> <esql:results>
> <esql:row-results>
> ***************************************************************************
Here's another:
Cut and paste the following patch into a file.
cd to the directory cocoon/tutorial and execute
patch -p0 < patchfile
***************************************************************************
diff -Naur docs/edit-dept.xsp docs.sybase/edit-dept.xsp
--- docs/edit-dept.xsp Tue Jul 9 19:53:18 2002
+++ docs.sybase/edit-dept.xsp Tue Jul 9 19:50:37 2002
@@ -24,7 +24,7 @@
<esql:execute-query>
<esql:query>
SELECT name FROM department
- WHERE id = <esql:parameter><xsp-request:get-parameter
name="id"/></esql:parameter>
+ WHERE id = <esql:parameter
type="int"><xsp:expr>Integer.parseInt(<xsp-request:get-parameter
name="id" default="0"/>)</xsp:expr></esql:parameter>
</esql:query>
<esql:results>
<esql:row-results>
diff -Naur docs/edit-empl.xsp docs.sybase/edit-empl.xsp
--- docs/edit-empl.xsp Tue Jul 9 19:53:18 2002
+++ docs.sybase/edit-empl.xsp Tue Jul 9 19:50:19 2002
@@ -23,7 +23,7 @@
<esql:execute-query>
<esql:query>
SELECT name, department_id FROM employee
- WHERE id = <esql:parameter><xsp-request:get-parameter
name="id"/></esql:parameter>
+ WHERE id = <esql:parameter
type="int"><xsp:expr>Integer.parseInt(<xsp-request:get-parameter
name="id" default="0"/>)</xsp:expr></esql:parameter>
</esql:query>
<esql:results>
<esql:row-results>
***************************************************************************
>
>
>>
>> Please follow up summarizing your problem and which suggested solution
>> / information worked for you when you consider your problem
>> solved. Add "SUMMARY: " to the subject line. This will make FAQ
>> generation and searching the list easier. In addition, it makes
>> helping you more fun. Thank you.
>>
>>
>
>
--
Robert J. (Bobby) Mitchell
Systems Administrator
NASA Institute for Advanced Concepts
555A 14th St Atlanta, Ga. 30318
Phone: (404)347-9633 Fax: (404)347-9638
---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html>
To unsubscribe, e-mail: <cocoon-users-unsubscribe@xml.apache.org>
For additional commands, e-mail: <cocoon-users-help@xml.apache.org>
|