Jump to content
Fórum Script Brasil
  • 0

Erro com 2 filtros


MagoDanger

Question

Olá pessoal

Estou com um problema nesse código:

begin
with dm.q_pag_prop do
begin
Close;
SQL.Clear;
SQL.Add('select * from tbl_pag_prop where id_prop = ' + DBEdit1.Text);
SQL.Add('AND subcodigo = ' + QuotedStr(DBEdit33.Text));
Open;

Preciso que ele filtre informações pela id_prop e pelo subcodigo

Por exemplo:

todos os lançamentos que a id_prop esteja com o valor 20 e o sbcodigo com o valor 1 (o id_prop, cada cadatro tem seu número, porém no subcodigo é o valor 1 ou 2).

O problema é que quando faço esse filtro parece o seinte erro:

'Tipo de dados incompativel na expressão critério'

Sinceramente não consigo achar a solução, alguém pode me dar essa força?

Banco de dados que estou usando pra esse projeto: ACCESS

Os 2 campos são do tipo Texto

Desde já agradeço a ajuda! Abraços

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

'Tipo de dados incompativel na expressão critério'

A função QuotedStr, retorna a string que é informada como parametro entre aspas, por exemplo;

edit1.text := 'Delphi'  /// então voce pode usar de 2 maneiras

table1.filter := 'campo  = ' + QuotedStr(edit1.text);

que tem o mesmo efeito de

table1.filter := 'campo = ' + '''+ edit 1.text +'''

ambas retornariam o seguinte valor para o table1.filter

campo = 'Delphi'
no seu caso ficaria:
begin
with dm.q_pag_prop do
begin
Close;
SQL.Clear;
SQL.Add('select * from tbl_pag_prop where id_prop = ' + '''+DBEdit1.Text+''');
SQL.Add('AND subcodigo = ' + QuotedStr(DBEdit33.Text));
Open;
ou
begin
with dm.q_pag_prop do
begin
Close;
SQL.Clear;
SQL.Add('select * from tbl_pag_prop where id_prop = ' + QuotedStr(DBEdit1.Text);
SQL.Add('AND subcodigo = ' + QuotedStr(DBEdit33.Text));
Open;

abraço

Link to comment
Share on other sites

  • 0

Ola Jhonas,

só fazer umas correções ae no seu código,

na verdade são 4 aspas e não 3:

begin
with dm.q_pag_prop do
begin
Close;
SQL.Clear;
SQL.Add('select * from tbl_pag_prop where id_prop = ' +''''+DBEdit1.Text+''''+'');
SQL.Add('AND subcodigo = ' + QuotedStr(DBEdit33.Text));
Open;
aqui faltou um parentese no final na primeira linha do SQL.Add, ficando assim:
begin
with dm.q_pag_prop do
begin
Close;
SQL.Clear;
SQL.Add('select * from tbl_pag_prop where id_prop = ' + QuotedStr(DBEdit1.Text));
SQL.Add('AND subcodigo = ' + QuotedStr(DBEdit33.Text));
Open;
outra forma é essa:
begin
with dm.q_pag_prop do
begin
Close;
SQL.Clear;
SQL.Add('select * from tbl_pag_prop where id_prop = ' +#39+DBEdit1.Text+#39+'');
SQL.Add('AND subcodigo = ' +#39+DBEdit33.Text+#39+'');
Open;

Abs. Progr'amador

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...