|
우한규님이 답변 한것 처름 하니 되네요..
조금만 변경했습니다.
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 = "" 은 해당 필드 타입입니다.
:
: 필드 타입은 빌더 도움말을 참고하세요.
:
: 그럼 도움이 되셨길 바랍니다.
|