Jump to content

Archived

This topic is now archived and is closed to further replies.

MatheusMouraoficial

Conexão com o Banco de Dados

Recommended Posts

Boa tarde,
Gente estou desenvolvendo uma aplicação simples com interface gráfica e banco dados como tudo orientado a objeto, porém ainda sou novo na OO.
Eis o problema:
Estou tentando conectar no banco de dados, mas a conexão dá erro. O código que eu tento conexão é esse:

#Interface para modelar os dados

from Banco import Banco

class Pacientes_Manipula(object):
#Quando a classe Pacientes_Manipula for instânciada ela pegará as informações da interface gráfica e passará para
#a classe Pacientes_Manipula.
def __init__(self, pac_nome, pac_nome_mae, pac_data_nasc, pac_num_sus, pac_cpf, pac_rg, pac_endereco, pac_telefone):
self.info = {}
self.pac_nome = pac_nome
self.pac_nome_mae = pac_nome_mae
self.pac_data_nasc = pac_data_nasc
self.pac_num_sus = pac_num_sus
self.pac_cpf = pac_cpf
self.pac_rg = pac_rg
self.pac_endereco = pac_endereco
self.pac_telefone = pac_telefone
def gravarPacientes(self):
#Criar conexão com o banco de dados
banco = Banco() #Instancio a classe Banco
try:
c = banco.conexao.cursor() #Cria o cursor para manipular os dados no Db
c.execute("""INSERT INTO Pacientes(pac_nome, pac_nome_mae, pac_data_nasc, pac_num_sus, pac_cpf, pac_rg, pac_endereco,
pac_telefone) VALUES (?, ?, ?, ?, ?, ?, ?, ?), (pac_nome, pac_nome_mae, pac_data_nasc, pac_num_sus, pac_cpf,
pac_rg, pac_endereco,
pac_telefone )""")
banco.conexao.commit()
c.close()
print("Dados gravados com sucesso. ")
except:
print("Nao foi possivel conectar com o banco de dados. ")

teste = Pacientes_Manipula('Matheus ', 'Marina', '25/07/1991', '232423232', '11192985506', '003007443', 'rua araxa','96624578')
teste.gravarPacientes()

 

O código que eu fiz do Banco de dados é esse:

 

#Criando Banco
#Criar conexão com o Db
#Criar as tabelas
import sqlite3
class Banco():
def __init__(self):
self.conexao = sqlite3.connect('banco.db') #Inicia conexao e criação do DB
self.createTable() #Inicializa o objeto e chama essa função
def createTable(self):
c = self.conexao.cursor() #Cria o cursor para inserir/alterar/ delatar coisa no DB
c.execute("""CREATE TABLE IF NOT EXISTS Pacientes(pac_prontuario INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, pac_nome TEXT,
pac_nome_mae TEXT,
pac_data_nasc TEXT, pac_num_sus TEXT, pac_cpf TEXT,
pac_rg, pac_endereco, pac_telefone )""") # As três aspas que estão no ínicio e no fim permitem escrever em múltiplas linhas
self.conexao.commit() #Grava os dados no banco
c.close()#Fecha conexão com o banco
Desde já agradeço a atenção

Share this post


