Q&A

  • 테이블의 필드이름을 알아 내려면...
처음 질문을 올려보는군요...궁금해서 질문 드립니다..

query 에서 테이블의 필드에 내용을 써넣거나 읽어 올때

parambyname 이나 fieldbyname으로 읽어 올수 있는걸로

아는데요....



table에 대한 정보는 패러독스란 사실만 알고 있고

한개의 테이블이 있다고 할때 필드명을 바꾸거나

읽어 올때 어떻게 name을 읽어 올수 있는지 ....

프로그램상에서 어떻게 바꾸면 되는지...가능한지....

궁금하네요...

코딩부분을 알고 싶습니다......

그럼...질문이 제대로 된건지 모르겠군요....

1  COMMENTS
  • Profile
    구창민 1999.10.31 10:06
    갤럭시 wrote:

    > 처음 질문을 올려보는군요...궁금해서 질문 드립니다..

    > query 에서 테이블의 필드에 내용을 써넣거나 읽어 올때

    > parambyname 이나 fieldbyname으로 읽어 올수 있는걸로

    > 아는데요....

    >

    > table에 대한 정보는 패러독스란 사실만 알고 있고

    > 한개의 테이블이 있다고 할때 필드명을 바꾸거나

    > 읽어 올때 어떻게 name을 읽어 올수 있는지 ....

    > 프로그램상에서 어떻게 바꾸면 되는지...가능한지....

    > 궁금하네요...

    > 코딩부분을 알고 싶습니다......

    > 그럼...질문이 제대로 된건지 모르겠군요....





    아래 내용을 참고하세요

    즐거운 프로그래밍 하시구요~



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls, Db, DBTables;



    type

    TForm1 = class(TForm)

    Database1: TDatabase;

    Table1: TTable;

    ListBox1: TListBox;

    Memo1: TMemo;

    procedure FormActivate(Sender: TObject);

    procedure ListBox1DblClick(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}



    procedure TForm1.FormActivate(Sender: TObject);

    begin

    Database1.Connected := False;

    Database1.Connected := True;



    // DataBase의 모든 테이블명을 ListBox로 읽어 들인다

    Session.GetTableNames(Database1.DatabaseName, '', False, False, ListBox1.Items);

    end;



    procedure TForm1.ListBox1DblClick(Sender: TObject);

    var

    i: Integer;

    m: string;

    begin

    if (Database1.Connected = False) or

    (ListBox1.ItemIndex < 0) then

    begin

    MessageBeep(-1);

    System.Exit;

    end;



    // 테이블명 할당

    Table1.TableName := ListBox1.Items[ListBox1.ItemIndex];

    Table1.Open;



    Memo1.Clear;

    for i := 0 to (Table1.FieldCount -1) do

    begin

    // 각 필드의 type을 구한다

    case Table1.Fields[i].DataType of

    ftUnknown : m := 'Unknown ';

    ftString : m := 'String ';

    ftSmallint : m := 'SmallInteger';

    ftInteger : m := 'Integer ';

    ftWord : m := 'Word ';

    ftBoolean : m := 'Boolean ';

    ftFloat : m := 'Float ';

    ftCurrency : m := 'Currency ';

    ftBCD : m := 'BCD ';

    ftDate : m := 'Date ';

    ftTime : m := 'Time ';

    ftDateTime : m := 'DateTime ';

    ftBytes : m := 'Byte ';

    ftVarBytes : m := 'VarBytes ';

    ftBlob : m := 'Blob ';

    ftMemo : m := 'Memo ';

    ftGraphic : m := 'Graphic ';

    end;



    // 순번 + 타입 + 크기 + 필드명

    Memo1.Lines.Add(IntToStr(i+1)+Chr(9)+m+IntToStr(Table1.Fields[i].DisplayWidth)+Chr(9)+Table1.Fields[i].DisplayLabel);

    end;

    end;



    end.