Pesquisa dinâmica com TSQLDataSet
08/04/2006
0
[b:5d061e330e]Alguem consegue enxergar o erro deste codigo?[/b:5d061e330e]
Já utilizei o debug e esta tudo correto mas na hora de abrir o ClientDataSet ([b:5d061e330e]QENTIDADE[/b:5d061e330e]) da erro. :shock:
procedure TBFornecedores.ExecutarQuery; begin DMENTIDADE.QENTIDADE.Active:=FALSE; DMENTIDADE.QSQLDataSetENTIDADE.Active:=FALSE; DMENTIDADE.QSQLDataSetENTIDADE.CommandText:=´SELECT NOME,INSCRICAOFEDERAL,codigo FROM ENTIDADE WHERE CODIGO IN (SELECT CODIGOENTIDADE FROM FORNECEDORES) AND CODIGO IN (´+FORNECEDOR.CODIGO+´)´; IF EDIT2.TEXT<>´´ THEN BEGIN DMENTIDADE.QSQLDataSetENTIDADE.CommandText:=DMENTIDADE.QSQLDataSetENTIDADE.CommandText+´ AND NOME LIKE :PAR_NOME´; if length(Edit2.Text)>=60 then//O delphi esta estranhando o ¬ DMENTIDADE.QSQLDataSetENTIDADE.ParamByName(´PAR_NOME´).AsString:=Edit2.Text <--ALIMENTO OS PARAMETROS AQUI! else DMENTIDADE.QSQLDataSetENTIDADE.ParamByName(´PAR_NOME´).AsString:=Edit2.Text+´¬´;<--ALIMENTO OS PARAMETROS AQUI! END; IF EDIT3.TEXT<>´´ THEN BEGIN DMENTIDADE.QSQLDataSetENTIDADE.CommandText:=DMENTIDADE.QSQLDataSetENTIDADE.CommandText+´ AND INSCRICAOFEDERAL LIKE :PAR_CPF´; if length(Edit3.Text)>=18 then//O delphi esta estranhando o ¬ DMENTIDADE.QSQLDataSetENTIDADE.ParamByName(´PAR_CPF´).AsString:=Edit3.Text <--ALIMENTO OS PARAMETROS AQUI! else DMENTIDADE.QSQLDataSetENTIDADE.ParamByName(´PAR_CPF´).AsString:=Edit3.Text+´¬´;<--ALIMENTO OS PARAMETROS AQUI! END; DMENTIDADE.QSQLDataSetENTIDADE.CommandText:=DMENTIDADE.QSQLDataSetENTIDADE.CommandText+´ ORDER BY NOME´; DMENTIDADE.QSQLDataSetENTIDADE.active:=true; DMENTIDADE.QENTIDADE.Active:=TRUE; end;
Desde já obrigado.
Lorde_morte.
Posts
08/04/2006
Lorde_morte.
DMENTIDADE.QENTIDADE.Active:=TRUE;
08/04/2006
Rjun
Dei uma modificada no seu código, pois o seu ia contra minha [b:0963950ec2]religião[/b:0963950ec2].
procedure TBFornecedores.ExecutarQuery; begin DMEntidade.QEntidade.Active := False; DMEntidade.QSQLDataSetEntidade.Active:=FALSE; DMEntidade.QSQLDataSetEntidade.CommandText := ´SELECT Nome, InscricaoFederal, Codigo FROM Entidade WHERE Codigo In ´ + ´(SELECT CodigoEntidade FROM Fornecedores) AND Codigo IN (´ + FORNECEDOR.CODIGO + ´)´; if (Edit2.Text <> ´´) then begin DMEntidade.QSQLDataSetEntidade.CommandText := DMEntidade.QSQLDataSetEntidade.CommandText + ´ AND Nome LIKE :Par_Nome´; if Length(Edit2.Text) >= 60 then DMEntidade.QSQLDataSetEntidade.ParamByName(´PAR_NOME´).AsString := Edit2.Text else DMEntidade.QSQLDataSetEntidade.ParamByName(´PAR_NOME´).AsString := QuotedStr(Edit2.Text + ´¬´); end; if (Edit3.Text <> ´´) then begin DMEntidade.QSQLDataSetEntidade.CommandText := DMEntidade.QSQLDataSetEntidade.CommandText + ´ AND InscricaoFederal LIKE :PAR_CPF´; if Length(Edit3.Text) >= 18 then DMEntidade.QSQLDataSetEntidade.ParamByName(´PAR_CPF´).AsString := Edit3.Text else DMEntidade.QSQLDataSetEntidade.ParamByName(´PAR_CPF´).AsString := QuotedStr(Edit3.Text + ´¬´); end; DMEntidade.QSQLDataSetEntidade.CommandText := DMENTIDADE.QSQLDataSetENTIDADE.CommandText + ´ ORDER BY Nome´; DMEntidade.QSQLDataSetEntidade.active := True; DMEntidade.QEntidade.Active := True; end;
08/04/2006
Lorde_morte.
Os componentes estao corretos mas ainda assim vou por aqui:
object QDataSetProviderENTIDADE: TDataSetProvider DataSet = QSQLDataSetENTIDADE Left = 64 Top = 232 end
object DSQENTIDADE: TDataSource AutoEdit = False DataSet = QENTIDADE Left = 192 Top = 235 end
Abrigado pela atenção pessoa.
08/04/2006
Rjun
08/04/2006
Lorde_morte.
DMEntidade.QSQLDataSetEntidade.CommandText := DMEntidade.QSQLDataSetEntidade.CommandText + ´ AND Nome LIKE :Par_Nome´; DMEntidade.QSQLDataSetEntidade.ParamByName(´PAR_NOME´).AsString := ´EDUARDO´;
O erro continuou.
Até ja reiniciei o computador.
:(
08/04/2006
Lorde_morte.
DMEntidade.QSQLDataSetEntidade.CommandText := DMEntidade.QSQLDataSetEntidade.CommandText + ´ AND Nome LIKE :Par_Nome´; DMEntidade.QSQLDataSetEntidade.ParamByName(´PAR_NOME´).AsString := QuotedStr(´Eduardo´);
Que erro estranho.
08/04/2006
Rjun
08/04/2006
Lorde_morte.
DMEntidade.QSQLDataSetEntidade.CommandText := DMEntidade.QSQLDataSetEntidade.CommandText + ´ AND InscricaoFederal LIKE :PAR_CPF´;
DMEntidade.QSQLDataSetEntidade.CommandText := DMEntidade.QSQLDataSetEntidade.CommandText + ´ AND Nome LIKE :Par_Nome´;
Mesmo que eu atribua valores aos parametros, por meio dois Parambyname, o sistema esta acusando que eles estao vazios.
:(
Clique aqui para fazer login e interagir na Comunidade :)