Amigos, a coisa eh mais simples, o coringa pra microsoft nao eh '%' e sim '*',

faz um teste e ve se resolve,

[]'s

Claudio



On Mon, 30 Sep 2002 11:55:22 -0300, <[EMAIL PROTECTED]> escreveu :

> De: <[EMAIL PROTECTED]>
> Data: Mon, 30 Sep 2002 11:55:22 -0300
> Para: <[EMAIL PROTECTED]>
> Assunto: RES: [enterprise-list] PreparedStatement
> 
> 
> Deveria funcionar perfeitamente, mas Micro$oft � sempre uma exce��o � regra. Tente 
>procurar algo na base 
da Microsoft, provavelmente eles n�o implementam corretamete o padr�o Java de conex�o 
ao BD, como sempre 
Microsoft = portabilidade e compatibilidade zero.
> 
> Esse tipo de instru��o funciona em qualquer banco que eu conhe�o (Oracle, Sybase e 
>DB2), por sorte nunca 
trabalhei com o MS SQL Server.
> 
> 
> Boa Sorte,
> 
> Sandro Toledo
> 
> 
> -----Mensagem original-----
> De: Davi Medeiros Cabral [mailto:[EMAIL PROTECTED]]
> Enviada em: sexta-feira, 27 de setembro de 2002 20:31
> Para: [EMAIL PROTECTED]
> Assunto: Re: [enterprise-list] PreparedStatement
> 
> 
> 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]
> 
> 
> 
> 
> ---------------------------------------------------------------------
> 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