Esse é um estilo de programação. Por exemplo num insert, faz-se apenas com o
id, ou seja, insere-se uma linha em branco. Depois faz-se um update com os
dados ao insert_id. É útil para um sistema de alto débito com muitos
inserts. Reduz-se ao mínimo o tempo de insert. Depois temos todo o tempo do
mundo para fazer o update pois o id já está reservado.

// Zen



2009/2/13 Paulo Balzi <[email protected]>

> Emidio, quando eu fiz um curso de Java, o instrutor falou que não devemos
> deixar que o banco acuse o erro, ou seja, deixar dar erro de integridade
> referencial, chave duplicada, essas coisas.
> Ele disse que para o banco isso é muito oneroso, gasta muito recurso,
> podendo deixar a aplicação lenta, lógico que levando em conta um sistema com
> muito acesso.
>
> Ele falou que é melhor executarmos alguns selects pra tentar tratar o
> problema antes da inserção ou deleção.
> De acordo com ele, o uso de selects não onera tanto o banco de dados quanto
> uma interrupção.
> e ele ainda disse que, select count(*), pode usar a vontade.
>
> eu nunca consegui testar isso, mas vale a dica (eu acho :) )
>
> espero ter ajudado em alguma coisa.
>
>
>
> 2009/2/13 Emidio Leite <[email protected]>
>
>> Olá a todos, será que alguém saberia informar como poderia fazer um
>> tratamento dos erros gerados pelo banco de dados no CI, por exemplo:
>>
>> Quando tentamos inserir um registro com uma chave duplicada, o banco de
>> dados (no meu caso MySQL) retorna um erro e o CI captura esse erro
>> retornando uma mensagem formatada. O mesmo ocorre quando usamos integridade
>> referencial, ao tentar remover um registro marcado como restrict em seu
>> relacionamento, o banco de dados retorna um erro e o CI captura o erro e
>> exibe a mensagem pra gente.
>>
>> Existe alguma forma de capturar tal erro gerado pelo banco de dados, com o
>> objetivo de manipula-lo, para posterior exibição da informação ao usuario?
>> ou seja, algo como: se ao tentar cadastrar um registro com a chave primária
>> já existente exibir ao usuario que a chave já está cadastrada.
>>
>> Na tentativa de solucionar o problema, fiz algo do tipo no meu MODEL:
>>
>> function excluir ($codigo){
>>         $this->db->where('codigo_mar', $codigo);
>>         $this->db->delete('marca_equipamento');
>>         return $this->db->_error_number();
>> }
>>
>> e desativei a mensagem padrão do CI, mudando $db['default']['db_debug']
>> para  FALSE:
>>
>> $db['default']['db_debug'] = FALSE;
>>
>> no meu controlador eu avalio o código do erro retornado:
>>
>> -se o erro retornado é 0(zero), tudo ocorreu bem.
>> -senão verifico o código do erro e exibo a mensagem para cada erro
>> específico.
>>
>>  $retorno = $this->marca_equipamento_model->excluir($codigo);
>>  if ( $retorno == '0'){
>>       echo "OK!";
>>  }else{
>>       echo "erro " . $retorno;
>>  }
>>
>> Não sei se esse é o melhor método, gostaria da opinião do pessoal sobre a
>> melhor forma de tratar esse problema.
>>
>> Agradeço desde já
>>
>>
>> _______________________________________________
>> Lista mailing list
>> [email protected]
>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>>
>
>
> --
> Paulo Balzi
>
> _______________________________________________
> Lista mailing list
> [email protected]
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
>
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

Responder a