Problema com atualização usando DbExpress
17/08/2004
0
Caros colegas;
Quando tento atualizar um campo do tipo DateTime usando uma instrução sql com o DbExpress ocorre o seguinte erro: ´Dbx Error: Invalid Field Type.´, ou seja, informando que o tipo de campo é inválido. Alguem pode me dizer pq?
Código Utilizado:
With Qry do begin
Close;
Sql.Clear;
Sql.Add(´UPDATE TABELA SET PT_ACESS = :P00, PT_SITUACAO = :P01´+
´ WHERE CODIGO = :P02´);
Params[00].AsDateTime := Date + Time;
// OU Params[00].AsDateTime := Now;
Params[01].AsString := ´ACESSADA´;
Params[02].AsString := CdPadrao.FieldByName(´CODIGO´).AsString;
ExecSql;
end;
Quando tento atualizar um campo do tipo DateTime usando uma instrução sql com o DbExpress ocorre o seguinte erro: ´Dbx Error: Invalid Field Type.´, ou seja, informando que o tipo de campo é inválido. Alguem pode me dizer pq?
Código Utilizado:
With Qry do begin
Close;
Sql.Clear;
Sql.Add(´UPDATE TABELA SET PT_ACESS = :P00, PT_SITUACAO = :P01´+
´ WHERE CODIGO = :P02´);
Params[00].AsDateTime := Date + Time;
// OU Params[00].AsDateTime := Now;
Params[01].AsString := ´ACESSADA´;
Params[02].AsString := CdPadrao.FieldByName(´CODIGO´).AsString;
ExecSql;
end;
Alex Maia
Curtir tópico
+ 0
Responder
Posts
17/08/2004
Vinicius2k
Colega,
O Campo na tabela é do tipo TimeStamp, correto?
Bem, com dbExpress campos do tipo TimeStamp não são tratatos como TDateTime e sim TSQLTimeStamp (detalhes sobre este tipo record no help do Delphi)...
A forma mais simples de fazer o que vc precisa é determinar o tipo de dado do parametro e em seguida atribuir à propriedade value, que é do tipo Variant, o retorno da função Now...
Espero ter ajudado...
T+
O Campo na tabela é do tipo TimeStamp, correto?
Bem, com dbExpress campos do tipo TimeStamp não são tratatos como TDateTime e sim TSQLTimeStamp (detalhes sobre este tipo record no help do Delphi)...
A forma mais simples de fazer o que vc precisa é determinar o tipo de dado do parametro e em seguida atribuir à propriedade value, que é do tipo Variant, o retorno da função Now...
with qry do begin Close; Sql.Clear; Sql.Add(´UPDATE TABELA SET PT_ACESS = :P00, PT_SITUACAO = :P01´+ ´ WHERE CODIGO = :P02´); {*****} Params[00].DataType:= ftTimeStamp; Params[00].Value:= Now; {*****} Params[01].AsString := ´ACESSADA´; Params[02].AsString := CdPadrao.FieldByName(´CODIGO´).AsString; ExecSql; end;
Espero ter ajudado...
T+
Responder
17/08/2004
Rômulo Barros
With Qry do begin Close; Sql.Clear; Sql.Add(´UPDATE TABELA SET PT_ACESS = :P00, PT_SITUACAO = :P01´+ ´ WHERE CODIGO = :P02´); Params.ParamByName(P00).AsDateTime := Date + Time; // OU Params[00].AsDateTime := Now; Params.ParamByName(P01).AsString := ´ACESSADA´; Params.ParamByName(P02).AsString := CdPadrao.FieldByName(´CODIGO´).AsString; ExecSql; end;
Responder
Clique aqui para fazer login e interagir na Comunidade :)