ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

nao encontra dados com ClientDataSet[Resolvido]
Ir à página 1, 2  Próximo
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
nildglan
Colaborador
Colaborador


Registrado: Sábado, 16 de Agosto de 2008
Mensagens: 1564
Localização: Goianésia do Pará

MensagemEnviada: Qua Jan 25, 2012 8:55 pm    Assunto: nao encontra dados com ClientDataSet[Resolvido] Responder com Citação

Pessoal tenho a seguinte situação
meu ClientDataSet não ta mais funcionando não traz os dados
meu ClientDataSet está ligado ao meu DataSetProvider e meu DataSetProvider ligado ao meu DataSet buscando dados de uma procedure do banco firebid
veja o procedimento no meu clietDataset

with cdExportar do
begin
close;
FetchParams;
CommandText:='';
CommandText:='select * from EXPORTACAO_1(:iCodigoUsuario)';
Params[0].AsInteger:= iCodigoUsuario;
Open;
end;

e meu DataSetProvider já está com poAllwoComandtex como True
e quando eu chamo minha procedure em DataSet somente tudo dar certo mais eu preciso que seja em ClientDataSet

onde estou errando?

eu descobri que o problema é por causa do parametro quando refaço a procedure sem paramentro para teste da certo, mais preciso desse parametro


Editado pela última vez por nildglan em Qui Jan 26, 2012 4:24 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
nildglan
Colaborador
Colaborador


Registrado: Sábado, 16 de Agosto de 2008
Mensagens: 1564
Localização: Goianésia do Pará

MensagemEnviada: Qua Jan 25, 2012 9:49 pm    Assunto: Responder com Citação

já fiz assim e não deu certo

with cdExportar do
begin
close;
CommandText:='select * from EXPORTACAO_1(:iCodigoUsuario)';
FetchParams;
Params.ParamByName('iCodigoUsuario').AsInteger := iCodigoUsuario;
Open;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Jan 25, 2012 10:59 pm    Assunto: Responder com Citação

Você já tentou executar este select através de uma ferramenta como o IBExpert ou similar, preenchendo no parâmetro o mesmo valor enviado pelo seu sistema?


_________________
Assinatura: http://www.imoveisemexposicao.com.br/imobiliarias-em-guarulhos


Editado pela última vez por imex em Qui Jan 03, 2013 8:29 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
felipecaputo
Colaborador
Colaborador


Registrado: Quinta-Feira, 13 de Mai de 2010
Mensagens: 1719
Localização: Florianópolis / SC

MensagemEnviada: Qui Jan 26, 2012 9:37 am    Assunto: Responder com Citação

Se este comando sql já está na query, você não precisa preencher o command text. Use apenas o FetchParams e depois preencha o parametro e dê o open. Very Happy
_________________
if Post.State = psResolvido then
Post.Caption := Post.Caption + ' [RESOLVIDO]';
_____________________________________________
O único homem que está isento de erros, é aquele que não arrisca acertar. Albert Einstein
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
nildglan
Colaborador
Colaborador


Registrado: Sábado, 16 de Agosto de 2008
Mensagens: 1564
Localização: Goianésia do Pará

MensagemEnviada: Qui Jan 26, 2012 9:46 am    Assunto: Responder com Citação

imex ja fiz sim e da tudo certo,
felipecaputo minha select está no DataSet mais o DataProvider allowcomandtext está true ou seja possibilitando eu passa a select no ClientDataSet
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qui Jan 26, 2012 9:54 am    Assunto: Responder com Citação

Tire o * e coloque os campos em vez disto, aliás nunca uso desta forma, costuma dar problema.


bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
felipecaputo
Colaborador
Colaborador


Registrado: Quinta-Feira, 13 de Mai de 2010
Mensagens: 1719
Localização: Florianópolis / SC

MensagemEnviada: Qui Jan 26, 2012 10:07 am    Assunto: Responder com Citação

