-
Total de itens
13 -
Registro em
-
Última visita
-
-
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.
-
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.
-
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.
-
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.
-
Obrigado pelos esclarecimentos. Entendi os códigos que você postou, fiz algumas alterações e resolvi meu problema.
- 4 respostas
-
- escopo de variáveis
- geoposition
- (e mais 1 )
-
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.
- 4 respostas
-
- escopo de variáveis
- geoposition
- (e mais 1 )
-
janir.matheus alterou sua foto pessoal
-
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.
- 4 respostas
-
- escopo de variáveis
- geoposition
- (e mais 1 )
-
janir.matheus começou a seguir erikalopes
-
-
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.
-
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:
-
Obrigado Motta.
-
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.
-
Obrigado ShadowDLL - resolveu meu problema.
-
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.