Exemplo de banco de dados
Este exemplo ilustra o uso básico do módulo do Perl DBI. O banco de dados contém registros de pessoas que queiram participar em um e-mail baseado em «serviço de pen-pal". Assinantes fornecer seu endereço de e-mail, algumas informações pessoais limitadas e um conjunto de interesses escolhidos de um conjunto predefinido de cerca de 100 tópicos possíveis. As pesquisas podem ser feitas para outros assinantes que compartilham alguns interesses em comum, e satisfazer outras restrições. O banco de dados tem apenas uma mesa, as linhas de assinantes para caracterizar este "serviço E-Pal. Cada assinante tem um endereço de email (assumido pela simplicidade para caber em um campo de 32 caracteres), o que deve ser único, e serve como a chave primária. Assinantes normalmente identificam-se como macho ou fêmea, mas não podem optar por especificar seu sexo (caso em que são classificados como "e-pessoas"). Os assinantes podem especificar restrições sobre o tipo de pessoa com quem deseja corresponder (especificando masculino, feminino, e-mail ou qualquer outra pessoa). Para simplificar, os interesses de um assinante, são representados com cinco campos de números inteiros separados. A tabela tem a seguinte definição: CREATE TABLE EPAL (email varchar (32) NOT NULL, tipo varchar (8) NOT NULL, quer varchar (8) NOT NULL, interest1 número (4), interest2 número (4), interest3 número (4), interest4 número (4 ), interest5 número (4), id_pkey CONSTRAINT PRIMARY KEY (email), type_check CONSTRAINT CHECK (tipo IN ( 'MALE', 'female', ') eperson'), CONSTRAINT CHECK want_check (quer em ( 'MALE', 'female ',' eperson ',' Qualquer '))); Restrições de verificação 'não são particularmente importantes e podem ser omitidos se o banco de dados que você usa não dá suporte a essas restrições, o código do programa essencialmente duplica essas verificações. O programa exemplo é um autônomo Perl programa de leitura de dados a partir do teclado e trabalhando diretamente com banco de dados. Os comandos podem ser dados para o programa a adicionar registros ao banco de dados ou para realizar pesquisas. O código poderia ser adaptada para formar um script CGI que aceita entrada de dados em formulários HTML, o que resultaria em um web-service com base E-Pal - algo muito mais útil do que esta versão standalone. Entrada de dados muito similares são necessários para gravar e além pesquisas. Os usuários devem digitar o seu próprio 'tipo', o 'tipo' de pessoa com quem deseja corresponder, e tem de escolher cinco interesses da lista de interesses pré-definidos, se um registro está a ser adicionado, os dados de entrada também deve incluir um e-mail endereço. Os critérios para uma correspondência com êxito na pesquisa são: O valor para 'tipo' no registro satisfaz o "querer" exigência de um pedido - com a substituição de um pedido "quero = qualquer 'combina com qualquer valor no campo tipo. O 'tipo' especificado na solicitação de pesquisa preencha o 'querer' requisito constante do registro - mais uma vez com 'qualquer' ser acompanhado por todos os tipos de pedido possível. Os dois conjuntos de interesses têm uma intersecção não-zero (interesses são representados como números no intervalo 1-100, não são necessariamente ordenados). Estes critérios combinados são difíceis de expressar como uma condição de seleção SQL; é mais fácil para o programa para recuperar todos os registros e aplicar os critérios de programação. O programa utiliza uma série de variáveis globais, e cada sub-rotina tem variáveis locais. O tamanho um pouco maior do programa aumenta o risco de uso de erros resultantes de declaração implícita de variáveis, ou a utilização de variáveis não inicializadas. Vale a pena alterar o modo do interpretador Perl para que todas as variáveis devem ser declaradas. Especificando uso estrito da directiva 'no início do programa faz essa mudança. A principal linha chama a rotina de inicialização que cria uma conexão de banco de dados e configura tabela. A principal função, então tem um "menu selecione 'manipulação loop comandos digitados pelo usuário. Os comandos são manipulados 'Adicionar', 'search', 'list' (conteúdo da lista de lista de interesse) e 'quit'. O código é: inicializar; while (1) (my print $ cmd; "Digite o comando (adicionar, busca, lista (interesses), encerrar):"; $ cmd = A rotina de inicialização cria um hash que mapeia o tema de interesse para o número identificador. Os usuários devem inserir os seus interesses e eles têm verificado, aqui, o hash serve como um sistema de pesquisa mais rápida do que a lista original. As outras tarefas para a rotina de inicialização está abrindo uma conexão banco de dados e preparação das duas uma consulta de seleção simples de SQL e uma instrução mais elaborados com parâmetros SQL que será usada para inserir registros. A instrução de inserção requer oito valores a serem ligados - e-mail, 'tipo', 'querer' e cinco identificadores de juros. Initialize (my (juros $ id, $); $ id = 0; foreach $ juros (@ InterestList) (juros interesttable $) ($ dbh = $ id; $ id + +;) $ = DBI-> connect ($ data_source, "HSimpson", "Dó", (AutoCommit => 1)) | | die "Não foi possível conectar ao db \ n"; searchHandle = $ dbh-> prepare ( "SELECT * FROM EPAL"); insertHandle = $ dbh-> prepare ( "INSERT INTO EPAL (????????)");) A função DOADD utiliza três funções auxiliares simples (owntype, wanttype, getInterests) para obter entrada do usuário. O getInterests função repetidamente solicita que o usuário até que os dados que definem cinco interesses foram digitados corretamente, ele retorna uma lista com o número identificador correspondente. Observe a chamada ao executar a função, o que especifica três argumentos explícitos e os cinco matriz interesse elemento. Isto coincide com os requisitos de oito argumentos - afinal, Perl combina todos os argumentos em uma única lista de qualquer maneira, e depois divide os argumentos dentro da função. DOADD sub (my ($ vós, desejo, $ email, @ interesses); $ você owntype =; $ = desejo wanttype; getInterests @ interesses =; print "Seu endereço de email:"; $ email = A função de pesquisa semelhante usa as funções de auxiliar (owntype, wanttype e getintersts) para obter dados que caracterizam o pesquisador. Em seguida, ele executa a consulta SQL: "selecionar tudo da tabela da EPAL». Cada registro é lido em uma lista ($ searchHandle-> fetchrow_array). Os dados recuperados são então confrontados com os dados da solicitação (algumas das costas incomum "Perl-a-frente testes condicionais" são ilustradas neste código). um artigo submetido por Michael Barrbay Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre. Importante: Este artigo "exemplo de banco de dados" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.
|
|||||
| Online: 252 users browsing the articles directory |
|
|