Bom dia amigo, se já está no dataset, não precisa ser passada pelo comand text, basta o fetch params e a atualização do parametro.
_________________
if Post.State = psResolvido then
Post.Caption := Post.Caption + ' [RESOLVIDO]';
_____________________________________________
O único homem que está isento de erros, é aquele que não arrisca acertar. Albert Einstein
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
nildglan
Colaborador
Colaborador


Registrado: Sábado, 16 de Agosto de 2008
Mensagens: 1564
Localização: Goianésia do Pará

MensagemEnviada: Qui Jan 26, 2012 10:39 am    Assunto: Responder com Citação

johnny-walker é uma procedure e eu preciso de todos os campos

felipecaputo fiz assim então

with cdExportar do
begin
FetchParams;
Params[0].AsInteger := iCodigoUsuario;
Open;
end;

e não deu certo

resaltando pessoal que quando não uso o ClientDataSet uso somente o DataSet da certo
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
felipecaputo
Colaborador
Colaborador


Registrado: Quinta-Feira, 13 de Mai de 2010
Mensagens: 1719
Localização: Florianópolis / SC

MensagemEnviada: Qui Jan 26, 2012 10:43 am    Assunto: Responder com Citação

confira o seguinte:

1 - Coloque um breakpoint no fecthParams
2 - Assim que parar, aperte F8 e depois Ctrl + F7 irá aparecer uma janelinha
3 - Digite na janelinha cdExportar.Params.Count e verifique se é somente 1
4 - Pressione F8 até o Open;
5 - Apos o open verifique o record count

ps.: confira também:
- Se a query está correta no DataSet
- A ligação dos compoentes
- Verifique se o datasource está apontando para o clientdataset
_________________
if Post.State = psResolvido then
Post.Caption := Post.Caption + ' [RESOLVIDO]';
_____________________________________________
O único homem que está isento de erros, é aquele que não arrisca acertar. Albert Einstein
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
marcosalles
Moderador
Moderador


Registrado: Quarta-Feira, 26 de Março de 2008
Mensagens: 1695
Localização: Muriaé Mg

MensagemEnviada: Qui Jan 26, 2012 11:04 am    Assunto: Responder com Citação

nildglan escreveu:
johnny-walker é uma procedure e eu preciso de todos os campos

felipecaputo fiz assim então

with cdExportar do
begin
CLOSE
FetchParams;
Params[0].AsInteger := iCodigoUsuario;
Open;
end;

e não deu certo

resaltando pessoal que quando não uso o ClientDataSet uso somente o DataSet da certo


Mas a instrução esta no DataSet ??????????????????
_________________
http://marcosalles.wordpress.com

Desenvolvo FreeLancer e presto Consultoria
Orientação Online DataSnap DbX ClientDataSet
POO , Padrões de Projeto e dúvidas de Delphi em
Geral
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
nildglan
Colaborador
Colaborador


Registrado: Sábado, 16 de Agosto de 2008
Mensagens: 1564
Localização: Goianésia do Pará

MensagemEnviada: Qui Jan 26, 2012 12:02 pm    Assunto: Responder com Citação

felipecaputo eu fiz o que vc pediu botei um breakpoint e presionei F8 e quando chegou em Params[0].AsInteger := iCodigoUsuario; presionei Ctrl9+F7 ai apareceu uma janelinha com título Evaluate ai eu coloquei cdExportar.Params.Count e presionei no botão evaluate e apareceu o valor Zero (0) ai pressionei até o open e deu um erro

'List index out of bound(0)' ou seja como se não existe esse parametro


marcosalles a instrução está sim no dataSet
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
marcosalles
Moderador
Moderador


Registrado: Quarta-Feira, 26 de Março de 2008
Mensagens: 1695
Localização: Muriaé Mg

MensagemEnviada: Qui Jan 26, 2012 12:18 pm    Assunto: Responder com Citação

Citação:
marcosalles a instrução está sim no dataSet


Mas voce definiu os parametros neste DataSet , o Tipo
_________________
http://marcosalles.wordpress.com

Desenvolvo FreeLancer e presto Consultoria
Orientação Online DataSnap DbX ClientDataSet
POO , Padrões de Projeto e dúvidas de Delphi em
Geral
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
nildglan
Colaborador
Colaborador


