store procedure, com muitos parametros.
Bom Dia,
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
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
Curtidas 0
Respostas
Afarias
12/08/2005
|gostaria de saber se é válido fazer uma store procedure, para consultar
|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+
|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
Lynx
12/08/2005
Desculpe afarias, realmente interpretei mau.
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.
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
Afarias
12/08/2005
|Tem uma maneira melhor para fazer isso ?
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+
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
Lynx
12/08/2005
Só que no qreport ?
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
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
Afarias
12/08/2005
|Só que no qreport ?
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+
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
Lynx
12/08/2005
Realmente, é verdade, mas eu não entendo o motivo de criar essa tabela temporária...
Eu já vi isso em muitos lugares.
Só que vou fazer com Rave, complica um pouco mais.
Mesmo assim muito Obrigado
Eu já vi isso em muitos lugares.
Só que vou fazer com Rave, complica um pouco mais.
Mesmo assim muito Obrigado
GOSTEI 0
Lynx
12/08/2005
Comecei o post com Qreport, e terminei com Rave..
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
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
Afarias
12/08/2005
|Realmente, é verdade, mas eu não entendo o motivo de criar essa
|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+
|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
Lynx
12/08/2005
Show de bola, segunda feira vou procurar um livro bom sobre FB.
Você pode me dar um exemplo como seria essa tabela temporária em memória ?
Valeu 8)
Você pode me dar um exemplo como seria essa tabela temporária em memória ?
Valeu 8)
GOSTEI 0
Afarias
12/08/2005
|Você pode me dar um exemplo como seria essa tabela temporária em
|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+
|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
Lynx
12/08/2005
O RX, que você refere é o componente, RXLib ?
é que estou fazendo o possivel para não depender de componentes de terceiros...
é que estou fazendo o possivel para não depender de componentes de terceiros...
GOSTEI 0
Afarias
12/08/2005
|O RX, que você refere é o componente, RXLib ?
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+
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
Lynx
12/08/2005
Show de bola, Valeu Afarias !
GOSTEI 0