Fórum Parametros com CDS #335776
06/01/2007
0
e no outro:
quando executo qualquer uma das consultas acima dar tudo normal mas quando tento executar a outra consulta, dar um erro ´ Parameter not found ´
O q será que não estou fechando galera?
Erivando
Curtir tópico
+ 0Posts
06/01/2007
Emerson Nascimento
procedure TFrmMatriculas.BitBtn1Click(Sender: TObject); begin with DmConsultas.CDS_Consulta do begin Close; CommandText := ´Select COD_ALUN, NOME_ALUNO, CURSO, SERIE, TURMA, TURNO, ´+ ´SEXO, DATA_NASCIMENTO, NATURALIDADE, ESTADO_NATURALIDADE, ´+ ´NACIONALIDADE, ESCOLA_ANTERIOR, CIDADE_ESCO_ANT, ESTADO_ESCO_ANT, ´+ ´UF_ESCO_ANT, NOME_PAI, NOME_MAE, NOME_RESP, SITUACAO_ALUNO ´+ ´from ALUNOS where ´+ ´SERIE = :Serie and ´+ ´TURMA = :Turma and ´+ ´TURNO = :Turno and ´+ ´SITUACAO_ALUNO = :Situacao´; Params.ParamByName(´Serie´).AsString := CBox_Serie.Text; Params.ParamByName(´Turma´).AsString := CBox_Turma.Text; Params.ParamByName(´Turno´).AsString := CBox_Turno.Text; Params.ParamByName(´Situacao´).AsString := ´PRÉ-MATRICULADO´; Open; end; end;
e no outro:
with DmConsultas.CDS_Consulta do begin Close; CommandText := ´Select COD_ALUN, NOME_ALUNO, CURSO, SERIE, TURMA, TURNO, ´+ ´SEXO, DATA_NASCIMENTO, NATURALIDADE, ESTADO_NATURALIDADE, ´+ ´NACIONALIDADE, ESCOLA_ANTERIOR, CIDADE_ESCO_ANT, ESTADO_ESCO_ANT, ´+ ´UF_ESCO_ANT, NOME_PAI, NOME_MAE, NOME_RESP, SITUACAO_ALUNO ´+ ´from ALUNOS where ´+ ´CURSO = :Curso and ´+ ´SITUACAO_ALUNO = :Situacao´; Params.ParamByName(´Curso´).AsString:= CBox_Curso.Text; Params.ParamByName(´Situacao´).AsString:= ´PRÉ-MATRICULADO´; Open; end;
Gostei + 0
07/01/2007
Erivando
eu somente retirei o
mas porque não precisa do FetchParams? , já que eu eu estou criando tando a consulta quanto os parametros em tempo de execução!!!?
Gostei + 0
07/01/2007
Emerson Nascimento
[b:bbcd966c13]Params.Clear é desnecessário[/b:bbcd966c13], pois quando você altera o commandtext, os parâmetros são excluídos e recriados automaticamente conforme a instrução do commantext.
[b:bbcd966c13]CommandText:=´´ é redundante[/b:bbcd966c13], pois quando você altera o commandtext, o novo valor já é assumido, sem necessidade de excluir o conteúdo anterior. imagine uma variável numérica, de nome [i:bbcd966c13]valor[/i:bbcd966c13], com conteúdo 25. daí você quer alterar esse conteúdo da variável para 55.
você faz simplesmente [i:bbcd966c13]valor := 55[/i:bbcd966c13]:
valor := 25;
//novo valor
valor := 55;
e não:
valor := 25;
//novo valor
valor := 0; // isso é tão desnecessário quanto CommandText:=´´
valor := 55;
e, quanto à sua pergunta:
FetchParams serve para restaurar os parâmetros do provider ligado ao clientdataset. como a sua instrução é montada diretamente no clientdataset, esse método não deve ser usado.
Gostei + 0
07/01/2007
Erivando
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)