Pois é, parece que afinal o meu post inicial resultante de uma discussão muito interessante ocorrida na lista microsoft.public.pt.dotnet consegui pôr pelo menos uma pessoa a pensar no assunto (não é verdade Nuno?). Em relação aos argumentos apresentados pelo Nuno no seu post, concordo com alguns deles. É verdade que o uso de SPs dá muito jeito em certas ocasiões. Contudo, tenho de discordar em relação à comparação do código escrito pela Compta vs ATX...em primeiro lugar, uma SP com centenas de linhas de código é algo que implica a definição dum algoritmo complexo no lado do servidor sql. Pode ser indicado para colocar os professores (aliás, como deves ter visto no post anterior, a verdade é que a coisa não correu lá muito bem...), mas nunca numa aplicação distribuída...imagina o que é correr 100 pedidos com esse código todo no servidor...ainda por cima, se estiveres numa transacção, o acesso ás tabelas é bloqueado até que a transacção termine...muito engraçado..portanto, uma aplicação distribuída nunca vai utilizar uma estratégia dessas...como tu dizes e bem, é adequado em algumas situações. E pelo que tu descreves, nesse caso o objectivo era construir um algoritmo que fizesse o processamento da informação (e esse processamento iria correr de forma isolada)
Uma coisa interessante (e que acho que não foi bem explicada) prende-se com os selects, insert, updates e deletes simples. É que se construires um modelo OO de acesso a base de dados vais verificar que na prática acabaram todas as instruções "complicadas" (incluindo cursores, etc, etc). Experimenta resolver um problema simples desta forma e quando deres por ti, já só estás a escrever instruções simples de sql (por exemplo, nesta semana estou a acabar um projecto em que a reutilização é muito importante; então optei por construir um modelo de objectos e, que os relacionamentos de 1 para n são representados através de colecções e em que uma operação sobre o elemento principal desencadeia automaticamente todas as operações semelhantes sobre os outros objectos associados - e, como é óbvio, cada objecto encapsula uma tabela).
Claro que concordo contigo no que diz respeito à utilização de SPs em várias situações. Por exemplo, num dos projectos que trabalhei, tinha a necessidade construir um historico dos meus dados. Por isso, todas as tabelas continham uma tabela duplicada com o nome nome_tabela_Historico por forma a ser possivel manter o historial dos dados ao longo do tempo. Neste caso, optei por utilizar SPs porque tinha de escrever algumas instruções em sql e achei que um SP era adequado.
Em relação ao C++, não posso acrescentar mais nada...apenas que, por infelicidade minha, estou condenado a não utilizá-lo nos próximos tempos (o resto do pessoal não gosta muito do C++; basta falar nisso e já começa toda a gente a fugir :) )
posted on Thursday, October 21, 2004 6:35 PM