Q&A

  • 살려주세요.
안녕하세요.

델파이 프로젝트를 만들다 모르는 것이 있어 글을 올려 봅니다.

아시는 분은 제발 메일보내 주십시오. 부탁입니다.

2가지 문제가 있습니다.



첫번째 문제,

form에는 '이름''학번''학과''비밀번호'를 넣는 에디트와 메시지가 뜨는 에디트가 있습니다.

각 에디트에 이름,학번,학과,비밀번호를 써 넣은후 "확인"이라는 버튼을 누르면 만들어 놓은 DB와 비교



DB 예)

이름 학번 학과 비밀번호

aaa **** &&&&& 1111

bbb $$$$ &&&&& 2222

ccc @@@@ &&&&& 3333





를 해서 일치하는 항목이 있으면 다음 form으로

이동 하고, 일치하는 항목이 없다면 메시지 에디트에

"일치하는 항목이 없습니다."라는 메시지가 뜨도록 하는 것입니다.

DB와 일치하는 항목이 있으면 다음 form으로 넘어가면서 비밀번호를 제외한 '이름''학번''학과'가 다음form의 위쪽에 위치하는 에디트 3개에 하나씩 들어가도록 하는 것입니다.



두번째 문제,

form의 윗쪽에는 앞쪽 form에서 받은 '이름''학번''학과'가 에디트 3개에 기록되 있습니다.

form에 3개의 테이블을 올려놓고 첫번째 테이블에는

'교수''과목''학점'에 각각의 데이타를 넣은 DB를 연결하고,



ex) 교수 과목 학점

aaa **** 1

bbb %%%% 2

ccc @@@@ 2



그 테이블에 있는 항목을 하나 누른후

ex) 교수 과목 학점

aaa **** 1 aaa 줄을 누름.



"신청"이라는 버튼을 누르면

두번째 테이블에 첫번째 테이블에서 클릭했던 aaa줄 항목이 나오고,

첫번째 테이블에서 다른 항목 bbb줄을 누른후 "신청"을 누르면

두번째 테이블에 aaa줄 밑에 bbb줄이 생깁니다.

그리고 동시에 테이블 아래에 있는 "신청학점" 에디트에 학점들이 더해져 나오게 하는 것입니다.

마지막으로 확인 버튼을 누르면 3번째 테이블에 윗쪽에 있는 '이름''학번''학과'에디트의 내용들이 저장되게 하는 것입니다.





이상 제가 해결하지 못하는 문제 두가지를 올려 놓았습니다.

제발 부탁입니다. 도와 주십시오. 이 두가지 문제 때문에 몇주동안

잠도 못자고 끙끙대다가 이곳 사이트를 찾게되어 문제를 올리게 되었습니다.

도와 주십시오.

