Q&A

  • [Q] 다시 질문 드립니다.
화랑님과 까마귀님의 정성스러운 답변을 메일로 잘 받았습니다.



정말 감사드립니다. (<- 차후에 소주라도 제가 대접해 드릴께요. 가능할까?)



제가 초보라 이해하기가 조금 힘든데요. 제 사황을 다시 한번



설명 드립니다.



저는요 지금 델파이로 CGI프로그램을 공부중인데요?



TClientDataset을 사용하려고 합니다. 먼저 Ttable에서 추출한것을



.cds 파일로 만들고 이것을 웹상에서 제어하려고 하니 explorer에서 다음과 같은



에러가 발생하였습니다.



> Internal Server Error 500

>

> --------------------------------------------------------------------------------

> Exception: EOleSysError

> Message: CoInitialize를 호출하지 않았습니다





제소스는 이러합니다.



interface



uses

Windows, Messages, SysUtils, Classes, HTTPApp, Db, DBClient, DBWeb;



type

TWebModule1 = class(TWebModule)

cdsCounter: TClientDataSet;

procedure WebModule1waiCounterAction(Sender: TObject;

Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

private

{ Private declarations }

public

{ Public declarations }

end;



var

WebModule1: TWebModule1;



implementation



{$R *.DFM}



procedure TWebModule1.WebModule1waiCounterAction(Sender: TObject;

Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

var

Total: double;

begin



cdsCounter.LoadFromFile('./counter.cds');

cdsCounter.Active:= true;



if cdsCounter.fieldbyname('Total').asstring = '' then begin

Total:= 0;

end else begin

Total:= cdsCounter.fieldbyname('Total').asfloat;

end;

Total:= Total + 1;



cdsCounter.edit;

cdsCounter.fieldbyname('Total').asfloat:= Total;

cdsCounter.post;



cdsCounter.savetofile('./counter.cds');

cdsCounter.Active:= false;



if cdscounter.active then begin

Response.content:= 'Test

Active True/html>';

end else begin

Response.content:= 'Test

Active False

';

end;



end;



위 와 같습니다. 저는 PWS 4.0(맞나?)을 사용하구요. Win98 Second Editon을



사용중입니다. 델파이 4.0을 사용하구요.



아시는문 답좀 주세요...



위의 파일에는 dbclient.dll이 같은 폴더에 포함되어 있습니다.



love7579love@yahoo.co.kr



1  COMMENTS
  • Profile
    최용일 2000.04.05 19:50
    안녕하세요. 최용일입니다.



    COM 라이브러리를 초기화시키지 않으신 것 같은데, CoInitialize를 써서



    COM 라이브러리를 초기화 시켜주세요.



    ^^



    정용진 wrote:

    > 화랑님과 까마귀님의 정성스러운 답변을 메일로 잘 받았습니다.

    >

    > 정말 감사드립니다. (<- 차후에 소주라도 제가 대접해 드릴께요. 가능할까?)

    >

    > 제가 초보라 이해하기가 조금 힘든데요. 제 사황을 다시 한번

    >

    > 설명 드립니다.

    >

    > 저는요 지금 델파이로 CGI프로그램을 공부중인데요?

    >

    > TClientDataset을 사용하려고 합니다. 먼저 Ttable에서 추출한것을

    >

    > .cds 파일로 만들고 이것을 웹상에서 제어하려고 하니 explorer에서 다음과 같은

    >

    > 에러가 발생하였습니다.

    >

    > > Internal Server Error 500

    > >

    > > --------------------------------------------------------------------------------

    > > Exception: EOleSysError

    > > Message: CoInitialize를 호출하지 않았습니다

    >

    >

    > 제소스는 이러합니다.

    >

    > interface

    >

    > uses

    > Windows, Messages, SysUtils, Classes, HTTPApp, Db, DBClient, DBWeb;

    >

    > type

    > TWebModule1 = class(TWebModule)

    > cdsCounter: TClientDataSet;

    > procedure WebModule1waiCounterAction(Sender: TObject;

    > Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

    > private

    > { Private declarations }

    > public

    > { Public declarations }

    > end;

    >

    > var

    > WebModule1: TWebModule1;

    >

    > implementation

    >

    > {$R *.DFM}

    >

    > procedure TWebModule1.WebModule1waiCounterAction(Sender: TObject;

    > Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

    > var

    > Total: double;

    > begin

    >

    > cdsCounter.LoadFromFile('./counter.cds');

    > cdsCounter.Active:= true;

    >

    > if cdsCounter.fieldbyname('Total').asstring = '' then begin

    > Total:= 0;

    > end else begin

    > Total:= cdsCounter.fieldbyname('Total').asfloat;

    > end;

    > Total:= Total + 1;

    >

    > cdsCounter.edit;

    > cdsCounter.fieldbyname('Total').asfloat:= Total;

    > cdsCounter.post;

    >

    > cdsCounter.savetofile('./counter.cds');

    > cdsCounter.Active:= false;

    >

    > if cdscounter.active then begin

    > Response.content:= 'Test

    >

    Active True/html>';

    > end else begin

    > Response.content:= 'Test

    >

    Active False

    ';

    > end;

    >

    > end;

    >

    > 위 와 같습니다. 저는 PWS 4.0(맞나?)을 사용하구요. Win98 Second Editon을

    >

    > 사용중입니다. 델파이 4.0을 사용하구요.

    >

    > 아시는문 답좀 주세요...

    >

    > 위의 파일에는 dbclient.dll이 같은 폴더에 포함되어 있습니다.

    >

    > love7579love@yahoo.co.kr

    >