GARANTIR DESCONTO

Fórum Extravasamento da pilha processo stopped.. #204060

04/01/2004

0

Bom! Tudo o que eu queria era o seguinte: 1º o que eu tenho, uma tabela paradox com os campos código tipo N, Referencia tipo A, datapag tipo D e valorpag tipo $. Então no formulário eu tenho um botão imprimir quando click nele aparece um outro form com dois maskedit onde eu quero informar uma data inicial e uma data final para sair no quickrep só aquele período que eu quero. Me deram essa dica no fórum, mais continua não dando certo agora com essa mensagem de erro, o que isso? Alguém já viu e pode me ajudar?

O codigo e esse o erro esta mais abaixo(o erro ocorre em tempo de execução)
var
Pesq:String; // campo a ser pesquisado
Begin
Pesq := ´datapag´;
if (MaskEdit1.Text = ´ / / ´) or (MaskEdit2.Text = ´ / / ´) then
ShowMessage(´Voce Tem que Digitar as Datas´)
else
begin
Query1.Sql.Clear;
Query1.SQL.Add(´Select * from reccond´);
Query1.SQL.Add(´Where ´+Pesq+´ between :Inicio and :Final´);
Query1.SQL.Add(´Order By ´+Pesq);
Query1.ParamByName(´Inicio´).AsDate:=StrToDate (MaskEdit1.text);
Query1.ParambyName(´Final´).AsDate:=StrToDate (MaskEdit2.text);
Query1.Prepare; // devido alteração na query em tempo de execução
Query1.Open;
F_relrectaxa:= F_relrectaxa.Create(Self);
F_reltaxa.QuickRep1.Preview;
end;
end;

O erro
´ project admincondo1.exe raised exception class estackoverflow with message ´extravasamento da pilha processo stopped use step on run to continue ´

Obrigado
wagnernormando@ig.com.br


Wagner

Wagner

Responder

Posts

05/01/2004

Wagner

Caramba ninguem sabe essa?


Responder

Gostei + 0

05/01/2004

Rodolpho123

Bem, tente declarar os valores de ´início´ e ´final´ bem no início do bloco, como variáveis, e também vai uma dica: Sempre que eu faço uma abertura de tabela usando uma Query e em seguida eu mando executar um QuickReport.PreviweModal, 90¬ dos casos o formulário sai em branco, devido ao QR abrir mais rápido que a Query, então o que eu faço, só mando executar um QuickReport.PreviewModal quando eu realmente tenho certeza de que a Query está completamente aberta.
Abraços e espero te-lo ajudado


Responder

Gostei + 0

07/01/2004

Wagner

Na teoria esta certo, mais na pratica como sou iniciante ainda continuo sem saber como fazer


Responder

Gostei + 0

10/01/2004

Wagner

Socorro tá dificil, por favor alguem pode analizar esse codigo acima e ver o que eu estou fazendo errado, eu so quero de uma tabela com codigo, datapag, referencia e valorpag dai abrir um pequeno form com 2 maskedit __/__/___ a ___/___/____ e informa um periodo que eu quero imprimir. Alguem pode me ajudar?


Responder

Gostei + 0

10/01/2004

Wagner

Socorro....


Responder

Gostei + 0

10/01/2004

Marco Salles

if (MaskEdit1.Text = ´ / / ´) or (MaskEdit2.Text = ´ / / ´) then
ShowMessage(´Voce Tem que Digitar as Datas´)
else
begin
Query1.disablecontrols;
Query1.Close;
Query1.SQL.Clear;
Query1.Sql.Add(´Select * from reccond´);
Query1.Sql.Add(´Where datapag>=:Datainicial´);
Query1.ParamByName(´datainicial´).asdate:=strtodate(Maskedit1.text);
Query1.Sql.Add(´And datapag<=:DataFinal´);
Query1.ParamByName(´DataFinal´).asdate:=strtodate(maskedit2.text);
Query1.Prepare;
Query1.open;
Query1.EnableControls;
end;//Fim do Else
end;
Apos Esta Consulta Se Voce Tiver Um DbGrid No Formulário Ele Apresentará o Conteúdo Da Pesquisa, Que Foi Limitado Pelas Datas Contidas Nos Componentes MaskEdit...
Com Isto Voce Deve Ter Um Outro Botão Para Selecionar o Formulário Do QuickReport. Com Isto Voce Evita Que o Quick Report Abra Em Branco
Como Foi Levantado Pelo Nosso Colega ´rodolpho123´...Se Der Tudo Certo, O Próximo Passo é Trabalhar Para Evitar Datas Inválidas No MaskEdit.Isto Já é Um Outro Problema


Responder

Gostei + 0

10/01/2004

Wagner

Desculpe-me a insistencia, pelo o que eu entendi alem de dois maskedit para informar as data tem que ter um dbgrid? ok! esse condigo eu informo aonde? em que evento do form ou botao?

Obrigado


Responder

Gostei + 0

10/01/2004

Marco Salles

O DbGrid Não É Obrigatório.Mas é Interresante Para Você Visualizar Os Dados. Para Voce Ver O Resultado De Sua Pesquisa.Você Pode Colocar O DbGrid No Form ,Selecionando Suas Propiedades Correta, e Depois Elimina-lo, Se For o Caso. Quanto Ao Código, Voce Pode Informar No Evento OnClick De Um Botão.
P:S : O Primeiro Passo Que Voce Tem Que Fazer é Visualizar O Resultado De Sua Pesquisa e Depois, Imprimir o Relatório.Porque o Seu Problema Pode Estar Na Definição Do QuickReport e Naõ Na Sua Pesquisa.
Concluido a Pesquisa e Se Der Tudo Certo, Como eu Acredito Que Irá Dar , Aí Sim , Voce Vai Se Preocupar Com a Impressão Dos Dados.