Link to post
Share on other sites

  • Similar Content

    • By Kellison Ruan
      Acho que não fui tão claro no título, portanto irei esmiuçar melhor aqui...
       
      É o seguinte, quero saber se há algum jeito de pegar as linhas de uma coluna q está em VARCHAR com informações do tipo "4 PONTOS DE ILUMINAÇÃO", dessa informação pretendo retirar somente o número que em questão é o "4" e colocá-lo em outra coluna INTEGER. Há essa possibilidade? Detalhe, as vezes as informações não está seguindo um padrão de vim somente como "4 PONTOS DE ILUMINAÇÃO" às vezes vêm dados com mais informações númericas que precisa distinguir, por exemplo, a mim só interessa pegar números que vem antecedendo as palavras "PONTOS", "PTOS", "PTS", têm algum jeito de distinguir isso?
    • By Vitor Buss
      Boa tarde pessoal, estou atras de alguém que possa me ajudar com um trabalho da minha faculdade, ele não é tão complexo e estou disposto a pagar por uma pessoa que possa me ajudar a realizar este trabalho que esta dividido em 4 etapas.
       
       Etapa 1-  A empresa TechLogica tem vários empregados e precisa implementar um sistema de gerenciamento de projetos. Após várias reuniões e discussões com os responsáveis e usuários do sistema, observou-se que são necessários os dados pessoais e o salário de cada empregado.
      Cada empregado trabalha em um departamento e cada departamento pode ter vários colaboradores, sendo um deles o gerente. Cada empregado tem um supervisor e este pode supervisionar vários empregados. O empregado pode ter nenhum, um ou vários dependentes, sendo necessários os dados pessoais de cada dependente.
      Além disso, existem vários projetos na empresa, sendo preciso armazenar a data de início, participantes, etapas e atas de reuniões. Cada projeto pode ter um ou mais empregados trabalhando nele, da mesma forma que um empregado pode trabalhar em nenhum, um ou vários projetos. Cada projeto pode pertencer a um ou vários departamentos.
       Diante disso:
      Crie o MER com as entidades, relacionamentos, cardinalidades, atributos, chaves primárias e estrangeiras. Você pode fazer no caderno, editor de texto ou em uma ferramenta de case. Normalize até a 3ª forma normal.  
      Etapa 2 
      Utilizando comandos SQL (script) – utilize a interface gráfica somente para rodar os scripts nesta etapa –, crie o banco de dados, com entidades, relacionamentos, chaves primárias e estrangeiras. Insira 15 registros em cada tabela. Utilizando o comando Select, verifique todos os registros de cada tabela. Apague todos os registros de todas as tabelas. Observe a ordem correta para apagar os registros, de forma a obedecer à integridade referencial. Execute novamente os scripts para inserir os registros. O resultado desta etapa são o banco criado no SGBD e os scripts SQL utilizados para executar todos os passos.
       
      Etapa 3 
      Crie um stored procedure que receba um valor como parâmetro de input. Dentro do stored procedure dê aumento de salário, de acordo com o percentual recebido, a todos funcionários. Utilize o conceito de transação. Crie uma view que mostre o nome de todos os empregados e, para aqueles com dependentes, o nome de cada dependente. Utilizando SQL, crie o comando para mostrar: o nome do empregado com maior salário; o nome do empregado com maior salário e o valor deste; o nome do empregado e respectivo salário, ordenando do maior para o menor valor; a média de salário de empregados do gênero masculino; a média de salário de empregados do gênero feminino; o nome dos empregados que são gerentes; o nome dos empregados que trabalham em um ou mais projetos. O resultado desta etapa são os scripts SQL utilizados para executar todos os passos.
       
      Etapa 4 
      Explique de forma discursiva (com editor de texto – Word, por exemplo) quando deve ser feito o backup de um banco de dados, cuja carga de dados é feita todos os sábados. Justifique. Para o banco de dados desenvolvido nesta ATP, crie um plano de manutenção de backup obedecendo às seguintes regras: backup completo todos os domingos, backup incremental (ou diferencial) todas as quartas e backup de log de transação a cada 15 minutos. Considerando os passos anteriores, analise as queries e indique três índices que poderiam ser criados. Justifique (utilize editor de texto – Word, por exemplo).
    • By devenr
      Estou com dificuldade na criação de uma procedure que receba três valores numéricos e insira um registro na tabela abaixo:
       
       
      TB_MAIORES NUMERO1 Primeiro valor NUMERO2 Segundo valor NUMERO3 Terceiro valor MAIOR Maior valor entre (NUMERO1, NUMERO2 e NUMERO3)
    • By Selena
      Olá, amigos!
       
      Gostaria de uma indicação de curso de infra voltado para dba's. Sempre trabalhei em empresas onde as áreas de infra e banco eram bem separadas, então eu atuava somente na minha parte, pois, a equipe de infra já sabia as providencias a serem tomadas antes que eu precisasse implementar uma solução de banco. Mas agora trabalho em uma empresa que nunca teve dba e a infra de lá não tem esse conhecimento prévio. Resumindo: preciso de um curso de infra (especialmente redes) que me dê conhecimentos apenas para indicar ao profissionais de infra o que eles devem implementar na parte de infraestrutura caso eu precise instalar um cluster ou então implantar uma solução tipo o always on do SQL, por exemplo. Nunca fui boa de infra, então preciso de ajuda. Não quero ficar f*** na área, apenas saber o que é necessário para dba's. Alguém sabe me indicar por favor?
    • By Lucassgso
      Olá pessoal, estou aprendendo agora relacionamentos de tabelas porém tô muito em dúvida, tenho uma pergunta:
      2)Contar quantos alunos existem em cada curso, mostrando o nome do curso e o total de alunos. 
      Estou usando sqldeveloper da oracle!
       
      Como eu faço isso? Vou precisar alguma subquery que faça a contagem antes? Pq eu tentei de várias formas usando JOIN, USING mas acho que estou fazendo algo errado, helllpppp! 
      #######################
       
      Aqui tem a estrutura da tabela pronta caso ajude.
      ####################### Curso Id_Curso – Numérico(6) – Campo Chave Nm_Curso - Varchar2(50) – Obrigatório Ds_Departamento–Varchar2(50) – Obrigatório Aluno Id_RGM – Numérico(6) – Campo Chave Nm_Aluno – Varchar2(50) – Obrigatório Ds_Endereco – Varchar2(50) – Obrigatório Ds_Bairro – Varchar2(50) – Obrigatório Ds_Cidade – Varchar2(50) – Obrigatório ID_CEP – Varchar2(8) – Obrigatório DS_Senha – Varchar2(15) – Obrigatório Id_Curso – Numérico(6) – Obrigatório Empréstimo Id_Emprestimo – Numérico(6) – Campo Chave Nm_Bibliotecario – Varchar2(50) – Obrigatório Dt_Emprestimo – Data – Obrigatório Dt_Devolucao – Data – Obrigatório Dt_Previsao – Data – Obrigatório Id_RGM – Numérico(6) – Obrigatório Itens de Empréstimo Id_Emprestimo – Numérico(6) – Campo Chave Id_Exemplar – Numérico(6) – Campo Chave Id_Livro – Numérico(6) – Campo Chave Ds_observacao – Varchar2(50) Exemplar Id_Exemplar – Numérico(6) – Campo Chave Id_Livro – Numérico(6) – Campo Chave Fl_Situacao – Varchar2(1) Aceitando somente S ou N Livro Id_livro – Numérico(6) – Campo Chave Nm_Livro – Varchar2(50) – Obrigatório Nm_Editora – Varchar2(50) – Obrigatório Nm_Autor – Varchar2(50) – Obrigatório Ds_Volume – Varchar2(50) – Obrigatório Vl_Valor – Numérico(12,2) – Obrigatório OBS.: Elaborar os relacionamentos e regras de constraint.  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.