3  COMMENTS
  • Profile
    지승용 1999.11.25 20:46
    송수아 wrote:

    > 안녕하세요.

    > 델파이 프로젝트를 만들다 모르는 것이 있어 글을 올려 봅니다.

    > 아시는 분은 제발 메일보내 주십시오. 부탁입니다.

    > 2가지 문제가 있습니다.

    >

    > 첫번째 문제,

    > form에는 '이름''학번''학과''비밀번호'를 넣는 에디트와 메시지가 뜨는 에디트가 있습니다.

    > 각 에디트에 이름,학번,학과,비밀번호를 써 넣은후 "확인"이라는 버튼을 누르면 만들어 놓은 DB와 비교

    >

    > DB 예)

    > 이름 학번 학과 비밀번호

    > aaa **** &&&&& 1111

    > bbb $$$$ &&&&& 2222

    > ccc @@@@ &&&&& 3333

    >

    >

    > 를 해서 일치하는 항목이 있으면 다음 form으로

    > 이동 하고, 일치하는 항목이 없다면 메시지 에디트에

    > "일치하는 항목이 없습니다."라는 메시지가 뜨도록 하는 것입니다.

    > DB와 일치하는 항목이 있으면 다음 form으로 넘어가면서 비밀번호를 제외한 '이름''학번''학과'가 다음form의 위쪽에 위치하는 에디트 3개에 하나씩 들어가도록 하는 것입니다.

    >

    > 두번째 문제,

    > form의 윗쪽에는 앞쪽 form에서 받은 '이름''학번''학과'가 에디트 3개에 기록되 있습니다.

    > form에 3개의 테이블을 올려놓고 첫번째 테이블에는

    > '교수''과목''학점'에 각각의 데이타를 넣은 DB를 연결하고,

    >

    > ex) 교수 과목 학점

    > aaa **** 1

    > bbb %%%% 2

    > ccc @@@@ 2

    >

    > 그 테이블에 있는 항목을 하나 누른후

    > ex) 교수 과목 학점

    > aaa **** 1 aaa 줄을 누름.

    >

    > "신청"이라는 버튼을 누르면

    > 두번째 테이블에 첫번째 테이블에서 클릭했던 aaa줄 항목이 나오고,

    > 첫번째 테이블에서 다른 항목 bbb줄을 누른후 "신청"을 누르면

    > 두번째 테이블에 aaa줄 밑에 bbb줄이 생깁니다.

    > 그리고 동시에 테이블 아래에 있는 "신청학점" 에디트에 학점들이 더해져 나오게 하는 것입니다.

    > 마지막으로 확인 버튼을 누르면 3번째 테이블에 윗쪽에 있는 '이름''학번''학과'에디트의 내용들이 저장되게 하는 것입니다.

    >

    >

    > 이상 제가 해결하지 못하는 문제 두가지를 올려 놓았습니다.

    > 제발 부탁입니다. 도와 주십시오. 이 두가지 문제 때문에 몇주동안

    > 잠도 못자고 끙끙대다가 이곳 사이트를 찾게되어 문제를 올리게 되었습니다.

    > 도와 주십시오.



    우선 1번의 경우 Query를 사용하면 쉽게 해결이 될것 같습니다.

    Query에서 Select문을 사용하여 검색한 결과를 가지고서 하면 되겠네요...

    Query의 SQL부분을

    Select *

    From "Database이름"

    where 조건식 ex) 이름 = "abc" and 학번 = "****" and 학과 = "&&&&&"

    이렇게 해주시면 우선 해당 사람의 field를 검색하게 됩니다.

    그리고, 이렇게 나온 결과를 다음form의 edit box에 넣어주시면 되겠지요.

    Edit1.Text := Query.FieldByName('이름').AsString;

    Edit2.Text := Query.FieldByName('학번').AsString;

    Edit3.Text := Query.FieldByName('학과').AsString;



    만약 Query검색결과 일치하는 Field가 한개도 없다면 Query의 RecordCount가 0이므로

    RecordCount가 0이 아닐경우 다음 Form을 보여주면 되겠구요.

    아니면 에러메세지를 보내주면 되겠지요.

    그리고, 이 방법말고 다른방법은 Key Field를 사용하는 것입니다.

    Table을 만들경우에 KeyField를 하나 설정해서

    Table.setkey;

    Table.FieldByName('키로 설정된 Field').AsString := '입력내용';

    if Table.Gotokey then

    begin

    해당 검색결과를 다음 폼에 넣어주고 Form을 보여주면 되겠네요...

    end

    else begin

    검색결과가 없을경우의 처리

    end;



    이상이 1번에 해당하는 내용입니다.

    참, 검색결과가 2개일경우의 처리를 먼저 해주어야하지 않을까요???



    2번째 문제는 그냥 말그대로 하면 될꺼 같은데요...

    신청버튼을 누르면 String Grid에 선택한 DBGrid의 내용을 옮겨다 놓으면 되고,

    확인 버튼을 누르면 입력했던 내용들을 저장해주기만 하면 되지 않을까요?

    우선 교수, 과목, 학점등을 저장하고 있는 DB를 DBGrid를 사용해서 보여야 겠죠?

    DBGrid에서 선택을 하면 Datasource로 연결된 Table의 Index가 해당 위치로 같이

    움직이게 됩니다. 따라서 이때 신청을 누르면 String Grid에

    StringGrid.Cells[라인넘버, 필드넘버] := Table.FieldByName('교수').AsString;

    .....

    이렇게 해주고, 입력이 끝나고 확인 버튼을 누르면

    StringGrid.Cells의 내용을 DB에 저장을 해주면 되겠죠.

    Table.AppendRecord([StringGrid.Cells[라인넘버, 필드넘버1],

    StringGrid.Cells[라인넘버, 필드넘버2],

    ....

    StringGrid.Cells[라인넘버, 필드넘버n]]);

    이렇게 해주면 쉽게 해결이 될것 같은데요...



  • Profile
    송수아 1999.11.26 00:35
    안녕하세요.

    지승용님께서 올려주신 답변 고맙습니다.

    하지만 제가 델파이에 대해 잘 알지 못해서 지승용님께서 올려주신 글이

    너무 어렵습니다.

    자세히 설명해 주실수는 없으신지요.

    정말 죄송합니다. 바쁘실텐데...

    그리고 지승용님께서 말씀하신



    "where 조건식 ex) 이름 = "abc" and 학번 = "****" and 학과 = "&&&&&"

    이렇게 해주시면 우선 해당 사람의 field를 검색하게 됩니다."



    이 부분은 이름,학번,학과 밑에 있는 해당 데이터를 where 조건식에 모두 써야하는 것 같은데요...제가 만들어 놓은 데이터는 40개가 넘고 나중에 새로운 데이터를 삽입했을 경우에도 이름,학번,학과,비밀번호를 에디트에 입력만 하면 확인버튼을 누름과 동시에 검색할수 있어야 하거든요.

    번거롭게 해드려서 죄송합니다.





    > 우선 1번의 경우 Query를 사용하면 쉽게 해결이 될것 같습니다.

    > Query에서 Select문을 사용하여 검색한 결과를 가지고서 하면 되겠네요...

    > Query의 SQL부분을

    > Select *

    > From "Database이름"

    > where 조건식 ex) 이름 = "abc" and 학번 = "****" and 학과 = "&&&&&"

    > 이렇게 해주시면 우선 해당 사람의 field를 검색하게 됩니다.

    > 그리고, 이렇게 나온 결과를 다음form의 edit box에 넣어주시면 되겠지요.

    > Edit1.Text := Query.FieldByName('이름').AsString;

    > Edit2.Text := Query.FieldByName('학번').AsString;

    > Edit3.Text := Query.FieldByName('학과').AsString;

    >

    > 만약 Query검색결과 일치하는 Field가 한개도 없다면 Query의 RecordCount가 0이므로

    > RecordCount가 0이 아닐경우 다음 Form을 보여주면 되겠구요.

    > 아니면 에러메세지를 보내주면 되겠지요.

    > 그리고, 이 방법말고 다른방법은 Key Field를 사용하는 것입니다.

    > Table을 만들경우에 KeyField를 하나 설정해서

    > Table.setkey;

    > Table.FieldByName('키로 설정된 Field').AsString := '입력내용';

    > if Table.Gotokey then

    > begin

    > 해당 검색결과를 다음 폼에 넣어주고 Form을 보여주면 되겠네요...

    > end

    > else begin

    > 검색결과가 없을경우의 처리

    > end;

    >

    > 이상이 1번에 해당하는 내용입니다.

    > 참, 검색결과가 2개일경우의 처리를 먼저 해주어야하지 않을까요???

    >

    > 2번째 문제는 그냥 말그대로 하면 될꺼 같은데요...

    > 신청버튼을 누르면 String Grid에 선택한 DBGrid의 내용을 옮겨다 놓으면 되고,

    > 확인 버튼을 누르면 입력했던 내용들을 저장해주기만 하면 되지 않을까요?

    > 우선 교수, 과목, 학점등을 저장하고 있는 DB를 DBGrid를 사용해서 보여야 겠죠?

    > DBGrid에서 선택을 하면 Datasource로 연결된 Table의 Index가 해당 위치로 같이

    > 움직이게 됩니다. 따라서 이때 신청을 누르면 String Grid에

    > StringGrid.Cells[라인넘버, 필드넘버] := Table.FieldByName('교수').AsString;

    > .....

    > 이렇게 해주고, 입력이 끝나고 확인 버튼을 누르면

    > StringGrid.Cells의 내용을 DB에 저장을 해주면 되겠죠.

    > Table.AppendRecord([StringGrid.Cells[라인넘버, 필드넘버1],

    > StringGrid.Cells[라인넘버, 필드넘버2],

    > ....

    > StringGrid.Cells[라인넘버, 필드넘버n]]);

    > 이렇게 해주면 쉽게 해결이 될것 같은데요...

    >

  • Profile
    혀노 1999.11.27 03:20
    query문을 parameter(철자 맞나?)를 받도록 만드세요

    그러니까 조건식을

    where 이름 =:name and 학번 =:hanbun and 학과 =:hakga 이런식으로 적고

    query프로퍼티 param에서 각 형을 정해주고요

    edit에서 받은것을

    query.paramebyname('학과').asstring으로 넘겨주어서 비교해서 같은게 있으면

    되고,,,없으면,,,그런 사람 없다고 하면 되겠지요,,,,



    시간이 없어서 직접 해보지 않았는데 될것 같습니다

    송수아 wrote:

    > 안녕하세요.

    > 지승용님께서 올려주신 답변 고맙습니다.

    > 하지만 제가 델파이에 대해 잘 알지 못해서 지승용님께서 올려주신 글이

    > 너무 어렵습니다.

    > 자세히 설명해 주실수는 없으신지요.

    > 정말 죄송합니다. 바쁘실텐데...

    > 그리고 지승용님께서 말씀하신

    >

    > "where 조건식 ex) 이름 = "abc" and 학번 = "****" and 학과 = "&&&&&"

    > 이렇게 해주시면 우선 해당 사람의 field를 검색하게 됩니다."

    >

    > 이 부분은 이름,학번,학과 밑에 있는 해당 데이터를 where 조건식에 모두 써야하는 것 같은데요...제가 만들어 놓은 데이터는 40개가 넘고 나중에 새로운 데이터를 삽입했을 경우에도 이름,학번,학과,비밀번호를 에디트에 입력만 하면 확인버튼을 누름과 동시에 검색할수 있어야 하거든요.

    > 번거롭게 해드려서 죄송합니다.

    >

    • 최명실
    • 1999.11.25 23:01
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안정한
      1999.11.26 02:25
      최명실 wrote: > 안녕하십니까? > 저는 은행 전산정보본부에 근무합니다. > > 해외지점 온라인 프로그...
    • 김주석
      1999.11.26 00:13
      윤정선 wrote: > 저는 델파이 초보자 인데요... > 어떤 double형 배열 변수를 다른 Unit에서 쓰고 싶은데...
    • 윤정선
      1999.11.26 19:15
      가르쳐 주신 방법으로 했더니 즉, > public > var d_double // 3 이렇게하면 error가 나구 > public ...
    • 정연섭
    • 1999.11.25 22:30
    • 2 COMMENTS
    • /
    • 0 LIKES
    • TeamX
      1999.11.25 22:48
      WM_GETDLGCODE 인가의 메세지에 적절히 응답하시면 됩니다. 자세한건 확실치 않지만 팁란을 검색해보세...
    • 안재현
      1999.11.26 07:16
      TeamX wrote: > WM_GETDLGCODE 인가의 메세지에 적절히 응답하시면 됩니다. > > 자세한건 확실치 않지...
    • chobo
    • 1999.11.25 21:54
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김상면
      1999.11.25 22:26
      안녕하세요... Table 컴포넌트를 더블 클릭하세요... 그리고 마우스 오른쪽 버튼을 누르시고 Add All Fie...
    • 안재현
      1999.11.26 07:20
      김상면 wrote: > 안녕하세요... > Table 컴포넌트를 더블 클릭하세요... > 그리고 마우스 오른쪽 버튼을...
    • 길호전
      1999.12.21 05:21
      만약 오라클을 쓴다면 ->123만 보여주고 싶으면 'Select to_number(Substr(Col1, 5,6)) NewCol ' 이렇게...
    • 류한규
    • 1999.11.25 20:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Mr. park
      1999.12.18 01:47
      류한규 wrote: > 안녕하십니까? > > Printer.Canvas를 이용하지 않고 아래와 같이 하면 > CloseFile(F...
    • 이재민
    • 1999.11.25 20:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.11.26 03:02
      이재민 wrote: > 안녕하세요? > > StringGrid에 어떤 자료들을 담았습니다. 그런데 이것을 프린터로 출...
    • sun
    • 1999.11.25 19:52
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김상면
      1999.11.25 22:06
      안녕하세요... Label1.Caption := FormatFloat('#,##0', StrToFloat(Edit1.Text)); Label1.Caption...
    • 정화
      1999.11.25 22:05
      FormatFloat 함수를 써보세요^^ sun wrote: > Label에 출력된 Data에 콤마 또는 소숫점 찍는 방법 좀 ...
    • 송수아
    • 1999.11.25 19:52
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 지승용
      1999.11.25 20:46
      송수아 wrote: > 안녕하세요. > 델파이 프로젝트를 만들다 모르는 것이 있어 글을 올려 봅니다. > 아시...
    • 송수아
      1999.11.26 00:35
      안녕하세요. 지승용님께서 올려주신 답변 고맙습니다. 하지만 제가 델파이에 대해 잘 알지 못해서 지승용...
    • 혀노
      1999.11.27 03:20
      query문을 parameter(철자 맞나?)를 받도록 만드세요 그러니까 조건식을 where 이름 =:name and 학번 =:...
    • 김매경
    • 1999.11.25 17:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정화
      1999.11.25 18:23
      delphi에서 실행했을경우 error 발생시 먼저 delphi BDE쪽에서 메세지를 뿌려준다고 들었습니다. 그리고나...
    • 황현동
    • 1999.11.25 11:24
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안명호
      1999.11.25 11:37
      황현동 wrote: > 알려주세요 > > 사용 방법 알려주세요.. GetCursor() 현재 마우스 커서의 핸들...
    • jdfm
    • 1999.11.25 09:34
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 문영미
    • 1999.11.25 07:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • TeamX
      1999.11.25 09:24
      일반적으로 실행시킨 프로그램이 죽지 않았을때 생깁니다. 즉! 윈도우즈는 어떤 프로그램이 실행중일때...
    • 이동진
    • 1999.11.25 06:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이동진
      1999.11.25 06:38
      이동진 wrote: > 우리나라 총 인구는 몇 명인가요? >
    • 희야
    • 1999.11.25 06:30
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김종섭
      1999.11.25 09:39
      희야 wrote: > dbgrid에 커서를 두구 직접 키보드 입력을 하니깐 되는데요. > dbgrid에 query를 사용하...
    • 희야
      1999.11.25 18:09
      김종섭 wrote: > 희야 wrote: > > dbgrid에 커서를 두구 직접 키보드 입력을 하니깐 되는데요. > > dbg...
    • 박성훈
      1999.11.26 21:30
      희야 wrote: > 김종섭 wrote: > > 희야 wrote: > > > dbgrid에 커서를 두구 직접 키보드 입력을 하니깐...