Como usar o sql em um aplicativo
Para usar o SQL em um aplicativo, você tem que combiná-lo com um processual
Conteúdo
Felizmente, os pontos fortes do SQL tendem a compensar as fraquezas de linguagens procedurais, e os pontos fortes das linguagens procedurais são nas áreas onde SQL é fraca. Ao combinar os dois, você pode construir aplicações poderosas com uma ampla gama de capacidades.
Recentemente, orientada para o objecto de desenvolvimento rápido de aplicações (RAD) ferramentas, como Visual Studio, da Microsoft eo ambiente Eclipse open-source, têm aparecido, que incorporam o código SQL em aplicativos desenvolvidos por manipular objetos na tela em vez de escrever código processual.
Mantenha-se atento para o asterisco
O asterisco (*) Serve como um substituto abreviação para “todas as colunas na tabela.” Se a tabela tem várias colunas, o asterisco pode salvar um monte de digitação. No entanto, usando o asterisco desta forma é problemático quando você usa SQL em um programa aplicativo. Após a sua aplicação é escrita, você ou alguém pode adicionar novas colunas a uma tabela ou apagar os antigos.
Se o fizer, muda o significado de “todas as colunas.” Quando seu aplicativo especifica “todas as colunas” com um asterisco, pode recuperar diferentes daqueles que pensa que está ficando colunas.
Tal mudança para uma tabela não afeta os programas existentes até que eles têm de ser recompilados para corrigir um erro ou fazer alguma mudança, talvez meses após a alteração foi feita. Em seguida, o efeito da * wildcard se expande para incluir todas as colunas agora circulante. Esta mudança pode causar o aplicativo a falhar de forma não relacionada com a correção de bug (ou outras alterações), criando o seu próprio depuração pessoal pesadelo.
Para ser seguro, especifique os nomes das colunas explicitamente em um aplicativo em vez de usar o curinga asterisco.
pontos fortes e fracos SQL
Se a informação importante é enterrado em algum lugar em uma única mesa ou banco de dados multitable, SQL dá-lhe as ferramentas necessárias para recuperá-lo. Você não precisa saber a ordem de linhas ou colunas da tabela porque o SQL não lida com linhas ou colunas individualmente. As instalações de processamento de transações SQL garantir que suas operações de banco de dados não são afetados por quaisquer outros usuários que podem ser simultaneamente acessando a mesma tabela que você é.
A grande fraqueza do SQL é a sua interface de usuário rudimentar. Ele não tem nenhuma disposição para a formatação de telas ou relatórios. Ele aceita linhas de comando a partir do teclado e envia valores recuperados para a tela do monitor, uma linha de cada vez.
Às vezes, uma força em um contexto é uma fraqueza em outro. Uma força de SQL é que ele pode operar em uma tabela inteira de uma só vez. Se a tabela tem uma linha, uma centena de linhas, ou cem mil linhas, um único SELECIONAR declaração pode extrair os dados que deseja.
SQL não pode facilmente operar em uma linha de cada vez, no entanto - e às vezes você não quer lidar com cada linha individualmente. Nesses casos, você pode usar o recurso de cursor do SQL ou você pode usar uma linguagem hospedeira processual.
pontos fortes e fracos de linguagens procedurais
linguagens procedurais são projetados para operações de uma linha-em-um-tempo, que dão o desenvolvedor do aplicativo controle preciso sobre a forma como a tabela é processada. Este controle detalhado é uma grande força de linguagens procedurais. Mas uma fraqueza correspondente é que o desenvolvedor do aplicativo deve ter conhecimento detalhado sobre como os dados são armazenados nas tabelas de banco de dados. A ordem das colunas e linhas do banco de dados é significativo e deve ser levado em conta.
Devido à natureza passo-a-passo de linguagens procedurais, eles têm a flexibilidade para produzir telas amigáveis para entrada de dados e visualização. Você também pode produzir relatórios impressos sofisticados com qualquer layout desejado.
Problemas em combinar SQL com uma linguagem procedural
Não faz sentido tentar combinar SQL e linguagens procedurais de tal maneira que você pode se beneficiar de suas forças mútuas e não ser penalizado por suas fraquezas combinados. Tão valioso como tal combinação pode ser, você tem que superar alguns desafios antes de poder atingir esse casamento perfeito de uma forma prática.
Contrastando modos de operação
Um grande problema em combinar SQL com uma linguagem procedural é que o SQL opera em mesas de um conjunto de cada vez, enquanto que as linguagens procedurais trabalhar com eles uma linha de cada vez. Às vezes, esta questão não é um grande negócio. Você pode separar operações de conjunto de operações de linha, fazendo cada um com a ferramenta apropriada.
Mas se você quiser procurar uma mesa para registros de reuniões certas condições e executar operações diferentes nos registros dependendo se cumprem as condições, você pode ter um problema. Tal processo exige que tanto o poder de recuperação de SQL e a capacidade de ramificação de uma linguagem processual.
SQL embutido lhe dá esta combinação de capacidades. Você pode simplesmente Embutir instruções SQL em locais estratégicos dentro de um programa que você tenha escrito em uma linguagem procedural convencional.
incompatibilidades de tipos de dados
Outro obstáculo para a integração harmoniosa de SQL com qualquer linguagem procedural é que tipos de dados do SQL diferem dos tipos de dados de todas as principais línguas processuais. Esta circunstância não deveria ser surpreendente, porque os tipos de dados definidos para qualquer linguagem procedural são diferentes dos tipos para as outras línguas processuais.
Você pode olhar do alto e baixo, mas você não vai encontrar nenhuma padronização dos tipos de dados através das línguas. Em SQL libera antes de SQL-92, do tipo de dados incompatibilidade era uma grande preocupação. No SQL-92 (e também em versões subsequentes do padrão SQL), o FUNDIDA declaração aborda o problema.