Registrado: Sábado, 16 de Agosto de 2008
Mensagens: 1564
Localização: Goianésia do Pará

MensagemEnviada: Qui Jan 26, 2012 12:20 pm    Assunto: Responder com Citação

pessoal tem um detalhe interessante vou passar minha procedure para vcs verem

CREATE PROCEDURE EXPORTACAO_1 (
icodigousuario integer)
returns (
codusuario_autorizado integer,
codigo_usuario integer,
nome_sindicato varchar(120),
formatar_cnpj varchar(20),
quant_socio_ativos integer,
quant_socio_inativos integer,
quant_socio_ativos_inativos integer,
quant_socio_mas integer,
quant_socio_fem integer,
quant_socio_aposentado integer,
quant_socio_nao_aposentado integer,
quant_socio_apos_nao_inf integer,
quant_socio_individualmente integer,
quant_socio_reg_eco_familiar integer,
quant_socio_assal_rural integer,
quant_socio_tit_terra integer,
quant_socio_nao_tit_terra integer,
quant_socio_tit_terra_nao_inf integer,
quant_socio_associacao integer,
quant_socio_debito_ativo integer,
quant_socio_quitado_ativo integer)
as
declare variable cnpj_sindicato varchar(20);
begin



SELECT CODUSUARIO FROM usuario_auto
INTO:CODUSUARIO_AUTORIZADO;

SELECT CODIGO,NOME,CNPJ FROM USUARIO where codigo =:iCodigoUsuario
INTO:CODIGO_USUARIO,NOME_SINDICATO,CNPJ_SINDICATO;


select NOVOCNPJ from ccnpj(:CNPJ_SINDICATO)
into: Formatar_CNPJ;



SELECT count(*) FROM SOCIOS WHERE (CODIGO_USUARIO = :CODIGO_USUARIO
AND STATUS ='A')
INTO: QUANT_SOCIO_ATIVOS;

SELECT count(*) FROM SOCIOS WHERE (CODIGO_USUARIO = :CODIGO_USUARIO
AND STATUS ='I')
INTO: QUANT_SOCIO_INATIVOS;


if (:QUANT_SOCIO_ATIVOS IS NULL) then
QUANT_SOCIO_ATIVOS=0;


if (:QUANT_SOCIO_INATIVOS IS NULL) then
QUANT_SOCIO_INATIVOS=0;


QUANT_SOCIO_ATIVOS_INATIVOS = QUANT_SOCIO_ATIVOS +QUANT_SOCIO_INATIVOS;



SELECT count(*) FROM SOCIOS WHERE (CODIGO_USUARIO = :CODIGO_USUARIO
AND SEXO ='M')
INTO: QUANT_SOCIO_MAS;

SELECT count(*) FROM SOCIOS WHERE (CODIGO_USUARIO = :CODIGO_USUARIO
AND SEXO ='F')
INTO: QUANT_SOCIO_FEM;


if (:QUANT_SOCIO_MAS IS NULL) then
QUANT_SOCIO_MAS=0;


if (:QUANT_SOCIO_FEM IS NULL) then
QUANT_SOCIO_FEM=0;





SELECT count(*) FROM SOCIOS WHERE (CODIGO_USUARIO = :CODIGO_USUARIO
AND APOSENTADO ='S')
INTO: QUANT_SOCIO_APOSENTADO;


SELECT count(*) FROM SOCIOS WHERE (CODIGO_USUARIO = :CODIGO_USUARIO
AND APOSENTADO ='N')
INTO: QUANT_SOCIO_NAO_APOSENTADO;

SELECT count(*) FROM SOCIOS WHERE (CODIGO_USUARIO = :CODIGO_USUARIO
AND APOSENTADO ='I')
INTO: QUANT_SOCIO_APOS_NAO_INF;



SELECT count(*) FROM SOCIOS WHERE (CODIGO_USUARIO = :CODIGO_USUARIO
AND REGIME_TRABALHARDOR ='I')
INTO: QUANT_SOCIO_INDIVIDUALMENTE;


