cara insert em lot e
INSERT INTO tabela(campos1, campos2, campos3)
values(valor1, valor2, valo3),

values(valor1, valor2, valo3),
values(valor1, valor2, valo3),
values(valor1, valor2, valo3),
values(valor1, valor2, valo3),
values(valor1, valor2, valo3)

Entendeu... voce da so uma vez INSERT INTO tabela(campos1, campos2,
campos3) e depois da N vezes
values(valor1, valor2, valo3) dessa forma ele insere um bloco de codigo de
uma so vez. ao invez de 1 por 1, e MUITO mais rapido tenha certeza.


2013/12/19 Robinho de Morais <robinhodemor...@gmail.com>

> Esse é meu metodo de insert...
>
>  public int insert(T objectVO, String id )
> {
>  //Início do SQL Insert
> String sql = String.format("INSERT INTO %s (",tableName);
>
> // última chave primária criada
>  // será o retorno do método insert
> int lastInsertId = 0;
>
> //Lista de campos do VO.
>  // Lembre que os campos são dinâmicos
> //  Cada campo no VO é um campo na tabela
>  ArrayList<String> fields = new ArrayList<String>();
>
>  //Percorro todas as propriedades da classe VO. Cada propriedade
>  // possui um correspondente no campo da tabela
> for (Field classVOField : classVO.getDeclaredFields() ) {
>  fields.add(classVOField.getName());
>  }
>
> //Agora uso a lista de campos para preencher o sql
>  for (int i = 0; i < fields.size(); i++) {
>   if (!(fields.get(i).equals(id))) {
>
>  sql += fields.get(i);
>      if (i != fields.size()-2)//-2 para tirar o ID
>     sql += ",";
> }
>
>  }
>
>
> sql += ") VALUES (";
>
> for (int i = 0; i < fields.size(); i++) {
>
> //if (fields.get(i) == "id")
>  //continue;
>  if (!(fields.get(i).equals(id))) {
>  try {
> //Obtenho a definição do campo
>  Field fieldDef = classVO.getField(fields.get(i));
>
>  //uso a definição do campo para obter
> // o valor que veio do Flex.
>  sql += String.format("'%s'",fieldDef.get(objectVO));
>
> //nao poe a vírugla no último item
>  if (i != fields.size()-2)
> sql += ",";
>
> } catch (IllegalArgumentException e) {
>  e.printStackTrace();
> } catch (IllegalAccessException e) {
>  e.printStackTrace();
> } catch (SecurityException e) {
>  e.printStackTrace();
> } catch (NoSuchFieldException e) {
>  e.printStackTrace();
> }
>  }
>  }
>
>
> sql += ")";
>   JOptionPane.showMessageDialog(null, "Insert " + sql);
>
> //Agora executamos o SQL
>  try {
>
>  int rows = this.stm.executeUpdate(sql,Statement.RETURN_GENERATED_KEYS);
>
>  ResultSet resultSet = this.stm.getGeneratedKeys();
>  // this.stm.execute(sql);
>  if ( resultSet != null && resultSet.next() )
> {
>  lastInsertId = resultSet.getInt(1);
> }
>
> } catch (SQLException e) {
>  e.printStackTrace();
> }
>
>  //JOptionPane.showMessageDialog(null, "Insert " + sql + " " +
> lastInsertId);
>  return lastInsertId;
>
>  }
>
>
> como eu poderia colocar essas informações em lote e dar um insert em
> lote.....?
>
> Qualquer dúvida estou a disposição.
>
>  *Robinho*
> *Analista/Programador de Sistemas*
> *Skype: robinhocne*
> *"A fé em Deus nos faz crer no incrível, ver o invisível e realizar o
> impossível."*
>
>
> Em 19 de dezembro de 2013 17:03, Helio Antonio Francisco Silva <
> helio.afsi...@gmail.com> escreveu:
>
> Cara eu posso ta falando besteira, mas eu faria de uma forma BEMMM
>> diferente.
>>
>> Primeiro, eu arrumaria o seu codigo:
>>
>> for(var a:int = 0; a < telaLiberadas.length; a++){
>>
>> usuTela.cd_usuario   = telaLiberadas[a].cd_usuario;
>> usuTela.cd_empresa   = telaLiberadas[a].cd_empresa;
>>  usuTela.cd_tela      = telaLiberadas[a].cd_tela;
>> usuTela.in_novo      = telaLiberadas[a].in_novo;
>>  usuTela.in_pesquisar = telaLiberadas[a].in_pesquisar;
>> usuTela.in_remover   = telaLiberadas[a].in_remover;
>>  usuTela.in_salvar    = telaLiberadas[a].in_salvar;
>> usuTela.dt_cadastro  = telaLiberadas[a].dt_cadastro;
>> usuTela.hr_cadastro  = telaLiberadas[a].hr_cadastro;
>>  usuTela.cd_usucad    = telaLiberadas[a].cd_usucad;
>> usuTela.cd_usutela   = telaLiberadas[a].cd_usutela;
>>
>>  if (telaLiberadas[a].cd_usutela != 0 ){
>>           dsUsuTelas.update(usuTela,"cd_usutela");
>>  } else {
>>  //pesquisa se a tela foi inclusa no BD para atualização
>>
>> pesquisaUsuTelasID(telaLiberadas[a].cd_tela,telaLiberadas[a].cd_empresa,telaLiberadas[a].cd_usuario);
>>  if (vcd_usutela != null) {
>>  usuTela.cd_usutela   = parseInt(vcd_usutela);
>>  dsUsuTelas.update(usuTela,"cd_usutela");
>>  } else {
>>   dsUsuTelas.insert(usuTela,"cd_usutela");
>> }
>>
>> nao tem sentido e colocar o objeto varias vezes, sendo que todos sao a
>> mesma coisa e somente a chamada pra inerir ou update e diferente.
>>
>> Segundo, EU NUNCA a cada insert eu enviaria para o servidor, eu faria uma
>> coletania de objectos e ai sim enviar para o servidor e la dentro eu faria
>> o loop e inseriria varios, ate por que da pra fazer insert em lot e nao 1
>> por 1, a diferença e gritante.
>> to passando por uns problemas iguais, qualquer coisa me da um toque que
>> eu te ajudo.
>>
>>
>>
>> 2013/12/19 Robinho de Morais <robinhodemor...@gmail.com>
>>
>>> Pessoal, já tentei de várias maneiras, mas não consegui resolver o
>>> problema, vamos lá...
>>>
>>>  Tenho em um datagrid as seguintes informações
>>>
>>> <https://lh5.googleusercontent.com/-GMPEaUxu0LA/UrMxpzO6KEI/AAAAAAAAEPs/WOEMIL1duvw/s1600/Sem+t%C3%ADtulo.png>
>>>
>>> veja que eu tenho a tela 1-cadUsuarios na empresa 1 com o cd_usutela,
>>> esse cd_usutela é a chave da tabela de liberação de telas, então quer dizer
>>> que essa já está gravada no banco....
>>> ai tenho a tela 3-cadUsuEmpresas na empresa 2 que acabei de incluir no
>>> datagrid...
>>>
>>> Para salvar eu criei um loop no arraycollection do datagrid...
>>>
>>> for(var a:int = 0; a < telaLiberadas.length; a++){
>>>
>>>  if (telaLiberadas[a].cd_usutela != 0 ){
>>>  usuTela.cd_usuario   = telaLiberadas[a].cd_usuario;
>>>  usuTela.cd_empresa   = telaLiberadas[a].cd_empresa;
>>> usuTela.cd_tela      = telaLiberadas[a].cd_tela;
>>>  usuTela.in_novo      = telaLiberadas[a].in_novo;
>>> usuTela.in_pesquisar = telaLiberadas[a].in_pesquisar;
>>>  usuTela.in_remover   = telaLiberadas[a].in_remover;
>>>  usuTela.in_salvar    = telaLiberadas[a].in_salvar;
>>> usuTela.dt_cadastro  = telaLiberadas[a].dt_cadastro;
>>>  usuTela.hr_cadastro  = telaLiberadas[a].hr_cadastro;
>>> usuTela.cd_usucad    = telaLiberadas[a].cd_usucad;
>>>  usuTela.cd_usutela   = telaLiberadas[a].cd_usutela;
>>>  dsUsuTelas.update(usuTela,"cd_usutela");
>>>  } else {
>>>  usuTela.cd_usuario   = telaLiberadas[a].cd_usuario;
>>>  usuTela.cd_empresa   = telaLiberadas[a].cd_empresa;
>>> usuTela.cd_tela      = telaLiberadas[a].cd_tela;
>>>  usuTela.in_novo      = telaLiberadas[a].in_novo;
>>> usuTela.in_pesquisar = telaLiberadas[a].in_pesquisar;
>>>  usuTela.in_remover   = telaLiberadas[a].in_remover;
>>>  usuTela.in_salvar    = telaLiberadas[a].in_salvar;
>>> usuTela.dt_cadastro  = telaLiberadas[a].dt_cadastro;
>>>  usuTela.hr_cadastro  = telaLiberadas[a].hr_cadastro;
>>> usuTela.cd_usucad    = telaLiberadas[a].cd_usucad;
>>>  //pesquisa se a tela foi inclusa no BD para atualização
>>>
>>> pesquisaUsuTelasID(telaLiberadas[a].cd_tela,telaLiberadas[a].cd_empresa,telaLiberadas[a].cd_usuario);
>>>  if (vcd_usutela != null) {
>>> usuTela.cd_usutela   = parseInt(vcd_usutela);
>>>   dsUsuTelas.update(usuTela,"cd_usutela");
>>> } else {
>>>   dsUsuTelas.insert(usuTela,"cd_usutela");
>>> }
>>>
>>> o usuTela é o meu VO, então no loop eu incluo as informações no VO para
>>> fazer o insert/update através da minha função insert/update.....
>>>
>>> Quando rodo esse loop...ele bagunça o registro...veja abaixo nas
>>> imagens...
>>>
>>>
>>> <https://lh6.googleusercontent.com/-1UqyX6RRDyg/UrMz-0ivFtI/AAAAAAAAEP4/0uFOzRUZtKI/s1600/up.png>
>>>
>>> Para o primeiro registro, como está salvo no banco iria fazer uma
>>> atualização, mas veja que a empresa é 1 e tela 1 do usutela 103, mas ele
>>> está pegando do ultimo registro...
>>>
>>>
>>> e
>>>
>>>
>>>
>>> <https://lh5.googleusercontent.com/-5WpbR9Dy4VI/UrM0VVTQ4kI/AAAAAAAAEQA/cSl27BXnQmk/s1600/in.png>
>>>
>>>
>>> No insert ele inclui os registros certo...conforme a sua linha do
>>> banco....
>>>
>>>
>>> To 2 semanas tentando de várias maneiras, mas não consegui...alguém pode
>>> me ajudar....?
>>>
>>>
>>>
>>>
>>>
>>>  --
>>> --
>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>>> Para sair da lista, envie um email em branco para
>>> flexdev-unsubscr...@googlegroups.com
>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>> ---
>>> Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev"
>>> dos Grupos do Google.
>>> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
>>> envie um e-mail para flexdev+unsubscr...@googlegroups.com.
>>> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
>>>
>>
>>
>>
>> --
>> *Hélio Antonio Francisco Silva*
>> Desenvolvedor web
>> Certificado Flash developer
>> Certificado Flash Design
>> Certificado web developer
>> Consultor Microsiga / Totvs
>> Desenvolvedor ADVPL / ASP
>> Analista de sistemas e ERP Sênior.
>>
>> --
>> --
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>> Para sair da lista, envie um email em branco para
>> flexdev-unsubscr...@googlegroups.com
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>> ---
>> Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev"
>> dos Grupos do Google.
>> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
>> envie um e-mail para flexdev+unsubscr...@googlegroups.com.
>> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
>>
>
>  --
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
> Para sair da lista, envie um email em branco para
> flexdev-unsubscr...@googlegroups.com
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
> ---
> Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev"
> dos Grupos do Google.
> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
> envie um e-mail para flexdev+unsubscr...@googlegroups.com.
> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
>



-- 
*Hélio Antonio Francisco Silva*
Desenvolvedor web
Certificado Flash developer
Certificado Flash Design
Certificado web developer
Consultor Microsiga / Totvs
Desenvolvedor ADVPL / ASP
Analista de sistemas e ERP Sênior.

-- 
-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
--- 
Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" dos 
Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um 
e-mail para flexdev+unsubscr...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

Responder a