Q&A

  • [Q]중복되지 않는 TTABLE 생성
왕뻬고 초보임다.



알리아스 정의된 폴더내에 DBF 파일이 있으면



그 테이블을 불러오고, 없으면 새로 만들어야 하는데



어떻게 해야 하죠?



대부분 델파이 책에는 Table생성이후만 나와서 미치고 환장할 것 같습니다.



아래는, 소스의 일부 입니다.



고수님들의 조언 바랍니다.



if not TblMonth.Exists then

begin

tblMonth.Active := False;

tblMonth.DatabaseName := 'Alias';

tblMonth.TableType := ttFoxpro;

tblMonth.TableName := '1234.DBF';

// 필드정의

tblMonth.CreateTable;

tblMonth.Active := True;

end

else

begin

tblMonth.Active := False;

tblMonth.DatabaseName := 'Alias';

tblMonth.TableType := ttFoxpro;

tblMonth.TableName := '1234.DBF'

tblMonth.Active := True;

end;



2  COMMENTS
  • Profile
    류동균 2000.02.20 11:11
    Bean wrote:

    > 왕뻬고 초보임다.

    >

    > 알리아스 정의된 폴더내에 DBF 파일이 있으면

    >

    > 그 테이블을 불러오고, 없으면 새로 만들어야 하는데

    >

    > 어떻게 해야 하죠?

    >

    > 대부분 델파이 책에는 Table생성이후만 나와서 미치고 환장할 것 같습니다.

    >

    > 아래는, 소스의 일부 입니다.

    >

    > 고수님들의 조언 바랍니다.

    >

    > if not TblMonth.Exists then

    > begin

    > tblMonth.Active := False;

    > tblMonth.DatabaseName := 'Alias';

    > tblMonth.TableType := ttFoxpro;

    > tblMonth.TableName := '1234.DBF';

    > // 필드정의

    > tblMonth.CreateTable;

    > tblMonth.Active := True;

    > end

    > else

    > begin

    > tblMonth.Active := False;

    > tblMonth.DatabaseName := 'Alias';

    > tblMonth.TableType := ttFoxpro;

    > tblMonth.TableName := '1234.DBF'

    > tblMonth.Active := True;

    > end;

    >





    <---답 변--->



    테이블이 존재하지 않으면 테이블을 만들어 주면 되죠.



    Create table 테이블명 (

    필드명 자료형 Not Null (or) Null

    필드명 자료형 Not Null (or) Null

    ......(필요한 필드만큼 반복)

    )



    물론 Query로 실행을 해야겠죠 Query.ExecSql;



  • Profile
    하얀까마귀 2000.02.19 19:00
    먼저 DB가 무엇인지 알아야 겠죠.. 그럼 DB마다 다르긴 하지만 테이블과 프로시져

    트리거의 설정등을 알수있는 테이블이 따로 존재하거든요..



    하지만 이건 DB마다 다르게 해야 하니까..



    DataBase를 쓰면 Session이라는게 전역으로 생기거든요??? 보이진 않지만..



    여기에 보시면 GetTableList라는게 있습니다.

    procedure GetTableNames(const DatabaseName, Pattern: String; Extensions, SystemTables: Boolean; List: TStrings);



    Session.GetTableNames('DEMO','*',True,False,TableList);

    이렇게 하시면 TableList라는 TStrings형 변수에 들어가게 되요...

    그다음은 아시겠죠? 그냥 비고하믄 되지....



    아참.. TSTrings는 만들지 못하니가 TStringlist를 사용하세요..

    ( 혹시나 해서... )



    그럼 즐거운시간 되세요..



    허연 까마귀였습니다.