Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
[급질문]콤보박스와 리스트 박스 사용시..
kwfc라고 하는 엘리어스에 포함된 모든 테이블을
콤보박스에 넣고 그 콤보박스의 테이블을 선택하면
해당 테이블의 필드명이 리스트 박스에 들어가도록
처리할려면 어떻게 해야 하는지 궁금합니다.
이때 선택된 테이블을 'aaa.db'라고 하고 해당 테이블의
필드명을 'bbb'라고 할때 리스트 박스에는 'aaa.bbb'값
이 들어가도록 할려구 합니다.
도움 주시면 감사하겠습니다.
1
COMMENTS
조복기
•
1999.11.05 23:51
김기환 wrote:
> kwfc라고 하는 엘리어스에 포함된 모든 테이블을
>
> 콤보박스에 넣고 그 콤보박스의 테이블을 선택하면
>
> 해당 테이블의 필드명이 리스트 박스에 들어가도록
>
> 처리할려면 어떻게 해야 하는지 궁금합니다.
>
> 이때 선택된 테이블을 'aaa.db'라고 하고 해당 테이블의
>
> 필드명을 'bbb'라고 할때 리스트 박스에는 'aaa.bbb'값
>
> 이 들어가도록 할려구 합니다.
>
> 도움 주시면 감사하겠습니다.
>
안녕하세요..한델 자유게시판지기입니다.
db에 연결된 테이블리스트를 구하고자할려면
TSession.GetTableNames 프로시져를 사용하시면 됩니다..
필드명은 한번에 구할수없어 for로 돌려야 되구요..
테스트하던중에 혹시나해서 구창민님이 만든 팁모아 프로그램에서 검색해보니
설명이 나와있더군요..
(T.T;; 테스트하는데 30분이나 했는데 허무하당.)
밑에 첨부합니다..
테이블명, 필드(순번, 타입, 크기, 필드명) 의 정보를 보여주는 소스입니다.
조금만 수정하시면 원하시는 결과를 얻으실 거에요..
좋은하루되세요.~
--------------------------------------------------------------------------------
DB의 모든 테이블과 테이블의 필드정보 얻기
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.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
halight
1999.11.06 03:54
0
COMMENTS
/
0
LIKES
하이퍼그리드에 대해서
김매경
•
1999.11.06 16:59
1
COMMENTS
/
0
LIKES
폼 생성에 관한 질문입니당...^^
조복기
•
1999.11.06 06:17
안녕하세요..매경님.. 또 뵙는군요..스트링그리드는 공부를 많이하셨는지요?.. 넘 조급하게 생각하지...
정흥식
1999.11.06 02:53
0
COMMENTS
/
0
LIKES
제발 부탁이에요... 급한건데... 시간이 얼~~마... 없어...
허남진
•
1999.11.06 02:44
1
COMMENTS
/
0
LIKES
DBGrid에서 고정칼럼 만드는 방법
신재환
•
1999.11.06 05:44
허남진 wrote: > DBGrid에서 고정칼럼 만드는 방법좀 알려 주세요 > > 좌우로 스크롤돼도 지정한 왼쪽 ...
sanghee
•
1999.11.06 01:43
1
COMMENTS
/
0
LIKES
엔터키 입력 이벤트 작성 법
WX89
•
1999.11.06 02:26
sanghee wrote: > 엔터키 입력시 이벤트 작성법을 알고 싶습니다. > 예를 들어 edit박스에서 enter 키를 ...
termy
•
1999.11.06 01:39
1
COMMENTS
/
0
LIKES
TreeView에서 자식노드가 있는지 없는지 어케 알아요?
WX89
•
1999.11.06 02:21
termy wrote: > TreeView에서 선택된 노드의 자식노드가 있는지 없는지 어케 알아요? > 아녕하세요 ...
sun
•
1999.11.06 01:33
1
COMMENTS
/
0
LIKES
퀵리포트에 두개의 Detail을 보여주고 싶은데요?
이창남
•
1999.11.07 01:27
도움이 되실지는 모르지만.. 저도 그런 경우가 있었거든요.. Detail Band를 하나 꺼내구요. 표현하고 ...
sanghee
•
1999.11.06 01:24
1
COMMENTS
/
0
LIKES
label에 두줄 이상의 문자를 입력하려면...
조복기
•
1999.11.06 06:22
sanghee wrote: > 라벨에서 두 줄 이상의 문자열을 입력한 것을 보았습니다. > || 뭐 이렇게 써 주었는...
심동현
1999.11.06 19:21
0
COMMENTS
/
0
LIKES
IME에 관하여
조복기
•
1999.11.06 00:03
2
COMMENTS
/
0
LIKES
'오브젝트 인스펙트'가 사라졌어요.
강태호
•
1999.11.06 00:41
조복기 wrote: > > 안녕하세요.. > > 프로그램작업도중 에러가 나서..델파이를 종료하고 다시 불러오...
조복기
•
1999.11.06 00:54
바로 답변을 주셔서 감사합니다.. 태호님 앞으로도 한델에 자주 방문해주셔서 답변 많이 해주시길 바랍...
최정원
1999.11.05 23:59
0
COMMENTS
/
0
LIKES
서버에서 이미지를 스트림으로 보낼때 클라이언트에서 처리방법은...
델초보
1999.11.05 23:13
0
COMMENTS
/
0
LIKES
데이타가 커서 나누워서 보여야 할때는....
델사
•
1999.11.05 23:09
1
COMMENTS
/
0
LIKES
'윈32'가 좀 하더군요...
홍순용
•
1999.11.06 21:21
델사 wrote: > 델파이를 사랑하는 델사입니다. > '윈32'콤포넌트를 공부하던중 도저히 저도 모르는 문제...
박현철
•
1999.11.05 23:13
1
COMMENTS
/
0
LIKES
c 소스를 델파이로 가져올 수 있나요?
이정욱
•
1999.11.06 03:00
쩝.. 그냥 C로는 안됩니다. 그것을 파스칼 문법으로 바꿔야죠... C에대한 약간의 지식만 있으면 가능합...
델초
•
1999.11.05 22:48
1
COMMENTS
/
0
LIKES
스트링그리드에 관한 질문...
WX89
•
1999.11.05 23:03
델초 wrote: > 스트링 그리드에서 열단위로 삭제하려고 하는데요.. 물론 goRowSelect속성을 true로 설정했...
김기환
•
1999.11.05 22:34
1
COMMENTS
/
0
LIKES
[급질문]콤보박스와 리스트 박스 사용시..
kwfc라고 하는 엘리어스에 포함된 모든 테이블을 콤보박스에 넣고 그 콤보박스의 테이블을 선택하면 해당 테이블의 필드명이 리스트 박스에 들어가도록 처리할려면 어떻게 해야 하는지 궁금합니다. 이때 선택된 테이블을 'aaa.db'라고 하...
조복기
•
1999.11.05 23:51
김기환 wrote: > kwfc라고 하는 엘리어스에 포함된 모든 테이블을 > > 콤보박스에 넣고 그 콤보박스의 ...
조성제
•
1999.11.05 22:27
1
COMMENTS
/
0
LIKES
특정 Vcl 찾기
김성동
•
1999.11.05 22:55
FindComponent를 쓰시면 되죠... 조성제 wrote: > form 내에서 특정이름의 StringGrid가 선언되어있는...
방극선
•
1999.11.05 22:03
1
COMMENTS
/
0
LIKES
SQL server storedproc 사용
권오경
•
1999.11.05 23:55
params[11].Value:=Null; //image field 이부분을 params[11].Value:=nil; //image field 로 해보...
박현재
1999.11.05 19:42
0
COMMENTS
/
0
LIKES
[델파이와 포트란 DLL 연결법 가르쳐 주세요~
aha
1999.11.05 19:40
0
COMMENTS
/
0
LIKES
OLE?
김기환
1999/11/05 22:34
Views
234
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> kwfc라고 하는 엘리어스에 포함된 모든 테이블을
>
> 콤보박스에 넣고 그 콤보박스의 테이블을 선택하면
>
> 해당 테이블의 필드명이 리스트 박스에 들어가도록
>
> 처리할려면 어떻게 해야 하는지 궁금합니다.
>
> 이때 선택된 테이블을 'aaa.db'라고 하고 해당 테이블의
>
> 필드명을 'bbb'라고 할때 리스트 박스에는 'aaa.bbb'값
>
> 이 들어가도록 할려구 합니다.
>
> 도움 주시면 감사하겠습니다.
>
안녕하세요..한델 자유게시판지기입니다.
db에 연결된 테이블리스트를 구하고자할려면
TSession.GetTableNames 프로시져를 사용하시면 됩니다..
필드명은 한번에 구할수없어 for로 돌려야 되구요..
테스트하던중에 혹시나해서 구창민님이 만든 팁모아 프로그램에서 검색해보니
설명이 나와있더군요..
(T.T;; 테스트하는데 30분이나 했는데 허무하당.)
밑에 첨부합니다..
테이블명, 필드(순번, 타입, 크기, 필드명) 의 정보를 보여주는 소스입니다.
조금만 수정하시면 원하시는 결과를 얻으실 거에요..
좋은하루되세요.~
--------------------------------------------------------------------------------
DB의 모든 테이블과 테이블의 필드정보 얻기
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.