Tenho a impress�o que em: statement=connection.prepareStatement("SELECT * FROM
AGENDA WHERE NOME LIKE '%?%'"); ele n�o entendeu a ? como um parametro por estar entre
'', caracterizando texto normal do sql. Tente fazer dessa forma:
statement=connection.prepareStatement("SELECT * FROM AGENDA WHERE NOME LIKE ?");
e passar "%davi%" como parametro. N�o sei se vai dar certo, pois n�o testei. Tomara
que funcione.
Falou!
===========================================
Francisco Deisimar Nobre J�nior
Analista de Sistemas - CIT - M. Dias Branco
===========================================
> -----Mensagem original-----
> De: Davi Medeiros Cabral [mailto:[EMAIL PROTECTED]]
> Enviada em: sexta-feira, 27 de setembro de 2002 00:46
> Para: [EMAIL PROTECTED]
> Assunto: [enterprise-list] PreparedStatement
>
>
> Numa conex�o com o banco de dados, o PreparedStatement �
> adquado para ser
> utilizado com um comando SELECT? Por exemplo, o seguinte c�digo n�o
> funcionou comigo (tentei colocar da maneira mais resumida que
> consegui).
>
> import java.io.*;
> import javax.servlet.*;
> import java.sql.*;
>
> public class ServletPrepared extends GenericServlet
> {
>
> public void service(ServletRequest req, ServletResponse res)
> {
> ResultSet result;
> PrintWriter out;
> Connection connection;
> PreparedStatement statement;
>
> try
> {
> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
> connection=DriverManager.getConnection("jdbc:odbc:webapp");
> statement=connection.prepareStatement("SELECT * FROM
> AGENDA WHERE NOME
> LIKE '%?%'");
> statement.setString(1,"davi");
> result=statement.executeQuery();
> if (result!=null)
> {
> out=res.getWriter();
> while(result.next())
> out.print(result.getString(1));
> out.flush();
> }
> connection.close();
> }
> catch(ClassNotFoundException e)
> {
> System.out.println("Driver unavailabe: "+e.getMessage());
> }
> catch(IOException e)
> {
> System.out.println(e.getMessage());
> }
> catch(SQLException e)
> {
> System.out.println(e.getMessage());
> }
>
> }
> }
>
> O erro gerado foi:
>
> java.lang.NullPointerException
> at ServletPrepared.service(ServletPrepared.java:35)
> at
> com.caucho.server.http.FilterChainServlet.doFilter(FilterChain
> Servlet.java:9
> 6)
> at com.caucho.server.http.Invocation.service(Invocation.java:312)
> at
> com.caucho.server.http.CacheInvocation.service(CacheInvocation
> .java:135)
> at
> com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:221)
> at
> com.caucho.server.http.HttpRequest.handleConnection(HttpReques
> t.java:163)
> at com.caucho.server.TcpConnection.run(TcpConnection.java:137)
> at java.lang.Thread.run(Thread.java:484)
>
> O script da tabela utilizada foi o seguinte:
>
> CREATE TABLE [dbo].[Agenda] (
> [Codigo] [int] IDENTITY (1, 1) NOT NULL ,
> [Nome] [varchar] (50) NOT NULL ,
> [Fone] [char] (10) NOT NULL ,
> [EMail] [varchar] (20) NULL
> )
>
>
> ---------------------------------------------------------------------
> Para cancelar a subscri��o, envie mensagem para:
> [EMAIL PROTECTED]
> Para comandos adicionais, envie mensagem para:
> [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
Para cancelar a subscri��o, envie mensagem para:
[EMAIL PROTECTED]
Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED]