//아래 소스는 질답란에서 찾은 소스입니다. 답히신 분은 밝히지 않겠습니다.
필드를 생성하는중에 Number, Char 타입과
기본키를 한개 이상 지정 하고 싶습니다. 가르쳐 주십시요.
감사합니다.
procedure TFmB7011.BitBtn2Click(Sender: TObject);
var TableList : TStringList;
i : Integer;
begin
TableList := TStringList.Create;
try
// TaeManm.DB 존재유무 체크 후 존재하면 삭제
Session.GetTableNames('TaeManm', '*.DB', False, False, TableList);
for i := 0 to TableList.Count - 1 do begin
if TableList.Strings[i] = 'test1' then begin
ShowMessage('찾았습니다. 삭제합니다.');
with SQL7013 do begin
DatabaseName := 'TaeManm';
Close;
SQL.Clear;
SQL.Add('drop table ''Test1.DB''');
ExecSQL;
end;
end;
end;
finally
TableList.Free;
end;
with Table1 do begin
Active := False; // Table을 Disconnect시킨다
DatabaseName := 'TaeManm'; // Database Alias
TableName := 'test1'; // Table Name
TableType := ttParadox; // Type = ttDefault, ttParadox, ttDbase
with FieldDefs do begin //Field 집합형
Clear;
Add('Field1', ftString, 10, True); // FieldName, FieldType, Size, Required
Add('Field2', ftString, 25, False);
Add('Field3', ftString, 30, False);
Add('T_usc', ftString, 15, False);
//요기서 Number를 타입으로 주고 싶은데요 어찌 해야 하나요?
//또 Char 타입은 어찌 주는가요? 아래는 둘다 에러입니다.
//Add('T_amnt', ftfloat, 12, False );
//Add('T_clcd', ftChar, 4, False);
end;
with IndexDefs do begin
Clear;
Add('Index1', 'Field1', [ixPrimary, ixUnique]); // IndexName, FieldName, Type
//위 구문으로 키값이 한개 정해졌는데요.. 한개 이상은 어찌 지정해주나요? 궁금합니다.
end;
CreateTable; // Table 생성
end;
showmessage('생성');
end;
with Query1 do begin
DatabaseName := 'DBDemos';
with SQL do begin
Clear;
Add('CREATE TABLE "PDoxTbl.db" (ID AUTOINC,');
Add('Name CHAR(255), ');
Add('qty NUMERIC, ');
Add('PRIMARY KEY(ID)) ');
ExecSQL;
Clear;
Add('CREATE INDEX ByName ON "PDoxTbl.db" (Name)');
ExecSQL;
end;
end;