Sandro,
j� fiz a substitui��o, mas n�o funcionou. Tentei fazer algumas modifica��es
e aconteceu o seguinte, no c�digo abaixo: da maneira como est� n�o aparece
nada no browser, mas quando substituo a linha
>>   statement=connection.prepareStatement("SELECT * FROM AGENDA WHERE NOME
LIKE ?");
>>   statement.setString(1,"%davi%");
por qualquer uma dos blocos de instru��es comentados, os valores desejados
s�o retornados. N�o sei se tem haver, mas o SGBD que estou utilizando �
Microsoft SQL Server.
Antecipadamente, obrigado a todos.

import java.io.*;
import javax.servlet.*;
import java.sql.*;

public class ServletPrepared extends GenericServlet
{

 public void service(ServletRequest req, ServletResponse res)
 {
  ResultSet rset;
  PrintWriter out;
  Connection connection;
  PreparedStatement statement;
  String tmp;

  try
  {
   out=res.getWriter();
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   connection=DriverManager.getConnection("jdbc:odbc:webapp","sa","");

// * Primeiro bloco de instru��es
// *   statement=connection.prepareStatement("SELECT * FROM AGENDA WHERE
CODIGO > ?");
// *  statement.setInt(1,1);


// * Segundo bloco de instru��es
// *  statement=connection.prepareStatement("SELECT * FROM AGENDA WHERE NOME
LIKE '%davi%'");

   statement=connection.prepareStatement("SELECT * FROM AGENDA WHERE NOME
LIKE ?");
   statement.setString(1,"%davi%");

   rset=statement.executeQuery();
   while (rset.next())
   {
    out.print(rset.getString(2)+"<br>");
   }
   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());
  }

 }
}


----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Friday, September 27, 2002 9:59 AM
Subject: RES: [enterprise-list] PreparedStatement


Quer ter seu pr�prio endere�o na Internet?
Garanta j� o seu e ainda ganhe cinco e-mails personalizados.
Dom�niosBOL - http://dominios.bol.com.br


Troque as linhas

>>   statement=connection.prepareStatement("SELECT * FROM AGENDA WHERE NOME
LIKE '%?%'");
>>   statement.setString(1,"davi");

para

>>   statement=connection.prepareStatement("SELECT * FROM AGENDA WHERE NOME
LIKE ?");
>>   statement.setString(1,"%davi%");



Sandro Toledo


-----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(FilterChainServlet.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(HttpRequest.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]




---------------------------------------------------------------------
Para cancelar a subscri��o, envie mensagem para: 
[EMAIL PROTECTED]
Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED]

Responder a