socorro, me ajudem por favor!!!!!!!

Delphi

09/04/2003

Olá pessoal,

Estou tentando fazer um formulário onde eu possa selecionar apenas os alunos q o usuário deseja imprimir, para isso tentei usar o LOCATE, já q estou trabalhando com tabeas Access. Só q fica sempre travando, então agora decidi usar uma consulta atualização. Os campos q possuo em meu formulário de seleção são:

[color=blue:f8829361a1]ComboCurso[/color:f8829361a1]: Dados de origem TBCurso;
[color=blue:f8829361a1]ComboAlunos[/color:f8829361a1]: Dados de origem TBConcludentes;
[color=blue:f8829361a1]TxtCodigo[/color:f8829361a1]: Recebe o código do aluno (ID_Registro) ao clicar num nome da ComboAlunos.

A minha consulta está no evento OnExit da ComboAlunos q diz:

[color=red:f8829361a1]If TxtCodigo.Text <> ´´ Then
Begin
DMDados.SelecionarAlunos.Close;
DMDados.SelecionarAlunos.SQL.Clear;
DMDados.SelecionarAlunos.SQL.Add(´UPDATE TB_Concludentes SET Selecionar=S WHERE ID_Registro:P1´);
DMDados.SelecionarAlunos.Parameters.ParamByName(´P1´).Value:=StrToIntDef(TxtCodigo.Text,0);
DMDados.SelecionarAlunos.ExecSQL;
End;[/color:f8829361a1]

[color=blue:f8829361a1][b:f8829361a1]Onde, ID_Registro é o código do aluno[/b:f8829361a1][/color:f8829361a1]

O problema é q ao ser executada está me retornando a segunte mensagem:

[color=red:f8829361a1][Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (operador faltando) na expressão de consulta ´ID_Registro?´[/color:f8829361a1]

Por favor, alguém pode me dizer o q está faltando?

Desde já agradeço sua ajuda,

Ilano.

Favor escrever o título em minúsculas
Zoom


Ilanocf

Ilanocf

Curtidas 0

Respostas

Hhhhhh

Hhhhhh

09/04/2003

If TxtCodigo.Text <> ´´ Then 
Begin 
  DMDados.SelecionarAlunos.Close; 
  DMDados.SelecionarAlunos.SQL.Clear; 
  DMDados.SelecionarAlunos.SQL.Add(´UPDATE TB_Concludentes SET Selecionar=:VLR (WHERE ID_Registro = :P1)´); 
  DMDados.SelecionarAlunos.Parameters.ParamByName(´VLR´).Value:=´S´; 
  DMDados.SelecionarAlunos.Parameters.ParamByName(´P1´).Value:=StrToIntDef(TxtCodigo.Text,0); 
  DMDados.SelecionarAlunos.ExecSQL; 
End;


- o que é [b:c709848add]S[/b:c709848add]??? se for um valor para o campo, utilize a sintaxe correta para passar o valor ou utilize parâmetro como eu sugeri acima.
- na clausula [b:c709848add]where[/b:c709848add], faltou o sinal de igual (=) entre o campo e o parâmetro


GOSTEI 0
Hhhhhh

Hhhhhh

09/04/2003

o campo [b:22ab173449]selecionar[/b:22ab173449], no banco de dados é do tipo [b:22ab173449]CHAR(1)[/b:22ab173449]???


GOSTEI 0
Hhhhhh

Hhhhhh

09/04/2003

Ilano,

inicialmente não tenho nada em mente. Mas a sugestão é vc tentar executar o comando [b:77e69c8219]update[/b:77e69c8219] na ide do banco de dados (qual é o banco de dados???). Depois que fizer isso com sucesso, execute o comando, sem parâmetro no Delphi para ver se funciona.

A idéia é tentar cercar o erro, uma vez que não sabemos onde está.


GOSTEI 0
POSTAR