처음 질문을 올려보는군요...궁금해서 질문 드립니다..
query 에서 테이블의 필드에 내용을 써넣거나 읽어 올때
parambyname 이나 fieldbyname으로 읽어 올수 있는걸로
아는데요....
table에 대한 정보는 패러독스란 사실만 알고 있고
한개의 테이블이 있다고 할때 필드명을 바꾸거나
읽어 올때 어떻게 name을 읽어 올수 있는지 ....
프로그램상에서 어떻게 바꾸면 되는지...가능한지....
궁금하네요...
코딩부분을 알고 싶습니다......
그럼...질문이 제대로 된건지 모르겠군요....
> 처음 질문을 올려보는군요...궁금해서 질문 드립니다..
> 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.