Jump to content

janir.matheus

Members
  • Content count

    13
  • Joined

  • Last visited

Community Reputation

0 Comum

1 Follower

About janir.matheus

Recent Profile Visitors

937 profile views
  1. janir.matheus

    Duvida com POO

    Bom dia, Preciso de ajuda ajuda para resolver o problema de SIGSEGV, basicamente tennho um zconection dentro de uma classe e recebo erro quando tento acessá-lo. Segue um trecho da classe: unit unt_classconexao; {$mode objfpc}{$H+} interface uses Classes, SysUtils, ZConnection, ZDataset; type { tConexao } tConexao = class private public vConector : TZConnection; function Listar_Usuarios:TZReadOnlyQuery; procedure Conectar_Banco; end; implementation { tConexao } function tConexao.Listar_Usuarios: TZReadOnlyQuery; var zrquery : TZReadOnlyQuery; begin Conectar_Banco; try zrquery := TZReadOnlyQuery.Create(nil); zrquery.Connection := vConector; zrquery.SQL.Clear; zrquery.SQL.Text := 'SELECT * from tbl_profissionais'; zrquery.Open; Listar_Usuarios := zrquery; finally end; end; procedure tConexao.Conectar_Banco; begin //vConector := TZConnection.Create(nil); vConector.HostName := 'localhost'; vConector.Port := 3306; vConector.Database := 'Caps'; vConector.Protocol := 'mysql-5'; vConector.User := 'root'; vConector.Password := ''; vConector.Connected := true; end; end. Após isso tento fazer uso dessa classe para popular um DBGrid: unit unt_frmprincipal; {$mode objfpc}{$H+} interface uses Classes, SysUtils, DB, Forms, Controls, Graphics, Dialogs, Menus, DBGrids, ZConnection, unt_classconexao; type { Tfrm_principal } Tfrm_principal = class(TForm) DataSource1: TDataSource; DBGrid1: TDBGrid; MainMenu_frmPrincipal: TMainMenu; MenuItem_AplicativoSair: TMenuItem; N1: TMenuItem; MenuItem_AplicativoLogin: TMenuItem; MenuItem_Aplicativo: TMenuItem; procedure MenuItem_AplicativoLoginClick(Sender: TObject); private public vConexao : tConexao; end; var frm_principal: Tfrm_principal; implementation {$R *.lfm} { Tfrm_principal } procedure Tfrm_principal.MenuItem_AplicativoLoginClick(Sender: TObject); begin //vConexao := tConexao.Create; DataSource1.DataSet := vConexao.Listar_Usuarios; end; end. A mensagem de erro que recebo dá a entender que o problema ocorre logo que o zconnection começa a ser configurado, como vocês podem ver pelos trechos comentados eu tentei instanciar o componente também sem sucesso. Não tenho experiencia com POO e tenho certeza que estou cometendo um erro bobo, então peço uma explicação sobre como resolver isso. Agradeço de antemão a quem puder me ajudar. PS. Estou usando o Lazarus.
  2. janir.matheus

    Dúvida com uma query

    Boa noite, o resultado que obtenho esta no Screenshot_2. Gostaria de chamar a atenção para o Screenshot_3, nele é possível notar que o produto 1 pertence a duas categorias e entretanto na saída da query ele aparece apenas uma vez. Seria interessante que o produto se repetisse para cada categoria.
  3. janir.matheus

    Dúvida com uma query

    Obrigado pela ajuda Motta, mas o resultado ainda não é o pretendido por mim. Vou tentar explicar melhor: Cada empresa terá seus próprios produtos, cada um dos produtos poderá (ou não) pertencer a uma ou mais categorias (tbl_catprod), o resultado que busco é supondo o cliente A os seus produtos sejam listados e sua respectivas categorias, caso um produto pertença a mais de uma categoria ele apareça em cada uma delas. Exemplo: CLIENTE A | PRODUTO 01 | CATEGORIA A CLIENTE A | PRODUTO 01 | CATEGORIA B CLIENTE A | PRODUTO 02 | CATEGORIA C CLIENTE A | PRODUTO 03 | CATEGORIA A Deu pra entender agora? Confesso que não sei por onde começar, conto com sua ajuda.
  4. janir.matheus

    Dúvida com uma query

    Boa tarde, peço ajuda dos membros desse fórum pois confesso estar completamente perdido. Tomando como base o diagrama (em anexo), preciso de uma query que retorne as empresas, seus produtos e as categorias de cada produto, sendo que cada produto pode pertencer a uma ou mais categorias. select tbl_produtos.Empresa, tbl_empresas.Nome, tbl_catprod.Categoria, tbl_classproduto.Classe, tbl_produtos.Id, tbl_produtos.Produto from tbl_produtos inner join tbl_empresas on tbl_produtos.Empresa = tbl_empresas.Id left join tbl_catprod on tbl_produtos.Id = tbl_catprod.Categoria left join tbl_classproduto on tbl_catprod.Categoria = tbl_classproduto.Id; Tentei a consulta mostrada acima mas o resultado não foi o que eu esperava. Agradeço antecipadamente pela ajuda.
  5. janir.matheus

    Duvida com Geoposition

    Obrigado pelos esclarecimentos. Entendi os códigos que você postou, fiz algumas alterações e resolvi meu problema.
  6. janir.matheus

    Duvida com Geoposition

    wanderval gostaria de agradecer sua ajuda, mas reforço que não tenho muita experiência com JavaScript. Você poderia por favor me dizer como recuperar esses valores gravados no console, pelas pesquisas que fiz não há como. E caso não haja maneira, como eu posso gravar as coordenadas numa variável? Vou precisar dessas informações em outra parte do script. Se você testou o código que eu postei, deve ter percebido que a variável apesar de ser global não estava refletindo as coordenadas. PS.: eu havia tentado também enviar esses dados através do "return" também sem sucesso. Obrigado.
  7. janir.matheus

    Duvida com Geoposition

    Bom dia, não tenho muita prática com JavaScript (tive contato apenas durante um período no CEDERJ). Ocorre que agora preciso do bendito, e não estou conseguindo sair de uma situação. Vou postar o código: <script language="JavaScript"> coordenadas = ""; //Defini essa variável segundo meus conhecimentos, por ter omitido a palavra 'var' ela é global function sucesso(posicao) { coordenadas = posicao.coords.latitude; //document.write(coordenadas); //Aqui dentro ela escreve o valor da latitude } if('geolocation' in navigator) { navigator.geolocation.getCurrentPosition(sucesso); } else { alert("Navegador incompatível com esse recurso"); } document.write(coordenadas); //Aqui eu NÃO consigo pegar o valor </script> Basicamente eu quero salvar os valores de Latitude, Longitude e Timestamp em variáveis para poder usa-las posteriormente. Conto com a vossa ajuda. Obrigado.
  8. janir.matheus

    [Resolvido] [ Dúvida ] - Inner Join

    No MySQL usei o artificio dos "Alias" também. Veja meu exemplo: SELECT tbl_pedidos.N_Pedido AS N_Pedido, tbl_itens_pedido.N_Controle AS N_Controle, tbl_pedidos.Dia AS Dia, tbl_pedidos.Cliente AS Cod_Cliente, tbl_contatos_cli.Contato AS Cliente, /*AQUI*/ tbl_pedidos.Vendedor AS Cod_Vendedor, tbl_contatos_ven.Contato AS Vendedor, /*AQUI*/ tbl_pedidos.Filial AS Cod_Filial, tbl_filiais.Filial AS Filial, tbl_itens_pedido.Produto AS Cod_Produto, tbl_produtos.Produto AS Produto, tbl_itens_pedido.Quantidade AS Quantidade, tbl_itens_pedido.Valor AS Valor, tbl_itens_pedido.Pago AS Pago from tbl_pedidos JOIN tbl_itens_pedido ON tbl_pedidos.N_Pedido = tbl_itens_pedido.N_Pedido JOIN tbl_produtos ON tbl_itens_pedido.Produto = tbl_produtos.Cod JOIN tbl_filiais ON tbl_pedidos.Filial = tbl_filiais.Cod JOIN tbl_contatos AS tbl_contatos_cli ON tbl_pedidos.Cliente = tbl_contatos_cli.Cod JOIN tbl_contatos AS tbl_contatos_ven ON tbl_pedidos.Vendedor = tbl_contatos_ven.Cod order by tbl_pedidos.Dia DESC, tbl_pedidos.Cliente, tbl_pedidos.Vendedor, tbl_itens_pedido.Pago; Observe a penúltima e antepenúltima linha.
  9. janir.matheus

    Ajuda com query mysql

    O resultado está errado. A seguinte query soma todas as entradas na tabela estoque como saída. SELECT tbl_estoque.Produto AS Cod_Produto, tbl_produtos.Produto AS Produto, tbl_estoque.Transacao AS Cod_Transacao, tbl_cat_estoque.Transacao AS Transacao, (CASE WHEN (tbl_cat_estoque.Transacao LIKE '1%') THEN SUM(tbl_estoque.Quantidade) ELSE 0 END) AS Entradas, (CASE WHEN (tbl_cat_estoque.Transacao LIKE '2%') THEN SUM(tbl_estoque.Quantidade) ELSE 0 END) AS Saidas, ( (CASE WHEN (tbl_cat_estoque.Transacao LIKE '1%') THEN SUM(tbl_estoque.Quantidade) ELSE 0 END) - (CASE WHEN (tbl_cat_estoque.Transacao LIKE '2%') THEN SUM(tbl_estoque.Quantidade) ELSE 0 END) ) as Saldo FROM tbl_estoque JOIN tbl_cat_estoque ON (tbl_estoque.Transacao = tbl_cat_estoque.Cod) JOIN tbl_produtos ON (tbl_estoque.Produto = tbl_produtos.Cod) GROUP BY tbl_estoque.Produto; Abaixo o print do resultado obtido:
  10. janir.matheus

    Ajuda com query mysql

    Obrigado Motta.
  11. janir.matheus

    Ajuda com query mysql

    Gostaria de adicionar uma coluna calculada baseada no seguinte código SELECT tbl_estoque.Produto AS Cod_Produto, tbl_produtos.Produto AS Produto, tbl_estoque.Transacao AS Cod_Transacao, tbl_cat_estoque.Transacao AS Transacao, (CASE WHEN (tbl_cat_estoque.Transacao LIKE '1%') THEN SUM(tbl_estoque.Quantidade) ELSE 0 END) AS Entradas, (CASE WHEN (tbl_cat_estoque.Transacao LIKE '2%') THEN SUM(tbl_estoque.Quantidade) ELSE 0 END) AS Saidas, /*--------------------------------------------------------------------------------*/ (SELECT Entradas-Saidas) AS Saldo /*estou tendo problemas aqui*/ /*--------------------------------------------------------------------------------*/ FROM tbl_estoque JOIN tbl_cat_estoque ON (tbl_estoque.Transacao = tbl_cat_estoque.Cod) JOIN tbl_produtos ON (tbl_estoque.Produto = tbl_produtos.Cod) GROUP BY tbl_estoque.Produto; Como resolver? Obrigado.
  12. janir.matheus

    Ajuda com query mysql

    Obrigado ShadowDLL - resolveu meu problema.
  13. janir.matheus

    Ajuda com query mysql

    Boa noite, preciso de ajuda pois não seu por onde começar: Partindo dessas 3 tabelas: Tabela 1: CREATE TABLE `tbl_cat_estoque` ( `Cod` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Atenção ao campo CHAR', `Transacao` VARCHAR(100) NOT NULL, `Descricao` TEXT NOT NULL, PRIMARY KEY (`Cod`), UNIQUE INDEX `Matricula` (`Transacao`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=2 ; Tabela 2: CREATE TABLE `tbl_estoque` ( `Cod` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `Dia` DATE NOT NULL, `Filial` INT(10) UNSIGNED NOT NULL, `Transacao` INT(10) UNSIGNED NOT NULL, `Produto` INT(10) UNSIGNED NOT NULL, `Cliente_Fornecedor` INT(10) UNSIGNED NOT NULL, `Descricao` VARCHAR(100) NULL DEFAULT NULL, `Quantidade` INT(11) NOT NULL, `Validade` DATE NULL DEFAULT NULL, `Efetivado` ENUM('S','N') NOT NULL, `N_Controle` INT(11) NULL DEFAULT NULL, PRIMARY KEY (`Cod`), UNIQUE INDEX `N_Controle` (`N_Controle`), INDEX `FK_Produto` (`Produto`), INDEX `FK2_Trans_Estoque` (`Transacao`), INDEX `FK_Contatos` (`Cliente_Fornecedor`), INDEX `FK4_Filial` (`Filial`), CONSTRAINT `FK2_Trans_Estoque` FOREIGN KEY (`Transacao`) REFERENCES `tbl_cat_estoque` (`Cod`), CONSTRAINT `FK_Produto` FOREIGN KEY (`Produto`) REFERENCES `tbl_produtos` (`Cod`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=758 ; Tabela 3: CREATE TABLE `tbl_produtos` ( `Cod` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `Produto` VARCHAR(250) NOT NULL, `Preco_Custo` FLOAT(10,2) NOT NULL, `Fornecedor` INT(10) UNSIGNED NOT NULL, `Grupo` INT(10) UNSIGNED NOT NULL, `Informacoes` TEXT NULL, `Preco` DECIMAL(10,2) NOT NULL, `Esgotado` ENUM('S','N') NOT NULL DEFAULT 'N', PRIMARY KEY (`Cod`), UNIQUE INDEX `Produto` (`Produto`), INDEX `FK_fornecedor` (`Fornecedor`), INDEX `FK2_Grupo` (`Grupo`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=163 ; Preciso de uma query que retorne todos os produtos cadastrados e suas respectivas quantidades em estoque. Sendo que o campo "Transacao' presente em tbl_estoque e quem diferencia uma entrada de uma saída de mercadorias. - Meus conhecimentos me levaram até aqui: SELECT tbl_estoque.Produto AS Cod_Produto, tbl_produtos.Produto AS Produto, tbl_cat_estoque.Transacao AS Transacao, (case when (tbl_cat_estoque.Transacao like '1%') then sum(tbl_estoque.Quantidade) else 0 end) AS Entradas, (case when (tbl_cat_estoque.Transacao LIKE '2%') then sum(tbl_estoque.Quantidade) else 0 end) AS Saidas from tbl_estoque join tbl_cat_estoque ON (tbl_estoque.Transacao = tbl_cat_estoque.Cod) JOIN tbl_produtos ON (tbl_estoque.Produto = tbl_produtos.Cod) group by tbl_estoque.Transacao; Agradeço toda ajuda que receber.
×

Important Information

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