|
Usuários |
|
48 Usuários Online
|
|
[Artigos]
Rave - SELECT com parâmetros... |
Publicado por M.J. : Quinta, Outubro 07, 2004 - 09:17 GMT-3 (7933 leituras)
5 Comentários Enviar para um amigo Versão para impressão
|
Para usar o banco de dados no rave, você não precisa criar uma nova conexão dentro do rave, você pode utilizar a mesma que você usa no Delphi.
E você pode fazer isso usando um SELECT com parâmetros. Mas para isso é preciso um detalhe. Com o Delphi 7 veio a necessidade de entender o Rave, tarefa não tão fácil, visto que existem detalhes estranhos.
Quando comecei a usar o Rave, me deparei com um problema, ele funcionava bem quando tinha que fazer um SELECT da tabela inteira, mais dava erro todas as vezes que eu tentava usar um SELECT com parâmetros.
Eu usava a conexão via ADO no Delphi, um RvDataSetConnection e um Rvproject no form, então eu definia o Dataset do RvDataSetConnection e o ProjectFile do Rvproject, eu colocava o código SQL que queria na propriedade SQL do ADOQuery, no próprio object inspector, então abria o Rave criava um Direct Data View e pronto, lá estavam meus campos e eu podia montar o meu relatório apenas arrastando os campos para os Bands e DataBands...(segurando o CTRL).
Mais o que fazer quando o SELECT era apenas de um certo código e eu precisava usar parâmetros dentro do SELECT???
Não dava certo por nada, o Rave não reconhecia o parâmetro que era passado via código pelo Delphi. Aliás ele não reconhecia nem mesmo o SELECT se esse fosse passado para a ADOQuery por código (fora da propriedade SQL do object inspector).
A Solução!!
Continuei usando a Conexão ADO no Delphi, um RvDataSetConnection e um Rvproject no form, mas eu coloquei o código SQL em um botão que seria usado para executar o relatório, fiz tudo normal como estava acostumada.
coloquei o código SQL no botão:
depois defini o DataSet do RvDataSetConnection:
dados.ADOQuery1.SQL.Clear;
dados.ADOQuery1.SQL.Add('select * from tabela where codigo=:cod');
dados.ADOQuery1.Parameters[0].Name:='cod';
dados.ADOQuery1.Parameters[0].Value:=edit1.Text;
dados.ADOQuery1.Open;
rvdatasetconnection1.DataSet:=dados.ADOQuery1;
Ai vem o detalhe...
Execute a aplicação e clique no botão que executa o código acima, então abra o rave e crie a sua Direct Data View e pronto, lá estarão os campos e você pode montar o relatório apenas arrastando os campos para os Bands e DataBands (segurando o CTRL).
IMPORTANTE! você precisa manter a Aplicação aberta(executando) enquanto monta o Relatório.
Então quando o relatório estiver pronto você define a propriedade ProjectFile do RvProject e inclui o seguinte código no botão:
RvProject1.Execute;
e pronto seu relatório estará funcionando!
Giselle Alves da Silva
gisaalvesdasilva@hotmail.com
|
|
Comentários | |
| | Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos. |
por: M.J. : Out 11, 2004 - 04:37 (Informações sobre o membro | Enviar uma mensagem) http:// | Oi wendersonlisardo,
Bem observado, realmente isso parace uma gambiarra e das grandes, mais eu não acredito que seja, já que a solução foi sugerida pelo próprio fabricante...
Obrigada pela atenção!
bjinhos, Gi | [ Comentários não permitidos para usuários anônimos. Por gentileza, registre-se ou conecte-se ao sistema
por: sotareli : Out 18, 2004 - 02:59 (Informações sobre o membro | Enviar uma mensagem) | Oi GI....
Sou um "antigo" programador em Clipper, estou iniciando no Delphi, e gostei da sua solução,,, mas ainda não entendi muito bem!!!! Cê poderia mandar um exemplo funcionando,,,, Tô abusando né????...
Sotareli | [ Comentários não permitidos para usuários anônimos. Por gentileza, registre-se ou conecte-se ao sistema
por: emiliodami (emiliox@xxx.com.br) : Fev 11, 2007 - 05:16 (Informações sobre o membro | Enviar uma mensagem) http://paginas.terra.com.br/negocios/ART/ | | Ok, eu fazia isso já ha um bom tempo, tudo estava bem, agora o Rave resolveu complicar tudo, ele nao faz o link atraves do datasetconection, ele apenas continua com os dados que estavam dentro do ambiente de programacao, quando voce executa ele nao vincula mais ao resultado da query, ou seja ele nao busca mais os dados conforme o resultado da query, simplesmente, ele imprime todos os relatorios iguais ao que ultimo resultado da query aberta no ambiente de programação. TO COM MUITA RAIVA E NAO SEI MAIS O QUE FAZER JA TEM 15 DIAS QUE TO ENRROLANDO MEU CLIENTE, NUN CONSIGO MAIS. ME AJUDA PELO AMOR DE DEUS. | [ Comentários não permitidos para usuários anônimos. Por gentileza, registre-se ou conecte-se ao sistema
|
|
Edição 112 |
|
|
50 Programas Fontes |
|
|
Produtos |
|
|