SQL.ADD
Possuo a seguinte procedure..
mas quando eu clico em filtar da erro.. e acusa o comando GROUP
como erro... mas eu testo somente o código sql e ele funciona direitinho...
alguem sabe me dizer o que ocorre de errado?
mas quando eu clico em filtar da erro.. e acusa o comando GROUP
como erro... mas eu testo somente o código sql e ele funciona direitinho...
alguem sabe me dizer o que ocorre de errado?
procedure TForm1.Button2Click(Sender: TObject);
begin
IBOQuery2.Close;
IBOQuery2.SQL.Clear;
IBOQuery2.SQL.ADD(´select rua.CD_UF as ´UF´,cast (DS_UF as varchar(20)) as´);
IBOQuery2.SQL.ADD(´´Unidade Federativa´,rua.DS_CIDADE as ´Cidade´,´);
IBOQuery2.SQL.ADD(´count(rua.CD_CEP) as ´Qt. de CEPs´ from TAB_RUA rua,´);
IBOQuery2.SQL.ADD(´TAB_UF uf where rua.CD_UF = uf.CD_UF and rua.CD_UF = ´+combo+´´);
IBOQuery2.SQL.ADD(´group by rua.CD_UF,DS_UF,rua.DS_CIDADE´);
IBOQuery2.SQL.ADD(´order by 4 desc´);
IBOQuery2.Open;
end;
Douglass
Curtidas 0
Respostas
Douglass
01/11/2007
procedure TForm1.Button2Click(Sender: TObject);
begin
IBOQuery2.Close;
IBOQuery2.SQL.Clear;
IBOQuery2.SQL.ADD(´select rua.CD_UF as ´UF´,cast (DS_UF as varchar(20)) as´);
IBOQuery2.SQL.ADD(´´Unidade Federativa´,rua.DS_CIDADE as ´Cidade´,´);
IBOQuery2.SQL.ADD(´count(rua.CD_CEP) as ´Qt. de CEPs´ from TAB_RUA rua,´);
IBOQuery2.SQL.ADD(´TAB_UF uf where rua.CD_UF = uf.CD_UF and rua.CD_UF = ´+QuotedStr(combo));
IBOQuery2.SQL.ADD(´group by rua.CD_UF,DS_UF,rua.DS_CIDADE´);
IBOQuery2.SQL.ADD(´order by 4 desc´);
IBOQuery2.Open;
end;
GOSTEI 0
Mayron Cachina
01/11/2007
Qual o erro que ta dando?
tenta colocar o group com os nomes q vc apelida com o ´as´...
tenta colocar o group com os nomes q vc apelida com o ´as´...
GOSTEI 0
Arc
01/11/2007
qual a mensagem que aparece ???
olhando assim de cara, parece faltar espaços nos seus (´´)
olhando assim de cara, parece faltar espaços nos seus (´´)
GOSTEI 0
Adriano Santos
01/11/2007
Posso dar umas dicas?
[list:31f8f6e714]
[*:31f8f6e714]Procure usar MAÍSCULAS nas Selects. Alguns bancos de dados e componentes de acesso costumam se perder.
[*:31f8f6e714]Procure não usar o número do campo no Order By, para dar manutenção é pouco ruim quando se tem muitos campos no Select. Veja que no exemplo abaixo dei nome ao último campos COUNT e usei ele para dar order by.
[*:31f8f6e714] Se o seu apelido não for composto, não precisa de áspas como em UF e Cidade por exemplo.
[*:31f8f6e714]E por último utilize parâmetros, é mais fácil de entender a rotina.
[/list:u:31f8f6e714]
Outra coisa: na linha:
Quem é [b:31f8f6e714]combo[/b:31f8f6e714]? Uma variável? Transformei isso em parâmetro. Veja abaixo.
E notou como visualmente ficou mais organizado o código?
[list:31f8f6e714]
[*:31f8f6e714]Procure usar MAÍSCULAS nas Selects. Alguns bancos de dados e componentes de acesso costumam se perder.
[*:31f8f6e714]Procure não usar o número do campo no Order By, para dar manutenção é pouco ruim quando se tem muitos campos no Select. Veja que no exemplo abaixo dei nome ao último campos COUNT e usei ele para dar order by.
[*:31f8f6e714] Se o seu apelido não for composto, não precisa de áspas como em UF e Cidade por exemplo.
[*:31f8f6e714]E por último utilize parâmetros, é mais fácil de entender a rotina.
[/list:u:31f8f6e714]
Outra coisa: na linha:
rua.CD_UF = ´+QuotedStr(combo)
Quem é [b:31f8f6e714]combo[/b:31f8f6e714]? Uma variável? Transformei isso em parâmetro. Veja abaixo.
with IBOQuery, SQL do begin Close; SQL.Clear; Add(´SELECT´); Add(´ RUA.CD_UF AS UF, CAST(DS_UF AS VARCHAR(20)) AS "Unidade Federativa",´); Add(´ RUA.DS_CIDADE AS Cidade, COUNT(RUA.CD_CEP) as "Qt. de CEPs" AS CONTADOR´); Add(´FROM´); Add(´ TAB_RUA RUA,´); Add(´ TAB_UF UF´); Add(´WHERE´); Add(´ RUA.CD_UF = UF.CD_UF AND´); Add(´ RUA.CD_UF = :COMBO´); Add(´GROUP BY´); Add(´ RUA.CD_UF, DS_UF, RUA.DS_CIDADE´); Add(´ORDER BY CONTADOR DESC´); ParamByName(´COMBO´).AsString := Edit1.Text; Open; end;
E notou como visualmente ficou mais organizado o código?
GOSTEI 0