Q&A

  • 델파이 및 sql 코드에 대해 질문드립니다!
안녕하세요..

델파이 초보입니다..   아래에 2개의 구문이 있는데요 각각이 무엇을 뜻하는 내용인지 알고 싶습니다..

1) 이 구문안에서 sql문이 무엇을 뜻하는지..
테이블 명을 stringreplace를 이용해서 치환했다고 하는데...

procedure TForm1.Button1Click(Sender:TObject);
begin
Query1.Close;
Query1.SQL.Text:=
   ' Select * From @TableName '+
   '   Where DivSN = @DivSN ';
Query1.SQL.Text:= StringReplace(Query1.SQL.Text, '@TableName', 'STEmployee', []);
Query1.SQL.Text:= StringReplace(Query1.SQL.Text, '@DivSN', 'Edit1.Text, []);

// Query1.ParamByName('TableName').As String:= 'STEmployee';
// Query1.ParamByName('DivSN').As String:= Edit1.Text;
Query1.Open;
end;

end.




2) 테이블의 첫번째와 다음을 나열 메모에 나열한듯...

procedure TForm1.Button1Click(Sender:TObject);
begin
Table2.DisableControls;
Try
   Table2.First;
   While Table2.Eof = False do Begin
     Memo1.Lines.Add(
       Table2.FieldByName('EmpSN').AsString +', '+
       Table2.Fields[1].AsString +', '+
       Table2['EmpName']
     );

     Table2.Next;
   End;
Finally
   Table2.EnableControls;
End;
end;

end.


전체적으로 1)과 2)가 뜻하는 내용이 무엇인지 알고 싶습니다.. 도와주세요..ㅠ
5  COMMENTS
  • Profile
    모영철 2005.08.19 19:34
    1) StringPlace 함수로 어떤 문자열을 다른 문자열로 바꿉니다.

    저기서는 sql문안에 @tablename 이라고 넣어놓고 코딩으로 동적으로 바꿀수 있도록 한거죠..

    2) 맞습니다. 쿼리의 커서를 처음으로 옮기고 아래로 주욱끝까지 읽으면서 메모에 추가한거네요..

    Table2.DisableControls;

    이문장은 table2와 연결된 컨트롤(컴포넌트)과의 연결을 끊습니다. 디비그리드와 연결 됐다고 치면

    Table2의 커서를 옮겨도 디비그리드에는 반영이 안됩니다. 이런 연결들이 많을경우에는

    처리속도도 떨어지기
  • Profile
    윤경미 2005.08.19 19:54
    답변 감사드립니다~~

    정말 초보라 help를 봐도 이해가 좀 어려운;;

    1), 2)이 무슨 작업을 하는 지 알 수 없을까요??

    제가 알기로는 1)은 sql문을 통해서 db를 검색하는 거라던데...

    2)은 db를 pc memory로 화면상 모니터로 출력하는 걸 뜻한다고 합니다.. 맞나요???

    1)에서 sql문이 있는데요 이해가 좀 힙듭니다~

    가장 기초적인 '+와 ';도 잘 모르겠구요.. 문장 끝날시 ;를 붙이는 이유가 뭐죠?ㅠ

    꼭 좀 부탁드리겠습니다~



  • Profile
    이희승 2005.08.19 20:25
    1)은 결과적으로 "Select  * from STEmployee where DivSN = Edit1.Text" 라는 sql 문이 됩니다.
    즉, STEmployee 라는 테이블에서 DivSN이라는 필드의 값이 Edit1.Text와 같은 값을 갖는 레코드를 불러오는 문장입니다.

    2)는 Table2가 가리키는 테이블에서 첫번째 레코드에서부터 마지막 레코드까지 해당되는 EmpSN과
    두번째 필드값(Table2.Fields[1].AsString)을 가져와 Memo1이라는 컴포넌트에 쭈욱~ 뿌려주는 역할을 합니다.

    3) + 기호는 문자열을 합하기도하고 숫자끼리 더하기도 한답니다. '가'+'나' => '가나' 가 되는거구요..
    ; 기호는 델파이 명령어의 한 문장이 끝났음을 의미합니다.
    제대로 코딩하지 않으면 에러가 발생하구요......

    델파이 하다보면 무지 재미있을겁니다. 즐플하세요.. ^^

  • Profile
    윤경미 2005.08.19 20:35
    답변 정말 감사드립니다..

    초보인 저에게 한줄기 빛이 되어주시는 군요..ㅠㅠ

    델파이에서 가장 기초적인 '+와 '; 같은 기호 .. 문장 끝날시 ;를 붙이는 이유가 정말 궁금하지만

    천천히 알아보렵니다~

    항상 행복하세요^^
  • Profile
    모영철 2005.08.19 22:48
    +는 연산자입니다. 문자열과 문자열을 + 하면 문자가 합쳐지구요..

    숫자와 숫자를 +하면 더해지겠죠..

    ; 표시는 언어마다 다릅니다.

    asp나 VB 같은 경우엔 안붙이구요.. C 경우엔 붙입니다.

    라인과 라인을 구별하기 위한거죠..컴파일러가요..

    아마 붙이면 컴파일 속도면에서 좀 나아지지 않을까요?

    첨 시작할때 가장 많이 내는 오류중 하나지요.. ;를 안적어줘서...