Ir para conteúdo
Fórum Script Brasil

Pompeu

Membros
  • Total de itens

    136
  • Registro em

  • Última visita

Tudo que Pompeu postou

  1. Vou deixar da primeira forma que deu certo Denis ... sabe porque ... vou utilizar a procedure de dependentes para gerar outros relatorios q na verdade vai dar uns 10 mais ou menos e como os dependentes são sempre juntos com outroas informações, vou optar em deixar uma procedure de dependentes separada q assim eu posso chama-la de qualquer outra procedure q eu criar (confesso q eu nem sabia q dava pra chamar uma procedure dentro de outra rs), mas mesmo assim salvei a procedure otimizada caso eu precise, está salva e servirá de consulta para tirar dúvidas também. Cara ... se não tem noção o quanto me ajudou, como estou começando com stored procedures vai servir de referência para a criação de outras ... essas q você criou pra mim já resolveu muitas dúvidas q eu tinha Vlw mesmo Denis Abraço
  2. Denis ... deu certo ... não sei nem como agradecer ... essa rotina vai me ajudar em muitas outras q preciso ... só tive q fazer algumas alterações mas funcionou exatamente como eu precisava Muitissimo obrigado e se precisar de algo estamos aí ^^ segue código corrigido pra você ver como eu precisava: SOCIO DELIMITER $$ DROP PROCEDURE IF EXISTS `clubedec_ccsa`.`sp_cria_relatorio`$$ CREATE PROCEDURE `clubedec_ccsa`.`sp_cria_relatorio` () BEGIN DECLARE r_id INTEGER; DECLARE r_tiposocio INTEGER; DECLARE r_ntitulo CHAR(3); DECLARE r_codigo INTEGER; DECLARE r_nome CHAR(50); DECLARE socio_eof INTEGER DEFAULT 0; DECLARE cur_socio CURSOR FOR SELECT id, tiposocio, ntitulo, codigo, nome FROM socios ORDER BY nome; DECLARE CONTINUE HANDLER FOR NOT FOUND SET socio_eof = 1; DELETE FROM cria_relatorio; OPEN cur_socio; FETCH cur_socio INTO r_id, r_tiposocio, r_ntitulo, r_codigo, r_nome; WHILE NOT socio_eof DO INSERT INTO cria_relatorio (id, tiposocio, ntitulo, codigo, nome) VALUES (r_id, r_tiposocio, r_ntitulo, r_codigo, r_nome); CALL sp_cria_relatorio_dep(r_id, r_ntitulo); FETCH cur_socio INTO r_id, r_tiposocio, r_ntitulo, r_codigo, r_nome; END WHILE; CLOSE cur_socio; END$$ DELIMITER;$$ DEPENDENTE DELIMITER $$ DROP PROCEDURE IF EXISTS `clubedec_ccsa`.`sp_cria_relatorio_dep` $$ CREATE PROCEDURE`clubedec_ccsa`.`sp_cria_relatorio_dep`(p_idsocio INTEGER, p_ntitulo CHAR(3)) BEGIN DECLARE r_idsocio INTEGER; DECLARE r_codigo_d INTEGER; DECLARE r_ntitulo_d CHAR(50); DECLARE r_nome_d CHAR(50); DECLARE r_dtnasc CHAR(10); DECLARE r_grau_parentesco CHAR(15); DECLARE r_status CHAR(7); DECLARE depen_eof INTEGER DEFAULT 0; DECLARE cur_dependente CURSOR FOR SELECT idsocio, ntitulo, codigo, nome, dtnasc, grau_parentesco, `status` FROM dependentes WHERE idsocio = p_idsocio ORDER BY codigo; DECLARE CONTINUE HANDLER FOR NOT FOUND SET depen_eof = 1; OPEN cur_dependente; FETCH cur_dependente INTO r_idsocio, r_ntitulo_d, r_codigo_d, r_nome_d, r_dtnasc, r_grau_parentesco, r_status; WHILE NOT depen_eof DO INSERT INTO cria_relatorio (idsocio, ntitulo_d, codigo_d, nome_d, dtnasc, grau_parentesco, `status`) VALUES (r_idsocio, r_ntitulo_d, r_codigo_d, r_nome_d, r_dtnasc, r_grau_parentesco, r_status); FETCH cur_dependente INTO r_idsocio, r_ntitulo_d, r_codigo_d, r_nome_d, r_dtnasc, r_grau_parentesco, r_status; END WHILE; CLOSE cur_dependente; END $$ DELIMITER ; Um grande abraço amigo
  3. estou testando aqui ok ... daqui a pouco retorno dizendo se deu certo mas a princípio sim ^^
  4. Pompeu

    phpMyAdmin

    RodrigoMT ... responda como resolvido caso tenha dado certo ok Abraço
  5. na verdade eu precisaria de uma resposta assim para gerar o relatorio: SOCIO JOAO dep maria dep jose SOCIO PEDRO dep marcos dep cicero Etc, e caso o socio não tenha dependentes aparece somente o nome dele é isso ... e muitissimo obrigado pela atenção
  6. segue estrutura das tabelas: Socios: -- -- Estrutura da tabela `socios` -- CREATE TABLE IF NOT EXISTS `socios` ( `id` int(11) NOT NULL, `idsociop` int(11) default NULL, `tiposocio` int(11) NOT NULL, `desctiposocio` varchar(22) default NULL, `ntitulo` varchar(3) NOT NULL, `codigo` int(11) NOT NULL, `nome` varchar(50) NOT NULL, `endereco` varchar(50) default NULL, `numero` varchar(4) default NULL, `cidade` varchar(25) default NULL, `foneres` varchar(14) default NULL, `celular` varchar(14) default NULL, `bairro` varchar(25) default NULL, `cep` varchar(9) default NULL, `dtnasc` varchar(10) default NULL, `profissao` varchar(20) default NULL, `cpf` varchar(14) default NULL, `rg` varchar(12) default NULL, `estadocivil` varchar(15) default NULL, `email` varchar(50) default NULL, `dtinclusao` varchar(10) default NULL, `dtbaixa` varchar(10) default NULL, `motivo` varchar(30) default NULL, `tiposociob` int(11) default NULL, `codigosociob` int(11) default NULL, `nomesociob` varchar(50) default NULL, `status` varchar(12) default 'A', `codigodep` int(11) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Dependentes: -- -- Estrutura da tabela `dependentes` -- CREATE TABLE IF NOT EXISTS `dependentes` ( `id` int(11) NOT NULL default '0', `idsocio` int(11) default NULL, `tiposocio` int(11) NOT NULL, `ntitulo` varchar(3) default NULL, `codigo` int(11) default NULL, `nome` varchar(50) default NULL, `dtnasc` varchar(10) default NULL, `grau_parentesco` varchar(15) default NULL, `status` varchar(7) default NULL, `dtbaixa` varchar(10) default NULL, `motivo` varchar(30) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Cria Relatorio: -- -- Estrutura da tabela `cria_relatorio` -- CREATE TABLE IF NOT EXISTS `cria_relatorio` ( `id` int(11) default NULL, `tiposocio` int(11) default NULL, `ntitulo` varchar(3) default NULL, `codigo` int(11) default NULL, `nome` varchar(50) default NULL, `idsocio` int(11) default NULL, `codigo_d` int(11) default NULL, `nome_d` varchar(50) default NULL, `dtnasc` varchar(10) default NULL, `grau_parentesco` varchar(15) default NULL, `status` varchar(7) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Obrigado Denis
  7. Pompeu

    phpMyAdmin

    Olá RodrigoMT ... eu instalei o GB Mural e achei um erro no arquivo "mensagens.php" e corrigi, você pode fazer o download pelo link www.claranet.com.br/gbmural/download/mensagens.zip troque esse arquivo na sua pasta do GB. Agora vamos lá, na verdade você não tem que utilizar o phpmyadmin e sim o cpanel vou explicar porque. você tem q criar um banco de dados através do cpanel (pode ser qualquer nome) e um usuario e feito isso adicionar o usuário ao banco de dados que você criou e dar todos os privilegios de acesso a ele. Após, (eu faço via FTP) mande todos os arquivos mesnos o "instalar.htm" para a pasta que você criou em seu dominio exemplo "www.claranet.com.br/gbmural" q foi o que eu fiz depois através do cpanel você terá q alterar as permissões do arquivo "log.txt" através do seguinte caminho: entre no Cpanel, clique em ARQUIVOS depois em GERENCIADOR DE ARQUIVOS depois DOCUMENTOS ROOT PARA (selecione seu domínio) e clique no botão "IR" , vai abrir um gerenciador de arquivos como se fosse um FTP, clique na pasta que esta o gbmural (obs clique no desenho de uma pasta e não na escrita "gbmural" senão ele não entra na pasta onde está o arquivo "log.txt"), clique sobre o arquivo "log.txt, no seu lago direito vai aparecer algumas opções, clique em CHANGE PERMISSIONS ou ALTERAR PERMISSÕES , selecione todos os quadadinhos até ficar com o resultado 777, clique em ALTERAR, pronto, seu banco de dados e permissões está pronto. Agora atraves do seu navegador você vai executar o arquivo "table.php" exemplo "www.claranet.com.br/table.php" isso vai criar as tabelas no banco de dados que você criou, após você vai executar o arquivo "usuarios.php" exemplo "www.claranet.com.br/usuarios.php" isso vai permitir você criar um usuario e senha para a parte de administrador do gbmural, apos isso, altere o nome do arquivo "usuarios.php" para um outro nome qualquer só pra outra pessoa não alterar o nome de usuario e senha do seu GBMural. PRONTO agora é só entrar no endereço onde está os arquivos do gbmural exemplo: www.claranet.com.br/gbmural e vai aparecer a pagina index pra você poder mecher, depois você ve qual cor você quer e outras coisas mais Entre nesse endereço e você vai ver que está funcionando direitinho "www.claranet.com.br/gbmural" Boa Sorte Esqueci de citar a configuração do config.php ## Configurações do Banco de Dados $db = Array(); $db[nome] = "nome_do_seu_banco_de_dados"; $db[host] = "deixe LOCALHOST"; $db[user] = "nome_de_usuario_que_vc_criou_no_cpanel_para_o_banco_de_dados"; $db[senha] = "senha_do_usuario"; Olha como ficou o meu: ## Configurações do Banco de Dados $db = Array(); $db[nome] = "claranet_teste"; $db[host] = "localhost"; $db[user] = "claranet_teste"; $db[senha] = "teste"; Boa Sorte
  8. alguém poderia me ajudar a fazer uma stored procedure baseada nessa rotina feita em Delphi, já tentei de tudo quanto é forma mas não entendo muito de cursores ? DTM.TBSocios.Active := False; DTM.TBSocios.SQL.Clear; DTM.TBSocios.SQL.Add ('Select * from socios'); DTM.TBSocios.SQL.Add ('order by nome'); DTM.TBSocios.Active := True; DTM.TBSocios.First; while not DTM.TBSocios.Eof do begin DTMRelatorios.TBRelatorios.Close; DTMRelatorios.TBRelatorios.SQL.Clear; DTMRelatorios.TBRelatorios.SQL.Add('insert into cria_relatorio (id, tiposocio, ntitulo, codigo, nome) Values (' + chr(39) + DTM.TBSocios.FieldByName('id').AsString + chr(39) + ', ' + chr(39) + DTM.TBSocios.FieldByName('tiposocio').AsString + chr(39) + ', ' + chr(39) + DTM.TBSocios.FieldByName('ntitulo').AsString + chr(39) + ', ' + chr(39) + DTM.TBSocios.FieldByName('codigo').AsString + chr(39) + ', ' + chr(39) + DTM.TBSocios.FieldByName('nome').AsString + chr(39) + ')'); DTMRelatorios.TBRelatorios.ExecSQL; DTMRelatorios.TBRelatorios.Close; DTMRelatorios.TBRelatorios.SQL.Clear; DTMRelatorios.TBRelatorios.SQL.Add('commit'); DTMRelatorios.TBRelatorios.ExecSQL; DTM.TBDependentes.Active := False; DTM.TBDependentes.SQL.Clear; DTM.TBDependentes.SQL.Add ('Select * from dependentes where idsocio = ' + chr(39) + DTM.TBSocios.FieldByName('ID').AsString + chr(39) + ' AND ntitulo = ' + chr(39) + DTM.TBSocios.FieldByName('ntitulo').AsString + chr(39)); DTM.TBDependentes.SQL.Add ('order by codigo'); DTM.TBDependentes.Active := True; DTM.TBDependentes.First; while not DTM.TBDependentes.Eof do begin DTMRelatorios.TBRelatorios.Close; DTMRelatorios.TBRelatorios.SQL.Clear; DTMRelatorios.TBRelatorios.SQL.Add('insert into cria_relatorio (idsocio' + ', codigo_d' + ', nome_d' + ', dtnasc' + ', grau_parentesco' + ', status' + ') Values (' + chr(39) + DTM.TBDependentes.FieldByName('idsocio').AsString + chr(39) + ', ' + chr(39) + DTM.TBDependentes.FieldByName('codigo').AsString + chr(39) + ', ' + chr(39) + DTM.TBDependentes.FieldByName('nome').AsString + chr(39) + ', ' + chr(39) + DTM.TBDependentes.FieldByName('dtnasc').AsString + chr(39) + ', ' + chr(39) + DTM.TBDependentes.FieldByName('grau_parentesco').AsString + chr(39) + ', ' + chr(39) + DTM.TBDependentes.FieldByName('status').AsString + chr(39) + ')'); DTMRelatorios.TBRelatorios.ExecSQL; DTMRelatorios.TBRelatorios.Close; DTMRelatorios.TBRelatorios.SQL.Clear; DTMRelatorios.TBRelatorios.SQL.Add('commit'); DTMRelatorios.TBRelatorios.ExecSQL; DTM.TBDependentes.Next; end; DTM.TBSocios.Next; end; Obriado e se possível mostrar um exemplo ... Obrigado mesmo
  9. Pompeu

    Duvida

    Olá Andre ... Onde você viu isso ? analisando a teoria de "endereço" deve ser onde o banco de dados está hospedado por exemplo: um sistema que utiliza um banco de dados MYSQL se for local (na própria máquina) o endereço para acessá-lo será: LOCALHOST utilizando a porta 3306 (porta padrão) se for um banco de dados online (fora da máquina) o endereço será: HTTP://WWW.NOMEDODOMINIO.COM.BR:3306 isso é apenas exemplos ok A finalidade de se utilizar um banco de dados relacional que é o caso do MYSQL é justamente a facilidade de poder hospeda-lo tanto na máquina local quando fora dela no caso um domínio, isso é apenas umas das muitas finalidades e facilidades do MYSQL ok. Acho que deu pra entender ^^ qualquer coisa dá um toque ae
  10. Tenta isso SELECT * FROM nomedatabela ORDER BY mes, ano
  11. Pompeu

    Consulta SQL

    Saudações ... Preciso de uma ajuda pra criar (não sei se é possivel) uma consulta da seguinte forma: Tenho duas tabelas, uma PAI e outra FILHO preciso realizar a seguinte consulta JOÃO (TABELA PAI) -PEDRO (TABELA FILHO) -JOSE (TABELA FILHO) -MARIA (TABELA FILHO) MARCOS (TABELA PAI) -JOSE (TABELA FILHO) -DIMAS (TABELA FILHO) E assim sucessivamente, tentei da seguinte forma: SELECT * FROM pai, filho WHERE filho.id = pai.id Me retornou os valores mais da seguinte forma: JOÃO -PEDRO JOÃO -JOSE JOÃO -MARIA MARCOS -JOSE MARCOS -DIMAS E não é isso que eu quero. Acho que deu pra explicar bem. Vou precisar dessa consulta pra criar um relatório. Obrigado a todos antecipadamente ^^
×
×
  • Criar Novo...