Re:Duvida mySQL

7 respostas
T

Não seria

insert into tb_cortesia  ... values ...

(:?)

Não se esqueça - a ordem dos tratores altera o viaduto.

7 Respostas

Fabiano

Caro everson_z, seu prepareStatement deveria ser assim

insert into tb_cortesia (nome, telefone, email, cpf, objetivo, unidade) values (?,?,?,?,?,?)

No MySQL o campo que contém auto_increment não é incluído no SQL. Faça esse teste e poste novamente.
Somente uma observação: você colocou o campo id_franquia mas na sua tabela só tem o id_cortesia, o que está errado?

Sds

Fabiano

No seu primeiro e segundo erros informa que não existe a coluna OBJETIVO no seu banco MySQL. No seu primeiro post onde você mostra a estrutura da tabela não existe o campo OBJETIVO. Se você retirar ele da lista do insert e do setString deve funcionar, você já tentou?

Das formas que você utilizou a segunda é a correta, mas tirando o campo objetivo ficaria assim:

PreparedStatement stmt = con.prepareStatement("insert into tb_cortesia (nome, telefone, email, cpf, unidade) values (?,?,?,?,?)");

stmt.setString(1, nome);
stmt.setString(2, telefone);
stmt.setString(3, email);
stmt.setString(4, cpf);
stmt.setString(5, unidade);

stmt.execute();
stmt.close();

Deve funcionar, mas verifica o que é o correto: existir o campo objetivo ou não. Caso negativo você precisa alterar sua tabela.

Sds

everson_z

Como adiciona quando tem um int not null auto_increment primary ?

[color=red]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'values tb_cortesia (id_franquia, nome, telefone, email, cpf, objetivo, unidade) ' at line 1[/color]

SQL
create table tb_cortesia (id_cortesia int not null auto_increment primary  key, 
			  nome varchar(50), 
			  telefone varchar(13), 
			  email varchar(60), 
			  cpf varchar(13), 
			  unidade varchar(60));
Adiciona no SQL Com erro
try {
			con = Conexao.abreConexao();

			PreparedStatement stmt = con.prepareStatement("insert into values tb_cortesia (id_franquia, nome, telefone, email, cpf, objetivo, unidade) values (?,?,?,?,?,?,?)");
			
			stmt.setInt(1, 0);
			stmt.setString(2, nome);
			stmt.setString(3, telefone);
			stmt.setString(4, email);
			stmt.setString(5, cpf);
			stmt.setString(6, objetivo);
			stmt.setString(7, unidade);
			
			stmt.execute();
			stmt.close();

			con.close();
			
			System.out.println("Gravado");
			
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
everson_z

Não, isso foi um erro simples…

Meu problema é adicionar no primeiro campo… id_cortesia int not null auto_increment primary key

Se eu deletar o campo de auto numeração funciona

try {
			con = Conexao.abreConexao();

			PreparedStatement stmt = con.prepareStatement("insert into tb_cortesia (id_franquia, nome, telefone, email, cpf, objetivo, unidade) values (?,?,?,?,?,?,?)");
			
			stmt.setInt(1, id_franquia);
			stmt.setString(2, nome);
			stmt.setString(3, telefone);
			stmt.setString(4, email);
			stmt.setString(5, cpf);
			stmt.setString(6, objetivo);
			stmt.setString(7, unidade);
			
			stmt.execute();
			stmt.close();

			con.close();
			
			System.out.println("Gravado");
			
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}

[color=red]Unknown column ‘id_franquia’ in ‘field list’[/color]

create table tb_cortesia (id_cortesia int not null auto_increment primary key, nome varchar(50), telefone varchar(13), email varchar(60), cpf varchar(13), unidade varchar(60));

everson_z
Erro: [color=red]Unknown column 'objetivo' in 'field list'[/color]
PreparedStatement stmt = con.prepareStatement("insert into tb_cortesia (id_cortesia, nome, telefone, email, cpf, objetivo, unidade) values (?,?,?,?,?,?,?)");
			
			stmt.setInt(1, id_cortesia);
			stmt.setString(2, nome);
			stmt.setString(3, telefone);
			stmt.setString(4, email);
			stmt.setString(5, cpf);
			stmt.setString(6, objetivo);
			stmt.setString(7, unidade);
Erro: [color=red] Unknown column 'objetivo' in 'field list' [/color]
PreparedStatement stmt = con.prepareStatement("insert into tb_cortesia (nome, telefone, email, cpf, objetivo, unidade) values (?,?,?,?,?,?)");
			
			stmt.setString(1, nome);
			stmt.setString(2, telefone);
			stmt.setString(3, email);
			stmt.setString(4, cpf);
			stmt.setString(5, objetivo);
			stmt.setString(6, unidade);
			
			stmt.execute();
			stmt.close();
Erro: [color=red] Parameter index out of range (7 > number of parameters, which is 6).[/color]
con = Conexao.abreConexao();
	
					PreparedStatement stmt = con.prepareStatement("insert into tb_cortesia (nome, telefone, email, cpf, objetivo, unidade) values (?,?,?,?,?,?)");
					
					stmt.setString(2, nome);
					stmt.setString(3, telefone);
					stmt.setString(4, email);
					stmt.setString(5, cpf);
					stmt.setString(6, objetivo);
					stmt.setString(7, unidade);
					
					stmt.execute();
					stmt.close();
	
				con.close();
everson_z

Não imagino outra maneira p/ fazer isso… no java tem algum comando especial para os campos (auto_increment) ?

everson_z

Obrigado
A pressão não me deixou ver esse erro

Criado 5 de março de 2007
Ultima resposta 6 de mar. de 2007
Respostas 7
Participantes 3