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]

Responder a