2016년 2월 12일 금요일

FireMonkey SQLite DBExpress vs FireDAC

FireMonkey 에서 SQLite 사용시 DBExpress의 TSQLConnection을 사용하면
다음과 같이 SQL 문 안에 as 항목을 사용하면 실행시 필드없음 에러가 발생한다.

    QueryI.Close;
    QueryI.SQL.Clear;
    QueryI.Sql.Add( 'SELECT count(*) as cnt from PackingMaster ' );
    QueryI.Open;
    result := QueryI.FieldByName('cnt').AsInteger;

이때는 DBExpress의 TSQLConnection 대신 FireDAC의 TFDConnection을 사용하면 에러 없이 잘 실행된다.

참고로 Data Module Unit안에 FireDAC 컴포넌트를 사용하면 컴파일시 FireDAC.VCLUI.Wait 가 자동추가 되어 타겟을 안드로이드나 iOS로 지정시 에러가 발생하는데 이때는 Data Module의 ClassGroup의 속성값을 FMX.Controls.TControl 로 바꿔주면 된다.


댓글 없음:

댓글 쓰기