Linha SELECT

4 respostas
I

Olá amigos,

Veja o select abaixo:

linhaSQL = "SELECT Nome FROM Clientes WHERE ID = " + numeroCliente;

O problema é quando a variável numeroCliente estiver vazia.

Pergunto:

Existe uma maneira de fazer esse select utilizando algum metodo para
preparar o parâmetro numeroCliente?

No aguardo de uma resposta

Valeu.

4 Respostas

T

Vc quer resgatar o nome de um cliente específico(pelo que está no select).
Caso o numeroClinte vier vazio em alguns bancos dão erros e outros não retornam nada.
Mas eu não entendi foi o porque de numeroClinte voltar vazio.
Caso queira recuperar todos os cliente faça “SELECT Nome FROM Clientes”

I

Olá amigo,

Na verdade, quando eu programo Delphi, utilizo o seguinte:

linhaSQL = "SELECT Nome FROM Clientes WHERE ID = :prIDCliente"; ParamByName( "prIDCliente" ).AsString := numeroCliente;

Com isso, nao me preocupo o que o usuário irá colocar em “numeroCliente”.

No exemplo que enviei na msg anterior, se o usuario nao colocar nada em “numeroCliente”, a linhaSQL fica assim:

“SELECT Nome FROM Clientes WHERE ID =”

Isso dá erro quando executar.

Enfim, eu gostaria de saber se existe algo em Java similar ao meu “ParamByName” acima.

Eu já ouvi falar dem um “preparement”. tem alguma coisa a ver?

Valeu!

M

ibispo,

usa o Statement ou preparedStatement. Alem de deixar o codigo mais claro, eh mais facil de usar e evita injeção de sql pelo usuario:

linhaSQL = "SELECT Nome FROM Clientes ";
if (numeroClientes != null) {
    linhaSQL += " WHERE ID = ?";
} 

PreparedStatement ps = conexao.preparedStatement();

if (numeroClientes != null) {
    ps.setObject(1,numeroClientes);
} 

ResultSet rs = ps.executeQuery();

Qualquer duvida da uma olhada no javaDoc…

I

Valeu galera pelas dicas.

A medida em que eu ficar mais “ligero” vou poder prestar apoio aos novatos.

Grande abraco a todos!

Bispo

Criado 12 de abril de 2007
Ultima resposta 12 de abr. de 2007
Respostas 4
Participantes 3