Fórum store procedure, com muitos parametros. #52158
12/08/2005
0
Tenho um relatório, que utiliza +- 10 tabelas,
gostaria de saber se é válido fazer uma store procedure, para consultar os parametros, e inserir em uma tabela temporária os valores:
Exemplo:
Passo um parametro (ID da tabela1) , e a store procedure vai fazer um select na tabela que o ID pertence, pegar o valor do campo que eu preciso, e salvar em uma tabela temporária.
Alguém pode passar algum exemplo parecido ?
Fico aguardando,
Obrigado
Lynx
Curtir tópico
+ 0Posts
12/08/2005
Afarias
|os parametros, e inserir em uma tabela temporária os valores:
vc quer fazer um relatório ou alterações no banco???
coloque mais informações sobre seu problema ou o q deseja.
T+
Gostei + 0
12/08/2005
Lynx
Seguinte, quando vou mandar imprimir um relatório.
Eu faço um for no grid, e vou inserindo os produtos na tabela de itens do produto.
Tudo está funcionando perfeitamente.
Mas na hora de fazer o relatório, eu posso colocar um campo DBtext, mas vai mostrar os ID, ao invés do nome do produto.
Deu para entender ?
Então eu queria fazer algo, que no momento que salva, o pedido.
Ele inserir os NOMES, dos campos em uma tabela temporária, e quando fechar posso excluir os registros dessa tabela.
No caso vou usar a tabela para colocar o nome dos campos:
Exemplo:
No pedido eu coloco o ID do cliente.
Então na tabela temporária vou colocar um campo com o nome do cliente.
Assim no QREPORT, vou conseguir mostrar com mais facilidade os campos.
Tem uma maneira melhor para fazer isso ?
Realmente onde eu trabalhava, faziam desta maneira, por falta de conhecimento talvez.
Deve ter uma maneira melhor sem o uso da tabela temporária.
Mas se usar isso, deveria ser com uma procedure, para ficar mais rápido.
No mais é isso, ai
Fico Aguardando, e Muito Obrigado.
Gostei + 0
12/08/2005
Afarias
bom, pelo q estou entendendo tudo q vc precisa é um JOIN!
se vc tem uma tabela de ´produtos´:
id, descricao, ...etc...
e uma tabela de ´itens_venda´:
item, id_venda, id_produto, qtde, ...etc...
tudo o q vc precisa no seu relatório é um join entre as tabelas
select i.item, p.descricao, i.qtde from itens_venda i
inner join produtos p on (p.id=i.id_produto)
where i.id_venda = 12345;
T+
Gostei + 0
12/08/2005
Lynx
como vou fazer aparecer vários itens, desse modo...
O Problema é no QREPORT...
da para fazer JOIN mostrando em text normal no relatório ?
Porque só funciona com DBTEXT, e se colocar o dbtext, no qreport, vai aparecer os ID, ao invés do nome.
Obrigado
Gostei + 0
12/08/2005
Afarias
Na query!!!
|como vou fazer aparecer vários itens, desse modo...
É pra isso q servem as querys não?
|O Problema é no QREPORT...
|da para fazer JOIN mostrando em text normal no relatório ?
Os dados não tem nada a ver com o relatório! Vc executa este SQL para ter os dados q vão alimentar o relatório!
|Porque só funciona com DBTEXT, e se colocar o dbtext, no qreport, vai
|aparecer os ID, ao invés do nome.
No DBText vc configura q campo vc quer mostrar!
T+
Gostei + 0
12/08/2005
Lynx
Eu já vi isso em muitos lugares.
Só que vou fazer com Rave, complica um pouco mais.
Mesmo assim muito Obrigado
Gostei + 0
12/08/2005
Lynx
Realmente a dúvida era só essa da tabela temporária.
É que em 2 empresas eu vi, que criavam tabelas temporárias para relatorios.
Agora estou fazendo com rave, porque fica mais bonito o preview, mas estou analizando o fortes report, que um colega do fórum indicou.
Obrigado afarias
Gostei + 0
12/08/2005
Afarias
|tabela temporária...
eu muito menos...
|Eu já vi isso em muitos lugares.
nunca vi isso... (ainda bem!) ;-)
|Só que vou fazer com Rave, complica um pouco mais.
pode até complicar na ´interface´ mas na parte de dados não importa a ferramenta de relatório, é sempre a mesma coisa.
|É que em 2 empresas eu vi, que criavam tabelas temporárias para
|relatorios.
as vezes pode ser necessário criar tabelas temporárias para um relatório, mas não nesses casos simples -- montar referências cruzadas é um caso comum.
Entretanto note q estas tabelas temporárias devem ser em memória e nunca no servidor de dados.
T+
Gostei + 0
12/08/2005
Lynx
Você pode me dar um exemplo como seria essa tabela temporária em memória ?
Valeu 8)
Gostei + 0
12/08/2005
Afarias
|memória ?
existem vários componentes q permitem criar tabelas de memória, tem no RX por exemplo, mas uma ótima opção é o ClientDataSet q vem e algumas versões do Delphi.
Vc pode difinir os campos em tempo de projeto ou no código (usando a propriedade FieldDefs), chamar um CreateDataSet e então usar a tabela normalmente.
T+
Gostei + 0
12/08/2005
Lynx
é que estou fazendo o possivel para não depender de componentes de terceiros...
Gostei + 0
13/08/2005
Afarias
Sim
|é que estou fazendo o possivel para não depender de componentes de
|terceiros...
Neste caso veja se seu Delphi tem ClientDataSet, se tiver use-o. É ótimo.
Outra grande opção é o componente kbmMemTable da Component4Developers, é muito bom e OpenSource:
http://www.components4programmers.com/products/kbmmemtable/index.htm
T+
Gostei + 0
13/08/2005
Lynx
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)