SELECT count(*) FROM SOCIOS WHERE (CODIGO_USUARIO = :CODIGO_USUARIO
AND REGIME_TRABALHARDOR ='E')
INTO: QUANT_SOCIO_REG_ECO_FAMILIAR;

SELECT count(*) FROM SOCIOS WHERE (CODIGO_USUARIO = :CODIGO_USUARIO
AND REGIME_TRABALHARDOR ='A')
INTO: QUANT_SOCIO_ASSAL_RURAL;






SELECT count(*) FROM SOCIOS WHERE (CODIGO_USUARIO = :CODIGO_USUARIO
AND TITULAR_TERRA ='S')
INTO: QUANT_SOCIO_TIT_TERRA;


SELECT count(*) FROM SOCIOS WHERE (CODIGO_USUARIO = :CODIGO_USUARIO
AND TITULAR_TERRA ='N')
INTO: QUANT_SOCIO_NAO_TIT_TERRA;

SELECT count(*) FROM SOCIOS WHERE (CODIGO_USUARIO = :CODIGO_USUARIO
AND TITULAR_TERRA ='I')
INTO: QUANT_SOCIO_TIT_TERRA_NAO_INF;


SELECT count(*) FROM SOCIOS WHERE (CODIGO_USUARIO = :CODIGO_USUARIO
AND CODIGO_ASSOCIACAO > 0)
INTO: quant_socio_associacao;



SELECT count(*) FROM QUANT_SOCIO_DEBITOS (:codigo_usuario)
where ( Quantidade_Debito >0 )
intO: quant_socio_Debito_ativo;




quant_socio_Quitado_ativo =quant_socio_ativos -quant_socio_Debito_ativo ;






suspend;






end




o interessante é que o valor do campo codusuario_autorizado que não depende de parametro no clientDataset traz correto no grid e o restante que depende traz o valor zero(0)
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
nildglan
Colaborador
Colaborador


Registrado: Sábado, 16 de Agosto de 2008
Mensagens: 1564
Localização: Goianésia do Pará

MensagemEnviada: Qui Jan 26, 2012 12:22 pm    Assunto: Responder com Citação

marcosalles mais onde eu faço isso no dataset? eu tinha projeto que fiz usando dbExpress e funcionava perfeitamente
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
marcosalles
Moderador
Moderador


Registrado: Quarta-Feira, 26 de Março de 2008
Mensagens: 1695
Localização: Muriaé Mg

MensagemEnviada: Qui Jan 26, 2012 1:51 pm    Assunto: Responder com Citação

nildglan escreveu:
marcosalles mais onde eu faço isso no dataset? eu tinha projeto que fiz usando dbExpress e funcionava perfeitamente


Uma alternativa , acredito ser mais fácil , depois pode ate voltar com a sua
é adicionar um TSQLStoredProc
Liga-lo ao SqlConnection .. Na propriedade StoredProcName selecione
a procedure que voce quer executar

depois é so exceutar

Código:
with cdExportar do
begin
CLOSE
FetchParams;
Params[0].AsInteger := iCodigoUsuario;
Open;
end;


Veja nil que na propriedade PARAMS do TSQLStoredProc ja é definida
automaticamente os Parâmetros necessários o Tipo O Nome etcc
È so olhar no OBjecto Inspector ****

São esses parametros que o ClientDAtaSet é configurado quando
se executa o método FetchParams;


veja um pequeno exemplo com o Banco employye do Firebird

Código:
procedure TForm1.Button2Click(Sender: TObject);
begin
SQLStoredProc1.StoredProcName:='ADD_EMP_PROJ';
showmessage(inttostr(SQLStoredProc1.Params.Count));
SQLStoredProc1.StoredProcName:='DELETE_EMPLOYEE';
showmessage(inttostr(SQLStoredProc1.Params.Count));
end;

_________________
http://marcosalles.wordpress.com

Desenvolvo FreeLancer e presto Consultoria
Orientação Online DataSnap DbX ClientDataSet
POO , Padrões de Projeto e dúvidas de Delphi em
Geral
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Ir à página 1, 2  Próximo
Página 1 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB