dbExpress에서 파라미터로 ftDateTime 타입을 사용하면 "Invalid Field Type" 에러 발생

Abstract: dbExpress에서 파라미터로 ftDateTime 타입을 사용하면 "Invalid Field Type" 에러 발생

해당 제품:

  • 델파이 6, 7
  • 윈도우

개요

dbExpress에서 ftDateTime 타입을 사용할 때 Invalid Field Type 에러를 피하는 방법을 설명합니다.

상세설명

param 필드 타입으로 ftDateTime 대신 ftTimeStamp을 사용하십시오. TSQLTimeStamp 타입의 변수를 만들고, TDateTime 값을 TSQLTimeStamp 타입으로 바꾸기 위해서는 DateTimeToSQLTimeStamp 함수를 사용하면 됩니다. uses 절에 SqlTimSt 유닛을 추가해야 합니다. 아래에 SQLTimeStamp를 사용하는 간단한 코드 예를 보여드립니다.
procedure TForm1.UseTimeStamp(myDate: TDateTime);

var
  mySTS: TSQLTimeStamp;
begin
  mySTS := DateTimeToSQLTimeStamp(myDate);
  with SQLQuery1 do
  begin 
    Params.CreateParam(ftTimeStamp, 'DATE', ptInput);
    ParamByName('DATE').AsSQLTimeStamp := mySTS;
    SQL.Text := 'INSERT INTO PARAMTABLE ' +
                '(DATEFIELD) ' +
                'VALUES (:DATE)';
    ExecSQL(false);
  end;

end;