Não mostrar registro ao abrir formulário
Estou com uma aplicação em D2007 e Firebird 2.0.3 usando dbexpress, os meus formulários só são criados quando vou abrí-los, assim como meus clientdataset´s são abertos quando da criação dos forms e fechados no fechamento dos mesmos, assim como minhas instruções sql tem na sua maioria parâmetros q são repassados em tempo de execução; se executar a aplicação e abrir o form, nenhum registro é mostrado como deve ser, já q não foi feita consulta para repassar o parâmentro, então faço a consulta, repasso o parametro e é mostrado o registro, blz, só q se fechar o form e abrir novamente o registro tá lá, como se ele guardasse o parametro e já jogasse no clientdataset, e é exatamento isso q não quero!! Quando abrir o form, quero limpo!!
Alguma sugestão?
Obrigado
Alguma sugestão?
Obrigado
Fajo
Curtidas 0
Respostas
Marco Salles
24/10/2007
Alguma sugestão?
Coloque a Propriedade poAllowComandText do DasaSetProvider para
True e faça
Na abertura do Form
talvez resolva....
Coloque a Propriedade poAllowComandText do DasaSetProvider para
True e faça
Na abertura do Form
Cds.Close;
Cds.parametros:=Valor; Valor inexistente
Cds.open;
talvez resolva....
GOSTEI 0
Alexandrej
24/10/2007
Alguma sugestão?
Obrigado
Acho que você não está destruindo o formulário devidamente.
GOSTEI 0
Alexandrej
24/10/2007
[quote:099b1607a8=´Marco Salles´]Alguma sugestão?
Coloque a Propriedade poAllowComandText do DasaSetProvider para
True e faça
Na abertura do Form
talvez resolva....[/quote:099b1607a8]
Não resolve, a propriedade poAllowComandText apenas permite que seja alterada a instrução SQL dentro do cliente, os parâmetros são repassados pelo provider independente da propriedade estar setada True ou False.
Coloque a Propriedade poAllowComandText do DasaSetProvider para
True e faça
Na abertura do Form
Cds.Close;
Cds.parametros:=Valor; Valor inexistente
Cds.open;
talvez resolva....[/quote:099b1607a8]
Não resolve, a propriedade poAllowComandText apenas permite que seja alterada a instrução SQL dentro do cliente, os parâmetros são repassados pelo provider independente da propriedade estar setada True ou False.
GOSTEI 0
Marco Salles
24/10/2007
No Livro Programação Para Banco De Dados De Ghinter pag 14
diz em seu paragrafo terceiro:
Abre aspas:
fecha aspas
No Curso De DbExpress De Ghinter no Capitulo XVIII Sobre CommandText Diz o Seguinte:
Abre aspas
fecha aspas
mas voce diz:
Obrigado pela sua inform~ção . Vou tentar entrar em contato com o Autor
para que o mesmo faça as devidas correções em seu Artigo
Quanto a sugestão é claro que ela é expansivel a :
diz em seu paragrafo terceiro:
Abre aspas:
´A instrução Sql é gerada pelo DataSetProvider´
fecha aspas
No Curso De DbExpress De Ghinter no Capitulo XVIII Sobre CommandText Diz o Seguinte:
Abre aspas
´...o Cds se encarregara de enviar ao DataSetProvider , que vai
repassa-lo ao Cursor DbExpress associado e Executar o comando
no BD . [b:7195b6cc30]Você pode atê mesmo passar parametros <params> no
ClientDataSet [/b:7195b6cc30].´
fecha aspas
mas voce diz:
Não resolve, a propriedade poAllowComandText apenas permite que seja alterada a instrução SQL dentro do cliente, os parâmetros são repassados pelo provider independente da propriedade estar setada True ou False.
Obrigado pela sua inform~ção . Vou tentar entrar em contato com o Autor
para que o mesmo faça as devidas correções em seu Artigo
Quanto a sugestão é claro que ela é expansivel a :
Cds.Close; cds.ComandText:=´Selct bla bla Where etc....´ Cds.parametros:=Valor; Valor inexistente Cds.open;
GOSTEI 0
Alexandrej
24/10/2007
[quote:346e367ccc=´Marco Salles´]No Livro Programação Para Banco De Dados De Ghinter pag 14
diz em seu paragrafo terceiro:[/quote:346e367ccc]
Tirando as aspas o que ele diz foi o que eu disse.
Vou ser mais claro: essa propriedade não interfere em nada a leitura do parâmetro, então, seta-la para True ou False não faz diferença nenhuma.
É lógico que na instrução sql eu posso passar parâmetros. Entendeu agora? Qual o sentido de reescrever o comando SQL no lado do cliente? A razão de usar um CDS é manter a regra de negócio do outro lado, não no cliente. Espero que no livro citado o autor fale isso pelo menos e não aconselhe a usar poAllowCommandText, só explique qual sua finalidade.
Abraços.
diz em seu paragrafo terceiro:[/quote:346e367ccc]
Tirando as aspas o que ele diz foi o que eu disse.
Vou ser mais claro: essa propriedade não interfere em nada a leitura do parâmetro, então, seta-la para True ou False não faz diferença nenhuma.
É lógico que na instrução sql eu posso passar parâmetros. Entendeu agora? Qual o sentido de reescrever o comando SQL no lado do cliente? A razão de usar um CDS é manter a regra de negócio do outro lado, não no cliente. Espero que no livro citado o autor fale isso pelo menos e não aconselhe a usar poAllowCommandText, só explique qual sua finalidade.
Abraços.
GOSTEI 0
Marco Salles
24/10/2007
´...o Cds se encarregara de enviar ao DataSetProvider , que vai
repassa-lo ao Cursor DbExpress associado e Executar o comando
no BD . [b:72b4600cf1]Você pode atê mesmo passar parametros <params> no
ClientDataSet .[/b:72b4600cf1]´
ja disse que vou entrar em contato com o autor do artigo... Voce não
precisa me dar explicação
abraços
GOSTEI 0
Marco Salles
24/10/2007
estava revendo as minhas mensagens alexandrej e verifiquei no primeiro
post algo que pudesse gerar todo este mau entendido... Tinha dito isto
Nesta mensagem eu omiti o CommandText o que eu Fiz no outro post... Parece que deu a impressão que para passar
parametros com Cds tivesse que necessariamente ter que a setar a propriedade para True
na omissão deste commandText ficou entender que para passar parametros atraves do Cds tivesse que cetar esta propriedade para True
Claro que se a mensagem original tivesse com o commandText , voce poderia questionar, tal como fez no Ultimo post
Se aplica em outro tipos de situaçoes <mais bla bla> , mas tirando quesitos de performance , < para desktop perda pequena> resolveria com certeza o problema do Fajo...
post algo que pudesse gerar todo este mau entendido... Tinha dito isto
Cds.Close;
Cds.parametros:=Valor; Valor inexistente
Cds.open;
Nesta mensagem eu omiti o CommandText o que eu Fiz no outro post... Parece que deu a impressão que para passar
parametros com Cds tivesse que necessariamente ter que a setar a propriedade para True
Cds.Close;
cds.ComandText:=´Selct bla bla Where etc....´
Cds.parametros:=Valor; Valor inexistente
Cds.open;
na omissão deste commandText ficou entender que para passar parametros atraves do Cds tivesse que cetar esta propriedade para True
Claro que se a mensagem original tivesse com o commandText , voce poderia questionar, tal como fez no Ultimo post
Qual o sentido de reescrever o comando SQL no lado do cliente
Se aplica em outro tipos de situaçoes <mais bla bla> , mas tirando quesitos de performance , < para desktop perda pequena> resolveria com certeza o problema do Fajo...
GOSTEI 0