Fórum Existe algum problema no ADO Access no Delphi7 #284387

10/06/2005

0

Caros amigos,

Estou tendo um problema com o Delphi 7(Update1) + Access + ADO.
Veja que na função abaixo eu verifico se a pessoa ja tem cadastro através
do CPF(String) - se o retorno for >0 então(true).

A função funciona perfeitamente no Delphi 5, porém não funciona
no Delphi 7.

function TFrmTotem.CPFJaExiste(CPF:string) : boolean;
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(´SELECT COUNT(*) AS NUMERO ´);
Query1.SQL.Add(´FROM FUNCIONARIOS´);
Query1.SQL.Add(´WHERE CPF = :Parametro0´);
[color=red:699d2ccfe7]//Esta pasagem de parametro só está funcionando no Delphi 5[/color:699d2ccfe7]
[color=blue:699d2ccfe7]Query1.Parameters[0].Value := CPF;[/color:699d2ccfe7]
Query1.Open;
//O retorno da função é o COUNT da query
Result := Query1NUMERO.asInteger>0;
end;

[color=red:699d2ccfe7]Existe algum problema no ADO no Delphi7.[/color:699d2ccfe7] :?:


Pehdepano

Pehdepano

Responder

Posts

10/06/2005

Rjun

Tente usar ParameterByName.
Se a função é só pra saber se existe registro, sugiro uma alteração.

function TFrmTotem.CPFJaExiste(CPF:string) : boolean; 
begin 
  Query1.SQL.Clear; 
  Query1.SQL.Add(´SELECT Top 1 CPF´); 
  Query1.SQL.Add(´FROM FUNCIONARIOS´); 
  Query1.SQL.Add(´WHERE CPF = :Parametro0´); 
  Query1.Parameters.ParamByName(´Parametro0´).Value := CPF; 
  Query1.Open; 
  try
  {
     Result := not Query1.IsEmpty;
   }
   finally
   {
      Query1.Close;
   }
end; 



Responder

Gostei + 0

10/06/2005

Alfadesign

function TFrmTotem.CPFJaExiste(CPF:string) : boolean; 
begin 
Query1.Close; 
Query1.SLQ.TEXT := ´SELECT COUNT(*) AS NUMERO FROM FUNCIONARIOS WHERE CPF = ´ + ´´´´ + CPF + ´´´´;
Query1.Open; 
Result := Query1.recordcount > 0; 
end; 


Se vc está alimentando a sql em tempo de execução não tem por que usar parâmetros, basta concatenar o valor diretamente na sql.


Responder

Gostei + 0

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

Aceitar