Q&A

  • 델파이로 만든 cgi로 mysql 접속하기..
안녕하세요.
델파이로 만든 cgi로 mysql에 접속할려고 합니다.
환경은 mysql 입니다.
어떻게 시작해야 할지 막막하네요..
php로는 해봤는데..이거참..
cgi는 file >> new >> other >> webserverapp 로 만들었습니다.
standard cgi로....
혹시 간단한 소스라도 가지고 계시면 답변부탁드립니다.
1  COMMENTS
  • Profile
    임현창 2002.02.06 00:01
    CGI쪽 질문인지 MySQL 쪽 질문인지 잘 모르겠습니다.

    아무튼 가장 간단한 CGI부터 설명을 드리긴 할텐데
    책을 보고 공부하시기를 권합니다.

    WebModule1이라는 창이 하나 떠 있을 텐데
    흰 공백에서 마우스 오른쪽 클릭을 하면 나타나는 팝업메뉴
    위쪽에 Action editor 인가가 있을 것입니다. 그걸 선택하면
    Action editor 창이 뜨는데 Action 하나를 추가합니다.
    오브젝트 인스펙터 프라퍼티 페이지에서
    옆에 생기는 (...)을 클릭하고 다음을 설정합니다.
      Default ---> True
      Methodtype --> mtGet
    그리고 오브젝트 인스펙터 이벤트 페이지에서
    OnAction 이벤트에 대한 이벤트 핸들링 프로시져를 생성합니다.
    프로시져 안에

      Response.Content := '안녕하세요';

    라고 치고 컴파일 합니다. 실행파일을 찾아서 웹서버의 스크립트
    디렉터리.(IIS 같으면 Scripts 폴더)에 복사하고 웹브라우저에서
    실행해봅니다. 이를테면 http://localhost/Scripts/helloworld.exe 같이....

    만약 데이타 베이스를 접근하고 싶을 때에는 데이타 컴포넌트들을 추가해야
    합니다. 역시 가장 간단한 경우를 설명드리자면
    BDE를 사용할 경우 BDE페이지에서 Query, [Internet] 페이지에서
    QueryTableProducer를 찾아서 추가합니다.

    Query1의 속성
        Databasename : DBDEMOS
        SQL : SELECT * FROM EMPLOYEE;  (EMPLOYEE 테이블 사용)
        
    QueryTableProducer1의 속성
       Query : Query1

    이렇게 하고 앞의 OnAction 이벤트 핸들 루틴을 다음과 같이 바꿉니다.

      Response.Content := QueryTableProducer1.Content;

    마찬가지 방법으로 실행하면 주르륵 employee 테이블 내용이 나옵니다.

    MySQL에 붙이고 싶다고 하셨는데 델파이에서 MySQL 에 접속하는 것은
    다음 세가지 방법이 있습니다.
    첫째 : 델파이에서 아무런 추가 설치 없이 MySQL을 사용할 때에는 dbExpress를 사용하시면 됩니다. 좋긴 한데 제약이 몇가지 있습니다.

    둘째 : 공개된 mysql 연결 컴포넌트를 사용합니다. Zeos라는 공개 컴포넌트가 있는데 대표적입니다.

    셋째 : MyODBC라는 ODBC 드라이버를 사용합니다. 이걸 사용하면 BDE를
    통해서도 접근할 수 있습니다.


    • 문소희
    • 2002.02.06 01:13
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 권희수
      2002.02.06 01:34
      소켓서버가 스레드로 동작한다면 위와 같은 현상이 나올수있다고 생각되네여. 스레드는 1CPU에서는 그...
    • 김진선
    • 2002.02.06 00:48
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 장명선
      2002.02.06 01:40
      단지 에러메세지 가지고는 머라고 말을 못하겠네요 에러나는 문장을 올려주세요 그럼 즐코하세요
    • major
      2002.02.06 02:29
      안녕하세여.. 제가 아직 초보라서 정확히는 모르겠는 데 아마 값에 다 널 값을 넣으시려고 하시는 것 ...
    • 김진선
      2002.02.09 00:10
      혹시해서 널갑에 공백을 줘봤는데도 마찬가지입니다. 소스라할것도 없이 뭐 대략 이렇습니다. with query...
    • 최용일
      2002.02.06 03:53
      안녕하세요. 최용일입니다. 이경문님이 답변하신것에 추가로... 코딩은 VB예제 그대로 델파이로 컨버팅...
    • 이경문
      2002.02.06 03:31
      Project - Import Library - Install ActiveX Tab에 관련 com 이 컴포넌트로 등록됩니다.
    • 박성환
    • 2002.02.06 00:39
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 장명선
      2002.02.06 00:42
      우선 Quick Rep의 DataSet이 연결되었나 확인하시기 바랍니다. 즐코하세요
    • 박성환
      2002.02.06 00:58
      답변해 주셔서 감사함니다... 그런데요 연결되어 있구여  화면상에는 이상이 전혀 없는거구여...
    • 장명선
      2002.02.06 01:38
      그럼 Query나 Table를 오픈한 상태에서 Quick Report를 미리보기 해보세요 거기서두 안나오면 이상이 있는...
    • major
      2002.02.06 02:32
      안녕하세여.. 그러시면 이벤트를 확인 하시는 편이 빠를것 같네여.. 아마 에프터 프린터 이벤트 쪽을 주...
    • *^^*
      2002.02.06 21:08
         str := 'select max(grcode) as Maxval from T_Goods where levelA=';    str ...
    • 성더기
      2002.02.06 00:50
      해당메세지에 대한 에러가 맞는 지는 모르겠습니다만 AsString+'and labelB=' 이런식으로 쓰셨던데 and ...
    • 장명선
      2002.02.06 00:23
      어느 부분이 에러인지 잘 모르겠지만 에러나는 부분을 표시해주세요 그리고 Select 문장은 정확한것 같...
    • major
      2002.02.06 02:38
      제가 보기에는 이부분인거 같은 데여... with Query2 do     begin  &nbs...
    • 우정민
      2002.02.05 23:45
      타이머 interval 을 0.5초로 놓고 (타이머가 정확한 1초가 아니니까, 안전하게...) 현제 시간을 불러...
    • 이은호
    • 2002.02.05 20:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김규억
      2002.02.06 01:51
      ADO를 이용하던 BDE를 이용하던 DB에서 하는 작업하고는 상관없습니다... ADO가 DB를 관리하는게 아...
    • 브래드
    • 2002.02.05 20:42
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 허일학
      2002.02.10 02:28
      다음을 참고하시면 도움이 될꺼 깥은데....^^ var btn: Longint; begin // Button2의 원도우 정...
    • 공성환
      2002.02.05 22:00
      답변은 아니고 그냥 라벨 2개로 사용하셔도 되는데...
    • 임현창
      2002.02.06 01:06
      라벨 쓸 거면 하나로도 두 줄 쓸 수 있죠.
    • 최용일
      2002.02.05 23:24
      안녕하세요. 최용일입니다. 확장자가 다른거 외에는 아무런 차이점이 없습니다. 파일이라는것은 만들...
    • 이상협
    • 2002.02.05 20:37
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 공성환
      2002.02.05 22:06
      procedure Proc_Button(vp_Comp: TComponent); procedure TForm1.Proc_Button(vp_Comp: TComponent); v...
    • 이상협
      2002.02.05 22:50
      이게 뭔소리에여 누구아는사람 해석좀 부탁드리께여 TWinControl ? ,  controls[vv_i] ? , 왕...
    • 최용일
      2002.02.05 23:20
      안녕하세요. 최용일입니다. TWinControl(...)한 것은 형변환한거네요... 님께서도 많이 쓰신 코드인데.....
    • 임현창
      2002.02.06 02:11
      BDE, DBTables 등의 유닛을 포함시키면 해당 함수들을 쓸 수 있습니다. 아무래도 C DLL에 있는 함수들을 ...
    • 성기수
      2002.02.06 03:01
      답변 주심에 감사드립니다. ^^
    • 조성필
    • 2002.02.05 19:33
    • 1 COMMENTS
    • /
    • 3 LIKES
    • 임현창
      2002.02.06 00:01
      CGI쪽 질문인지 MySQL 쪽 질문인지 잘 모르겠습니다. 아무튼 가장 간단한 CGI부터 설명을 드리긴 할텐데...
    • 공성환
      2002.02.05 19:38
      rownum이라는걸 써보세요... 그리고 500개정도면 인덱스만 잘걸면 속도도 나올것같은데... 우선 본인이 ...
    • 이병훈
      2002.02.05 22:43
      안녕하세요. 훔.. 만약 델파이를 사용하신다면 걱정없습니다. 델파이는 내부적으로 부분범위 처리를 ...
    • 강환춘
      2002.02.06 02:00
    • 돌멩이
      2002.02.05 06:22
      테이블의 데이터가 모두 같은 형이 아니라면 레코드를 사용해야 하지 않나요? 제가 이해를 잘 못했나요?...
    • * 아자!! *
      2002.02.05 06:45
      안녕하세요?.. 답변너무고마워요.. 될것 같으면서도 안되고.... 오늘 하루종일 이것가지구 고민을 했었는...
    • 오진욱
    • 2002.02.05 04:42
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 돌멩이
      2002.02.05 06:24
        ClientToScreen()   ScreenToClient() 위의 두개 함수를 사용해 보세요.. 도...
    • 강정구
    • 2002.02.05 03:34
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 장명선
      2002.02.05 04:04
      MaskEdit 라는곳에 #을 입력하면 0은 표시가 안됩니다. 즐코 하세요
    • 한하눌
      2002.02.05 18:25
      프레임의 라인말구 shap를 사용하세요 물론 귀찮으시겠지만..