Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
DBGrid에 어떻게 입력을 시켜야 할지?
1. ParamByName과 FieldByName의 차이점이 무엇인지요?
2. 폼에 성별(남,여:radiobutton) 체크가 있는데, DB는 Alpha로 2자리 만들었습니다.
근데, DBGrid에는 "남자", "여자"로 나타났으면 좋겠는데, 어떻게 하면 되는지요? 여러가지 방법이 있을텐데, 가장 좋은 방법 좀 알려주세요.
4
COMMENTS
김영해
•
1999.04.17 08:00
이슬 wrote:
> 1. ParamByName과 FieldByName의 차이점이 무엇인지요?
>
> 2. 폼에 성별(남,여:radiobutton) 체크가 있는데, DB는 Alpha로 2자리 만들었습니다.
> 근데, DBGrid에는 "남자", "여자"로 나타났으면 좋겠는데, 어떻게 하면 되는지요? 여러가지 방법이 있을텐데, 가장 좋은 방법 좀 알려주세요.
>
이런 방법도 있어요.
Table 콤포넌트를 더블 클릭하여 필드 에디트를 열고
원하는 필드의 이벤트 핸들러중에 GetText 라는게 있습니다.
여기는 필드의 내용은 바꾸지 않고 디스플레이만 바꾸어 줍니다.
procedure TForm1.Table1AGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
IF SENDER.AsString = '1' THEN
TEXT := '1이다'
ELSE
TEXT := '1아님';
end;
위와 같이 작성후 실행시켜보면 그리드에는 '1이다'라고 표시됩니다..
0
0
삭제
수정
댓글
신호성
•
1999.04.16 01:36
> 2. 폼에 성별(남,여:radiobutton) 체크가 있는데, DB는 Alpha로 2자리 만들었습니다.
> 근데, DBGrid에는 "남자", "여자"로 나타났으면 좋겠는데, 어떻게 하면 되는지요? 여러가지 방법이 있을텐데, 가장 좋은 방법 좀 알려주세요.
>
2번 질문에 대하여 ...
Table에 Alpha2자리로 잡았다면 '남','여'로 기록했을테고
이를 Select하여 Dbgrid로 보여줄때 '남자','여자'로 보고싶다는 질문이지요?
해당Field(Column)를 'sex'라 가정하고
방법1.
Table을 Alpha 2자리로 하셨는데 가장좋은 방법은 Logical(Boolean형)으로
잡는것 입니다.
Table에 기록할때 True 또는 False로 기록하고 이경우 FieldsEditor에서
Sex Field의 DisplayValues 프로퍼티에서 '남자;여자'(여;남)라고
설정하면 True인경우 '남자'로 false인경우 '여자'로 표시됩니다.
방법2.(Alpha 2자리로 유지할경우)
Query1(Table도 같은방법) 컴포넌트를 사용한다고 가정하면
먼저 FieldsEditor에서 New FIeld메뉴를 선택하여 새로운 Calculated Field를
생성합니다.(Calculated Field명 :'c_sex', Type: String Size: 4)
다음 Query1의 OnCalcFields 이벤트에서 다음과 같이 코딩합니다.
procedure TForm1.Query1CalcFields(DataSet:TDataSet);
begin
with DataSet do
begin
if FieldByName('sex').AsString = '남' then
FieldByName('c_sex').AsString := '남자'
else
FieldByName('c_sex').AsString := '여자';
end;
end;
0
0
삭제
수정
댓글
박종모
•
1999.04.15 04:44
이슬 wrote:
> 1. ParamByName과 FieldByName의 차이점이 무엇인지요?
>
> 2. 폼에 성별(남,여:radiobutton) 체크가 있는데, DB는 Alpha로 2자리 만들었습니다.
> 근데, DBGrid에는 "남자", "여자"로 나타났으면 좋겠는데, 어떻게 하면 되는지요? 여러가지 방법이 있을텐데, 가장 좋은 방법 좀 알려주세요.
>
델파이를 연구중인 초보 종모입니다.
조금의 도움이 되었으면 좋겠습니다.
ParamByName은 사용자가 임의로 설정한 Parameter를 지정한다.
다음 예는 Test.DB의 D_Date필드에 Parameter를 사용하여
날자값을 넣는 예이다.
Query1.SQL.Clear;
Query1.SQL.Add('Insert Into Test(D_Date) Values ( :P_Date )');
Query1.ParamByName('P_Date').ASDateTime := StrToDate(Edit1.Text);
Query1.ExecSQL;
FieldByName은 실제로 존재하는 필드를 지정한다.
한글은 한글자에 2Byte를 사용한다.
(남자,여자)는 4Byte를 필요로 하므로 Alhpa 4Byte의 크기가 필요할까?
라디오버튼 이름 : RA_MAN, RA_GIRL;
// 버튼 클릭 이벤트
procedure TForm1.Button1Click(Sender : TObject)
begin
if RA_MAN.Checked then
Table1.FieldByName('Sex').AsString := '남자'
else
Table1.FieldByName('Sex').AsString := '여자'
end;
0
0
삭제
수정
댓글
글쎄요
•
1999.04.15 05:41
추가로 답변합니다.
2번째 건데 답변이 잘 못된 것 같아요.
가장 좋은 방법은 DBGRID 대신에 STRINGGRID를 쓰는 거죠.
DBGRID의 DBGrid1DrawColumnCell 이벤트에 다음과 같이
쓰시면 됩니다.
'Sex'필드의 값이 'M'이면 남자
아니면 여자임.
if Column.Field = DM.MemberTable.FieldByName('Sex') then
begin
DBGrid1.Canvas.Font.Color := clBlack;
DBGrid1.Canvas.FillRect(Rect);
if Column.Field.AsString = 'M' then
DBGrid1.Canvas.TextOut(Rect.Left+2,Rect.Top+1,'남자')
else
DBGrid1.Canvas.TextOut(Rect.Left+2,Rect.Top+1,'여자');
end;
이렇게 하시면 되지만 약간의 버그가 존재합니다. 한 번 해보시면 알
것에요.^^ 그럼 즐거운 코딩하셔요.~~~
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
이동화
•
1999.04.15 08:56
2
COMMENTS
/
0
LIKES
프린터에 대하여 부탁드림니다.
김영해
•
1999.04.15 09:20
이동화 wrote: > 안녕하세요! > 프린터에대해서 궁금한게 있습니다. 아니 지금 되지가 않습니다. > 프린...
이동화
•
1999.04.15 09:39
김영해 wrote: > 이동화 wrote: > > 안녕하세요! > > 프린터에대해서 궁금한게 있습니다. 아니 지금 되...
김석태
1999.06.22 19:17
0
COMMENTS
/
0
LIKES
install 한후, 컴포넌트가 이름과 달라요...
북해
1999.06.22 18:29
0
COMMENTS
/
0
LIKES
TEdit에서 특정문자의 색깔을 바꾸려면...
이동화
•
1999.04.15 08:56
2
COMMENTS
/
0
LIKES
프린터에 대하여 부탁드림니다.
김영해
•
1999.04.15 09:20
이동화 wrote: > 안녕하세요! > 프린터에대해서 궁금한게 있습니다. 아니 지금 되지가 않습니다. > 프린...
이동화
•
1999.04.15 09:39
김영해 wrote: > 이동화 wrote: > > 안녕하세요! > > 프린터에대해서 궁금한게 있습니다. 아니 지금 되...
서현승
1999.06.22 18:08
0
COMMENTS
/
0
LIKES
영대님이 만든 Query의 자료를 Excel
김영해
•
1999.04.15 08:49
3
COMMENTS
/
0
LIKES
화면보호기 같은 프로그램 ?
이소라
•
1999.06.22 16:42
OLE를 사용치 않고 MS_Word를 사용하는 소스입니다. 그런데 "선언되지 않은 정체"라는 에러 메세지만 반...
이정욱
•
1999.04.15 10:21
아래 작업전환을 막는것이 있습니다. 이 코드는 나이렉스의 팁 게시판에서 가져왔습니다. var Form1:...
김영해
•
1999.04.17 07:48
감사합니다.이정욱님 많은 도움이 되었습니다.
한승협
•
1999.06.22 13:57
1
COMMENTS
/
0
LIKES
DBComboBox 에 아이템이 저절로 들어가나요?
섭
•
1999.06.22 20:26
한승협 께서 말씀하시기를... > 안냐세여.. 초보델파이언임다. > > 저는 DBComboBox에 DataSource와 Da...
이순희
•
1999.04.15 08:34
2
COMMENTS
/
0
LIKES
시간계산에 대하여
bluepine
•
1999.04.17 01:18
이순희 wrote: > 안녕하세요... > 테이블에 시작시간과 끝시간에 대한 두개의 필드가 있습니다. > 두개...
글쎄요.
•
1999.04.15 19:02
이순희 wrote: > 안녕하세요... > 테이블에 시작시간과 끝시간에 대한 두개의 필드가 있습니다. > 두개...
PETER
1999.06.22 08:06
0
COMMENTS
/
0
LIKES
Record filtering이 안되요.....
김영규
•
1999.06.22 07:27
6
COMMENTS
/
0
LIKES
dbgrid에서 임시적인 column생성 후 editing
이호선
•
1999.04.15 05:08
안녕하세요.. 일반 control(예: Panel)에 이미지를 실을려하는데 어떻게해야 할지 궁금합니다. 좋은밤 ...
신호성
•
1999.06.22 21:43
김영규 께서 말씀하시기를... > Query 콤포넌트와 DBGrid콤포넌트를 사용하여 > 자료를 조회한 후 ( SQL...
전철호
•
1999.04.20 03:56
이호선 wrote: > 안녕하세요.. > 일반 control(예: Panel)에 이미지를 실을려하는데 > 어떻게해야 할지...
류동균
•
1999.06.22 08:08
김영규 께서 말씀하시기를... > Query 콤포넌트와 DBGrid콤포넌트를 사용하여 > 자료를 조회한 후 ( SQL...
안치봉
•
1999.04.15 06:12
이호선 wrote: > 안녕하세요.. > 일반 control(예: Panel)에 이미지를 실을려하는데 > 어떻게해야 할지...
신인재
•
1999.04.15 06:22
안치봉 wrote: > 이호선 wrote: > > 안녕하세요.. > > 일반 control(예: Panel)에 이미지를 실을려하는...
조성윤
•
1999.06.22 07:11
1
COMMENTS
/
0
LIKES
DBcombobox와 DBlistbox에 대하여...
류동균
•
1999.06.22 08:19
조성윤 께서 말씀하시기를... > 또 질문 하게 되는군요 > items속성의 값을 테이블의 특정 필드에 값을 ...
이호선
•
1999.04.15 05:08
3
COMMENTS
/
0
LIKES
일반 control에 이미지를 로딩할려면...
전철호
•
1999.04.20 03:56
이호선 wrote: > 안녕하세요.. > 일반 control(예: Panel)에 이미지를 실을려하는데 > 어떻게해야 할지...
안치봉
•
1999.04.15 06:12
이호선 wrote: > 안녕하세요.. > 일반 control(예: Panel)에 이미지를 실을려하는데 > 어떻게해야 할지...
신인재
•
1999.04.15 06:22
안치봉 wrote: > 이호선 wrote: > > 안녕하세요.. > > 일반 control(예: Panel)에 이미지를 실을려하는...
홍희석
•
1999.06.22 04:57
2
COMMENTS
/
0
LIKES
스트링그리드에서 excel로 저장 정말 궁금
류성호
•
1999.06.22 05:24
홍희석 께서 말씀하시기를... > 전 delphi로 주로 db그리두만 이용해오다가 > 이번에 스트링 그리드를 쓰...
franco97
•
1999.06.22 22:43
스트링그리드의 한필드에 문자타입의 10자리 코드가 (ex: 0000012345,0000078901,...) 들어있습니다.. ...
진은정
1999.06.22 04:46
0
COMMENTS
/
0
LIKES
[Q]DBGrid의 pickList에서 선택된 값을 알아내려면?
이슬
•
1999.04.15 03:34
4
COMMENTS
/
0
LIKES
DBGrid에 어떻게 입력을 시켜야 할지?
1. ParamByName과 FieldByName의 차이점이 무엇인지요? 2. 폼에 성별(남,여:radiobutton) 체크가 있는데, DB는 Alpha로 2자리 만들었습니다. 근데, DBGrid에는 "남자", "여자"로 나타났으면 좋겠는데, 어떻게 하면 되는지요? 여러가지 방...
김영해
•
1999.04.17 08:00
이슬 wrote: > 1. ParamByName과 FieldByName의 차이점이 무엇인지요? > > 2. 폼에 성별(남,여:radiobu...
신호성
•
1999.04.16 01:36
> 2. 폼에 성별(남,여:radiobutton) 체크가 있는데, DB는 Alpha로 2자리 만들었습니다. > 근데, DBGrid에...
박종모
•
1999.04.15 04:44
이슬 wrote: > 1. ParamByName과 FieldByName의 차이점이 무엇인지요? > > 2. 폼에 성별(남,여:radiobu...
글쎄요
•
1999.04.15 05:41
추가로 답변합니다. 2번째 건데 답변이 잘 못된 것 같아요. 가장 좋은 방법은 DBGRID 대신에 STRINGGRID...
이용민
•
1999.06.22 04:29
1
COMMENTS
/
0
LIKES
변수에 관한 보편적 궁금증..`
이정욱
•
1999.06.22 07:54
이용민 께서 말씀하시기를... > 안녕하세요. (주) 천의무봉의 이용민입니다. > > 1. 변수를 초기화 해...
이호선
•
1999.06.22 02:51
5
COMMENTS
/
0
LIKES
light lib상용버전 구매에 대하여...
이호선
•
1999.04.15 05:08
안녕하세요.. 일반 control(예: Panel)에 이미지를 실을려하는데 어떻게해야 할지 궁금합니다. 좋은밤 ...
이정욱
•
1999.06.22 07:50
나이렉스에서 구매하실 수 있습니다. 하지만 단종품목이라 기술지원을 받지는 못합니다. 사이트는 http:/...
전철호
•
1999.04.20 03:56
이호선 wrote: > 안녕하세요.. > 일반 control(예: Panel)에 이미지를 실을려하는데 > 어떻게해야 할지...
안치봉
•
1999.04.15 06:12
이호선 wrote: > 안녕하세요.. > 일반 control(예: Panel)에 이미지를 실을려하는데 > 어떻게해야 할지...
신인재
•
1999.04.15 06:22
안치봉 wrote: > 이호선 wrote: > > 안녕하세요.. > > 일반 control(예: Panel)에 이미지를 실을려하는...
아무개
1999.04.15 04:50
0
COMMENTS
/
0
LIKES
Re: 아래꺼 다시한번
강인경
•
1999.06.22 01:16
1
COMMENTS
/
0
LIKES
콤포넌트를 구합니다.
김영대
•
1999.06.25 02:14
강인경 께서 말씀하시기를... > 김영대님의 ActiveFtp에서 사용된 왼쪽화면의 버튼콤포넌트는 어디에서 구...
Faster
•
1999.04.15 01:40
1
COMMENTS
/
0
LIKES
[소스구함]염치없는 부탁
아무개
•
1999.04.15 04:49
안녕하세요? 델파이 Q&A는 최소한 노력을 하는 사람들이 배워가는 곳입니다. 문제를 내고, 답을 맞추는 ...
이슬
1999/04/15 03:34
Views
194
Likes
0
Comments
4
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 1. ParamByName과 FieldByName의 차이점이 무엇인지요?
>
> 2. 폼에 성별(남,여:radiobutton) 체크가 있는데, DB는 Alpha로 2자리 만들었습니다.
> 근데, DBGrid에는 "남자", "여자"로 나타났으면 좋겠는데, 어떻게 하면 되는지요? 여러가지 방법이 있을텐데, 가장 좋은 방법 좀 알려주세요.
>
이런 방법도 있어요.
Table 콤포넌트를 더블 클릭하여 필드 에디트를 열고
원하는 필드의 이벤트 핸들러중에 GetText 라는게 있습니다.
여기는 필드의 내용은 바꾸지 않고 디스플레이만 바꾸어 줍니다.
procedure TForm1.Table1AGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
IF SENDER.AsString = '1' THEN
TEXT := '1이다'
ELSE
TEXT := '1아님';
end;
위와 같이 작성후 실행시켜보면 그리드에는 '1이다'라고 표시됩니다..