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.06.22 00:53
2
COMMENTS
/
0
LIKES
이상 DB오류!! 혹시 아시는 분계세요..?
PETER
•
1999.06.22 07:57
송기원 께서 말씀하시기를... > >>>>>> At End of Table 글쎄... 무작정 At end of Table이라는 오류 ...
송기원
•
1999.06.22 17:23
답변은 고맙습니다... 그런데.. PIVOT KEY 가 무엇인가요..??? 제가 무식해서 ....~~ PETER 께서 말씀...
SJCOUPLE
1999.06.22 00:46
0
COMMENTS
/
0
LIKES
Master/Detail 데이터베이스에서 Qreport 부분구현
이슬
•
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 00:39
0
COMMENTS
/
0
LIKES
dbgrid에서 lookup필드 직접 편집
이소라
•
1999.06.22 00:31
1
COMMENTS
/
0
LIKES
데이터 파일을 보호하고 싶어요.
신인재
•
1999.06.22 02:06
한델 팁모아에 (www.delphi.co.kr) 안치봉님이 올려놓은신 암호화 기법이 있군요...참고하세요.. '암...
김하정
•
1999.06.22 00:28
5
COMMENTS
/
0
LIKES
필드 타입이 DateTime형일경우 DBEdit에서 입력받을때 문제
이슬
•
1999.04.15 03:34
1. ParamByName과 FieldByName의 차이점이 무엇인지요? 2. 폼에 성별(남,여:radiobutton) 체크가 있는데...
김영해
•
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.21 23:20
3
COMMENTS
/
0
LIKES
이런 기능 본적 있나요?
김정수
•
1999.04.15 01:51
음...mci관련 프로그램을 짜다가... 이런 메세지가 뜨더군요... Could not create outputfile 'C:어쩌구 ...
섭
•
1999.06.22 00:43
이은주 께서 말씀하시기를... > 델파이4에서 보면 'object inspector'나 'project manager'가 서로 겹쳐서...
신인재
•
1999.04.15 02:44
김정수 wrote: > 음...mci관련 프로그램을 짜다가... 이런 메세지가 뜨더군요... > Could not create out...
황하강
•
1999.06.21 23:10
3
COMMENTS
/
0
LIKES
writeln으로 프린터하기...
김정수
•
1999.04.15 01:51
음...mci관련 프로그램을 짜다가... 이런 메세지가 뜨더군요... Could not create outputfile 'C:어쩌구 ...
이정욱
•
1999.06.22 02:39
EndDoc를 하지 마세요. EndDoc을 하기 전까지는 계속 스풀에 쌓아놓고 있는것입니다. 그리고 필요한 것을...
신인재
•
1999.04.15 02:44
김정수 wrote: > 음...mci관련 프로그램을 짜다가... 이런 메세지가 뜨더군요... > Could not create out...
박재형
•
1999.06.21 22:58
3
COMMENTS
/
0
LIKES
델파이 설치시 런타임에러....
이호선
•
1999.04.15 01:15
안녕하세요.. 화창한 오후입니다. 다름이 아니라 동적생성한 콘트롤들의 이벤트(예를들면 Checkbox 10...
이정욱
•
1999.06.22 02:43
쩝... 다시 깔아보세요... 그리고 업그레이드 패치도 다 까시구요. 그래도 안된다면 아마도 CPU가 맛이 ...
이정욱
•
1999.04.15 01:49
여러가지 방법이 있습니다. 각 콘트롤의 Tag를 사용하는 방법이 있구요.. 그냥 Name을 가지고 사용하는 ...
변상준
•
1999.06.21 22:56
1
COMMENTS
/
0
LIKES
Type변환
최석기
•
1999.06.22 00:42
변상준 께서 말씀하시기를... > 실수(Real) Type를 String Type으로 어떻게 변환하는지 궁굼합니다 Flo...
하재희
•
1999.04.14 21:03
2
COMMENTS
/
0
LIKES
BitBtn에 쓰이는 이미지를 어디서 받으면..
보라뚱땡이
•
1999.04.15 01:45
이 사이트 자료실 54번 항목에 500개의 버튼이미지가 있는데요..... 그거말구 BitBtn에 사이즈상 Icon을...
안치봉
•
1999.04.14 21:18
하재희 wrote: > 안녕하십니까! > 저는 현재 델파이로 프로젝트를 수행하고 있는 하재희라고 합니다. > ...
Faster
•
1999.04.15 01:40
3
COMMENTS
/
0
LIKES
[소스구함]염치없는 부탁
최선기
•
1999.06.21 21:20
델파이 3.0을 처음 실행시킬때 Invalid Stream Format이라는 메세지가 뜹니다. 그리고 나서 확인버튼을...
아무개
•
1999.04.15 04:49
안녕하세요? 델파이 Q&A는 최소한 노력을 하는 사람들이 배워가는 곳입니다. 문제를 내고, 답을 맞추는 ...
유민호
•
1999.06.21 21:45
Patch Version을 구해서 설치하세요. 델파이3 최초버전은 그렇더라구요... 최선기 께서 말씀하시기를...
이호선
•
1999.04.15 01:15
1
COMMENTS
/
0
LIKES
동적생성한 콘트롤들에 이벤트에관하여..
이정욱
•
1999.04.15 01:49
여러가지 방법이 있습니다. 각 콘트롤의 Tag를 사용하는 방법이 있구요.. 그냥 Name을 가지고 사용하는 ...
뚱띵
•
1999.06.21 20:24
3
COMMENTS
/
0
LIKES
dos 명령 실행을 어떻게...
신인재
•
1999.06.21 20:36
코딩으로 하는 방법은 한델 팁자료실에 방법이 있습니다... '카피'로 찾아 보시면 될꺼 같은데...쩝... ...
뚱띵
•
1999.06.21 23:30
죄송합니다. 한델사이트가 어디죠? 좀 갈켜주세요. > 코딩으로 하는 방법은 한델 팁자료실에 방법이 있...
신인재
•
1999.06.22 02:00
www.delphi.co.kr 입니다.... 뚱띵 께서 말씀하시기를... > 죄송합니다. 한델사이트가 어디죠? 좀 갈...
이승윤
•
1999.06.21 18:42
2
COMMENTS
/
0
LIKES
odbc2.1이 이상한건가요?
이슬
•
1999.04.14 23:40
프로그램을 하는데, enter키를 도대체... 아무리... 열심히 눌러도 안됩니다... 해결방법 좀 알려주십시...
구창민
•
1999.04.14 23:58
이슬님 저 구창민입니다. 메일 보내드렸는데 또 질문 올리셨군요. 못 받으셨다면 이글 다시 보시기 바래...
이슬
•
1999.04.14 23:40
1
COMMENTS
/
0
LIKES
enter키가 되지를 않습니다.
구창민
•
1999.04.14 23:58
이슬님 저 구창민입니다. 메일 보내드렸는데 또 질문 올리셨군요. 못 받으셨다면 이글 다시 보시기 바래...
강성만
•
1999.06.21 18:20
2
COMMENTS
/
0
LIKES
TDBEdit컴포넌트와 TQuery 사용시
신호성
•
1999.06.21 22:30
강성만 께서 말씀하시기를... > TDBEdit와 TTable, TDBGrid를 TDataSource로 연결하여 사용시(물론 DBEdit...
신인재
•
1999.06.21 20:39
TQuery로 하실때는 DBEDIT가 아닌 그냥 Edit로 하시는 것이 정석일꺼 같습니다.... Edit의 내용을 ...
우민석
1999.04.14 23:18
0
COMMENTS
/
0
LIKES
Exe 화일과 dll의 차이점을....
북해
1999.06.21 17:59
0
COMMENTS
/
0
LIKES
사다리타기 알고리즘..
하재희
•
1999.04.14 21:03
4
COMMENTS
/
0
LIKES
BitBtn에 쓰이는 이미지를 어디서 받으면..
정청환
•
1999.06.21 17:56
trayicon에서 종료될때.... trayicon에 있는 프로그램을 강제적으로 ctrl+alt+del를 눌러서 종료시...
보라뚱땡이
•
1999.04.15 01:45
이 사이트 자료실 54번 항목에 500개의 버튼이미지가 있는데요..... 그거말구 BitBtn에 사이즈상 Icon을...
이정욱
•
1999.06.22 02:45
CloseQuery이벤트를 사용해 보세요. 정청환 께서 말씀하시기를... > trayicon에서 종료될때.... > >...
안치봉
•
1999.04.14 21:18
하재희 wrote: > 안녕하십니까! > 저는 현재 델파이로 프로젝트를 수행하고 있는 하재희라고 합니다. > ...
이슬
1999/04/15 03:34
Views
177
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이다'라고 표시됩니다..