Q&A

  • 파라독스 Table에 Data Load ?
informix database에서 unload한 file을

informix에 table과 같은구조의 paradox table을 PC에 만들고 data를

load할 수 있는 방법이 있습니까.

4  COMMENTS
  • Profile
    이재식 1999.09.15 20:36
    안정한 wrote:

    > informix database에서 unload한 file을

    > informix에 table과 같은구조의 paradox table을 PC에 만들고 data를

    > load할 수 있는 방법이 있습니까.





    안녕하세요?

    있습니다.

    델파이에서는 로컬 DB 끼리, 혹은 서버 DB끼리,

    혹은 로컬과 서버사이에 테이블의 schema와 content(data)를 서로간에

    upload, download할 수 있는 그런 상호작용 기능을 제공합니다.

    바로 DataPump라는 응용 프로그램입니다.

    이것은 통상 'Program FilesCommon FilesBorland SharedBDE'라는

    디렉토리에 존재합니다.

    한 번 해 보세요.

    다루는 방법을 자세히 알고싶은것은 안에 있는 도움말을 참고하세요.

    그다지 어렵지 않게 조작하는 방법을 알게 될것입니다.

    그럼 행운이 있기를...



  • Profile
    안정한 1999.09.15 18:56
    답변 감사합니다.



    Datapump.exe를 이용하면 편리한데



    저는 delphi program에서 적용하려 합니다.



    예로 Query componet에 load from "test.dat" insert into test처럼요...





  • Profile
    이재식 1999.09.16 03:11


    그렇다면 실제로 DB와의 Pump가 아니라

    텍스트파일(어떤 DB의 형식이었든)에 있는 데이터를

    ParaDox로 옮기는 작업이라고 이해하면 되나요?

    그럼, 결국 Infomix 테이블의 데이터는

    txt형식의 파일로 저장되어 있게군요.

    그리고 저장되어 있는 데이터 형식은

    공백으로 분리되어있겠죠.

    예를 들어, (이하 이렇게 데이터가 있다고 가정하겠습니다)

    홍길동 20세 100점

    말숙이 20세 80점

    .

    .

    .

    이런식으로요,

    맞나요?

    맞다고 가정하고 글을 써야 겠군요.

    네, 그렇게 할 수 있습니다.

    제가 코딩을 할 수는 없고

    굵직한 부분만 말씀드릴께요.

    이렇게 하면 되요.

    먼저 FileHandle를 만들어야 해요.

    파일변수를 선언해야 되죠.

    var

    FileHandle : TextFile ;

    그리고, 파일을 열어요.

    AssignFile(FileHandle, 'c:tempdata.txt') ;

    reset(FileHandle) ;

    여기까지가 파일을 열어주는 부분입니다.



    그런다음 파일에 있는 데이터를 읽어야 겠죠.

    변수에대해서는 적당한곳에 적당한 타입으로

    선언해 주세요.

    Data, f1, f2, f3변수는 String타입.



    while not Eof(FileHandle) do

    begin

    ReadLn(FileHandle, Data) ;



    f1 := copy(Data, 1, 6) ; // 이름읽기

    f2 := copy(Data, 10, 4) ; // 나이읽기

    f3 := copy(Data, 20, 3) ; // 점수읽기



    try

    DataBase1.StartTransaction ;

    with Query1 do

    begin

    Close ;

    SQL.Clear ;

    SQL.Add('insert into myTable') ;

    SQL.Add('values(:name, :age, :jumsu)') ;

    ParamByName('name').asString := f1 ;

    ParamByName('age').asString := f2 ;

    ParamByName('jumsu').asString := f3 ;



    ExecSQL ;

    end ; // query end

    DataBase1.Commit ;

    except

    CloseFile(FileHandle) ;

    DataBase1.RollBack ;

    Exit ;

    end ; // try end

    end ; // while end

    CloseFile(FileHandle) ;

    혹 설명이 부족하다면 다시 연락주십시요.

    이것은 말그대로 거시적 로직일 뿐,

    세세한것은 직접 구현해야 되겠죠.

    도움이 되었으면 합니다.

    그럼 행운이 있기를...

  • Profile
    이재식 1999.09.15 23:01
    안정한 wrote:

    > 답변 감사합니다.

    >

    > Datapump.exe를 이용하면 편리한데

    >

    > 저는 delphi program에서 적용하려 합니다.

    >

    > 예로 Query componet에 load from "test.dat" insert into test처럼요...

    >

    >



    네, 메일을 보세요.