Responder

Gostei + 0

10/01/2004

Wagner

Valeu.. :D Vou tentar agora mesmo te dou um retorno assim que puder, mais uma vez obrigado pela ajuda, paciencia e atenção

Um abraço

´Saúde e Paz o resto agente corre atraz ´


Responder

Gostei + 0

10/01/2004

Marco Salles

E AÍ Wagner :?: Tudo Certo :?:


Responder

Gostei + 0

10/01/2004

Wagner

Eu novamente, coloquei desta forma, não deu erro ao compilar mas quando informo a data nao acontece nada..nem erro! so quando eu nao informo nenhuma data ai ele diz ´ / / data invalida´ o que eu estou fazendo de errado? esquecendo de colocar? como fica o dbgrid? com as propriedades do table? estou todo confuso! iniciante apanha mesmo, pior quando não conhece SQL.

procedure TF_relrectaxa.BitBtn1Click(Sender: TObject);
//não ficou faltando declarar nenhuma variavel????
begin
if (MaskEdit1.Text = ´ / / ´) or (MaskEdit2.Text = ´ / / ´) then
ShowMessage(´Voce Tem que Digitar as Datas´)
else
begin
Query1.disablecontrols;
Query1.Close;
Query1.SQL.Clear;
Query1.Sql.Add(´Select * from reccond´);
Query1.Sql.Add(´Where datapag>=:Datainicial´);
Query1.ParamByName(´datainicial´).asdate:=strtodate(Maskedit1.text);
Query1.Sql.Add(´And datapag<=:DataFinal´);
Query1.ParamByName(´DataFinal´).asdate:=strtodate(maskedit2.text);
Query1.Prepare;
Query1.open;
Query1.EnableControls;
end;
end;


Responder

Gostei + 0

11/01/2004

Wagner

Aguardando.....


Responder

Gostei + 0

11/01/2004

Marco Salles

Vamos Por Partes. No Seu Formulário Entre Outras Coisas Deve Ter:Um Query(e Não Um Table), Um DataSource,Um DbGrid, Dois MaskEdit,Um Botão(Para Realisar a Pesquisa).No Query Selecionar (Propiedades DataBaseName<Caminho Onde Esta Sua Tabela Paradox>, e a Propriedade Sql , Escreva ´Select *From NOMEDASUATABELA´. Para Saber Em Tempo De Projeto Se Esta Tubo Bem Selecione a Propiedade Active:=True Do Query.(Voce Não Pode Receber Nenhuma Mensagem De Erro).Ok?.Selecione Agora A Propiedade DataSet:=Query1 Do DataSoure1. E Finalmente a Propiedade DataSouce:=DataSource1 Do
DbGrid. A Sua Tabela Escrita No Parardox Tem Que Aparecer No DbGrid.O Que Irá Limitar o Conteúdo Dos Valores Apresentados Pelo DbGid Em Tempo De Execução Será a Sua Pesquisa( Que Será Executada Pelo Evento ONClik Do Botão). Escreva o Código No Botão , e Mande Rodar. Não Tem Jeito De Dar Errado. Agora Isto Não Tem Nada a Ver Com a Impressão, Que Deve Ser Realosado No Formulário A Parte.Voce Tem Que Previnir Contra Datas Invalidas No MaskEdit(Mas Tambem é Uma Outra Parte).Continue Tentando, Voce Esta No Caminho Certo, E Entre Em Contato o Mais Rápido Possível.
P:S Quando eu Falo o Caminho Da Sua Tabela é Para Selecionar o Nome Da Aliase. Se Ainda Não Tiver Um Aliase, Não Tem Problema, Digite o Diretorio Onde Esta Armazenado Sua Tabela. Exemplo:C:\NomeDo Arquivo.....Etc....
Obs: Mas a Criacao De Um Aliase é Fácil e De Muita Importancia.


Responder

Gostei + 0

11/01/2004

Wagner

Caro colega, em primeiro quero agradecer. são explicações bem detalhadas como a sua que facilita a vida dos iniciantes.

Bom! mais ainda estou fazendo alguma coisa errada coloquei uma query no meu form, No Query Selecionei (Propiedades DataBaseName o caminho onde esta minha Tabela Paradox, e a Propriedade Sql , Escrevi ´Select *From reccond´. Selecionei a Propiedade Active:=True do Query(nenhuma mensagem de erro). So que agora vem o problema, no datasouce1 na Propiedade DataSet que é para ser :=Query1 não esta aparecendo o query1, o que eu estou esqucendo de fazer?


Responder

Gostei + 0

11/01/2004

Marco Salles

Isto Seria Quase Que Imediato.(Seria Uma Opção ÚNICA). Mas o Que Acho Que Você Deve Te Feito Que Daria Um ´Erro´ Deste Tipo, e Alem Das Propiedades Que Lhe Sugeri, Voce Deve Ter Selecionado a Propiedade DataSource Do QUERY1.[color=red:1f25bb204b]ESTA PROPRIEDADE PARA ESTE EXEMPLO ESPECÍFICO [/color:1f25bb204b]NÃO PODE ESTAR CONFIGURADA COM NENHUM VALOR.TIRE ESTE VALOR DESTA PROPIEDADE SE FOR O CASO E AI VOCE VAI TER A OPÇÃOP DE QUERY1 NO DATASET DO DATASOURCE.Foi Claro :?:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar