Entendi...vou ver se consigo aqui e qualquer coisa eu aviso. 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 18:04, Helio Antonio Francisco Silva < helio.afsi...@gmail.com> escreveu: > 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. > -- -- 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.