Fórum Erro na SQL - Invalid Use of keyword #208629

22/01/2004

0

Boa noite, estou tendo problemas em lançar uma string (contendo código SLQ) em um componente TQuery, mas está retornando o seguinte erro:
[b:304ea81254]Invalid Use of keyword. Token Select line number 2´[/b:304ea81254], mas eu já testei essa SQL no BDE e me traz o resultado desejado.
Estou usando Delphi 7 com Paradox, e componentes da palheta BDE.

[b:304ea81254]Título editado pelo Moderador (AZ) - Removido: ´URGENTE´[/b:304ea81254]


Facc

Facc

Responder

Posts

22/01/2004

Aroldo Zanela

Colega,

Coloca o fragmento do código pra gente analisar.


Responder

Gostei + 0

22/01/2004

Facc

[quote:8b01ec39c5=´Aroldo Zanela´]Colega,

Coloca o fragmento do código pra gente analisar.[/quote:8b01ec39c5]

Aqui vai o código de onde estou montando a SQL
var SQL : String; Mes : integer; begin Frm_RelCli.Qry_Clientes.Close; Mes := 0; SQL :=´ ´; Frm_RelCli.Qry_Clientes.SQL.Clear; case RdGrp_Tempo.ItemIndex of 0 : begin SQL := ´select * from clientes´; Frm_RelCli.Qry_Clientes.SQL.Add(SQL); end; 1 : begin Mes := SpinEdit1.Value; SQL := ´select * from clientes´; Sql := Sql + ´´´ where extract (month from dt_cadastro) = ´+IntToStr(Mes); Frm_RelCli.Qry_Clientes.SQL.Add(SQL); end; end; case RdGrp_Ordena.ItemIndex of 0 : begin SQL := SQL + ´ order by placa´; Frm_RelCli.Qry_Clientes.SQL.Add(SQL); end; 1 : begin SQL := SQL + ´ order by nome´; Frm_RelCli.Qry_Clientes.SQL.Add(SQL); end; 2 : begin SQL := SQL + ´ order my dt_cadastro´; Frm_RelCli.Qry_Clientes.SQL.Add(SQL); end; 3 : begin SQL := SQL + ´ order by dt_nascimento´; Frm_RelCli.Qry_Clientes.SQL.Add(SQL); end; end; case RdGrp_Local.ItemIndex of 0 : begin Frm_RelCli.Qry_Clientes.SQL.Add(SQL); // Frm_RelCli.Qry_Clientes.Open; showmessage(sql); Frm_RelCli.QuickRep1.Preview; Frm_RelCli.Qry_Clientes.Close; end; 1 : begin Frm_RelCli.Qry_Clientes.SQL.Add(SQL); Frm_RelCli.Qry_Clientes.Open; Frm_RelCli.QuickRep1.Print; Frm_RelCli.Qry_Clientes.Close; end; end; Close;



Responder

Gostei + 0

22/01/2004

Aroldo Zanela

Colega,

Corrija esta linha:

Sql := Sql + ´ where extract (month from dt_cadastro) = ´+IntToStr(Mes);



Responder

Gostei + 0

22/01/2004

Facc

eu corrigi, mas continua dando erro
procedure TFrm_CriaRelCli.BitBtn1Click(Sender: TObject); var SQL : String; Mes : integer; begin Frm_RelCli.Qry_Clientes.Close; Mes := 0; SQL :=´ ´; Frm_RelCli.Qry_Clientes.SQL.Clear; case RdGrp_Tempo.ItemIndex of 0 : begin SQL := ´select * from clientes´; Frm_RelCli.Qry_Clientes.SQL.Add(SQL); end; 1 : begin Mes := SpinEdit1.Value; SQL := ´select * from clientes´; Sql := Sql + ´ where extract (month from dt_cadastro) = ´+IntToStr(Mes); Frm_RelCli.Qry_Clientes.SQL.Add(SQL); end; end; case RdGrp_Ordena.ItemIndex of 0 : begin SQL := SQL + ´ order by placa´; Frm_RelCli.Qry_Clientes.SQL.Add(SQL); end; 1 : begin SQL := SQL + ´ order by nome´; Frm_RelCli.Qry_Clientes.SQL.Add(SQL); end; 2 : begin SQL := SQL + ´ order my dt_cadastro´; Frm_RelCli.Qry_Clientes.SQL.Add(SQL); end; 3 : begin SQL := SQL + ´ order by dt_nascimento´; Frm_RelCli.Qry_Clientes.SQL.Add(SQL); end; end; case RdGrp_Local.ItemIndex of 0 : begin Frm_RelCli.Qry_Clientes.SQL.Add(SQL); Frm_RelCli.Qry_Clientes.Open; //aki está dando o erro //showmessage(sql); Frm_RelCli.QuickRep1.Preview; Frm_RelCli.Qry_Clientes.Close; end; 1 : begin Frm_RelCli.Qry_Clientes.SQL.Add(SQL); Frm_RelCli.Qry_Clientes.Open; Frm_RelCli.QuickRep1.Print; Frm_RelCli.Qry_Clientes.Close; end; end; Close; end;

esse é o código corrigido, está dando erro na hora em que vou abrir a query, se você puder me ajudar, fico muito grato


Responder

Gostei + 0

22/01/2004

Aroldo Zanela

Colega,

Aqui também está com erro: SQL := SQL + ´ order my dt_cadastro´; (troque por By).

Me diz qual as opções que está selecionando.


Responder

Gostei + 0

22/01/2004

Facc

[quote:c69989d034=´Aroldo Zanela´]Colega,

Aqui também está com erro: SQL := SQL + ´ order my dt_cadastro´; (troque por By).

Me diz qual as opções que está selecionando.[/quote:c69989d034]

estou selecionando a sequencia 0, 1, 1, ou seja ], com periodo (1 - Jan),
Nome, e tela, mas já tentei outras opçoes tbm


Responder

Gostei + 0

22/01/2004

Aroldo Zanela

Colega,

Faça a seguinte alteração:

Frm_RelCli.Qry_Clientes.SQL.Add(SQL); 
//Frm_RelCli.Qry_Clientes.Open; //aki está dando o erro
Frm_RelCli.Qry_Clientes.SQL.SaveToFile(´arquivo.sql´);


Coloque o conteúdo aqui pra gente analisar melhor.


Responder

Gostei + 0

22/01/2004

Facc

esse foi o resultado


select * from clientes where extract (month from dt_cadastro) = 1
select * from clientes where extract (month from dt_cadastro) = 1 order by nome
select * from clientes where extract (month from dt_cadastro) = 1 order by nome


Responder

Gostei + 0

23/01/2004

Aroldo Zanela

Colega,

Sacou então?


Responder

Gostei + 0

23/01/2004

Facc

Tá certo, então quer dizer que a TQuery está recebendo essas 3 linhas, então para sanar esse problema devo colocar esse código [b:db7383346b](Form.Query.SQL.Add(SQL))[/b:db7383346b], antes de dar Preview no Report, é isso? E apagar os demais, cerot?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar