C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[38723] Re:Re:파라독스에서 테이블생성시
질문이 [] 1205 읽음    2005-01-11 20:54
우한규님이 답변 한것 처름 하니 되네요..
조금만 변경했습니다.

        TTable* table = dynamic_cast<TTable *>(DM->TableCommon);// <==DM->TableCommon은 실제 테이블
        try
        {
        table->Active = false ;

        table->DatabaseName = "DB명" ;
        table->TableType = ttParadox ;
        table->TableName = "kk.DB"  ;

        table->FieldDefs->Clear();

        table->FieldDefs->Add("Seq", ftAutoInc,   0,  false);  // <== 여기 auto_increment 
        table->FieldDefs->Add("Mode", ftString,   6,  true);
        table->FieldDefs->Add("TestName", ftString,   30,  true);
        table->FieldDefs->Add("Channel", ftInteger,   0,  true);
        table->FieldDefs->Add("ModelName", ftString,   30,  true);
        table->FieldDefs->Add("ProgramName", ftString,   30,  true);
        table->FieldDefs->Add("Cycle", ftInteger,   0,  false);
        table->FieldDefs->Add("StartDate", ftString,   10,  true);
        table->FieldDefs->Add("StartTime", ftString,   10,  true);
        table->FieldDefs->Add("StopDate", ftString,   10,  false);
        table->FieldDefs->Add("StopTime", ftString,   10,  false);
        table->FieldDefs->Add("StopCode", ftString,   10,  false);
        table->FieldDefs->Add("OperatorCode", ftString,   10,  false);
        table->FieldDefs->Add("Remark", ftString,   10,  false);
        table->FieldDefs->Add("Result", ftString,   10,  false);
        table->FieldDefs->Add("Path", ftString,   200,  true);

        table->IndexDefs->Clear();
        table->IndexDefs->Add("", "Seq", TIndexOptions() << ixUnique << ixPrimary);

        table->CreateTable();
        }



우한규 님이 쓰신 글 :
: 질문이 님이 쓰신 글 :
: : 파라독스 DB 로 테이블을 생성할려고 합니다.
: : Desktop을 이용하지 않고
: : 순수 SQL문으로 만들려고 합니다.
: : 1)
: : CREATE TABLE 테이블명 (
: :     SEQ   int NOT NULL,  --->여기서 NOT NULL 아 되네요.. 다른 방법이 있느지요.
: :     NAME  varchar(20)
: : )
: :
: : 2)  auto_increment  를 어떻게 만드나요..
: :
: : 아시는 분은 대답 해 주시면 정말로 감사 합니다.
:
: auto increment는 잘 모르겠구요..
: 빌더 도움말에 보시면 아래와 같이 나와 있습니다. 해보니 잘 되네요.
: 전 테이블은 아래와 같이 만듭니다.
:
:     TTable *exam_table= new TTable(Form1);
:
:     exam_table->Active=false;
:     exam_table->DatabaseName = "exam_table";
:     exam_table->TableName ="exam_table.db";
:     exam_table->TableType = ttParadox;
:     exam_table->FieldDefs->Clear();
: //실제적으로 데이블 만드는 루틴.
:     TFieldDef *NewField;
:
:     NewField = exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftInteger;
: //    NewField->Size = 8;
:     NewField->Name = "field1";
:     NewField->Required = true;
:
:     NewField = exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftString;
:     NewField->Size = 8;
:     NewField->Name = "field2";
:
:     NewField = exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftString;
:     NewField->Size = 20;
:     NewField->Name = "field3";
:
:     NewField = exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftString;
:     NewField->Size = 25;
:     NewField->Name = "field4";
:
:     NewField = exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftString;
:     NewField->Size = 15;
:     NewField->Name = "field5";
:
:     NewField = exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftString;
:     NewField->Size = 13;
:     NewField->Name = "field5";
:
:     NewField = exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftString;
:     NewField->Size = 13;
:     NewField->Name = "field6";
:
:     NewField = exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftString;
:     NewField->Size = 13;
:     NewField->Name = "field7";
:
:     NewField = exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftString;
:     NewField->Size = 13;
:     NewField->Name = "field8";
:
:     NewField = exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftString;
:     NewField->Size = 30;
:     NewField->Name = "field9";
:
:     NewField = exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftString;
:     NewField->Size = 80;
:     NewField->Name = "field10";
:
:     NewField = exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftString;
:     NewField->Size = 80;
:     NewField->Name = "field11";
:
:     NewField = exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftString;
:     NewField->Size = 10;
:     NewField->Name = "field12";   
:
:     NewField = exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftString;
:     NewField->Size = 30;
:     NewField->Name = "field13";  
:
:     NewField = exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftString;
:     NewField->Size = 15;
:     NewField->Name = "field14";   
:    
:     NewField = exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftString;
:     NewField->Size = 40;
:     NewField->Name = "field15";    
:
:     NewField = exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftParadoxOle;
:     NewField->Size = 240;
:     NewField->Name = "field16";
:
:     NewField=exam_table->FieldDefs->AddFieldDef();
:     NewField->DataType = ftFmtMemo;
:     NewField->Size=500;
:     NewField->Name="field17";
: //ZEPIROX 2003/5/14 아래의 코드가 들어가면 위에서 설정해준 값들이 모두 초기화되어
: //Invalid parameter Error가 뜨게 된다. 없는게 맞다.
:
: //    exam_table->FieldDefs->Clear();
:
:
:                  exam_table->CreateTable();
:
: 이렇게 해주면 Table이 만들어집니다.
:
: 코드중   NewField->DataType = "" 은 해당 필드 타입입니다.
:
: 필드 타입은 빌더 도움말을 참고하세요.
:
: 그럼 도움이 되셨길 바랍니다.

+ -

관련 글 리스트
38657 파라독스에서 테이블생성시 질문이 854 2005/01/06
38709     Re:파라독스에서 테이블생성시 우한규 975 2005/01/10
38723         Re:Re:파라독스에서 테이블생성시 질문이 1205 2005/01/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.