화랑님과 까마귀님의 정성스러운 답변을 메일로 잘 받았습니다.
정말 감사드립니다. (<- 차후에 소주라도 제가 대접해 드릴께요. 가능할까?)
제가 초보라 이해하기가 조금 힘든데요. 제 사황을 다시 한번
설명 드립니다.
저는요 지금 델파이로 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
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:= '
>
Active True/html>';
> end else begin
> Response.content:= '
>
Active False
';> end;
>
> end;
>
> 위 와 같습니다. 저는 PWS 4.0(맞나?)을 사용하구요. Win98 Second Editon을
>
> 사용중입니다. 델파이 4.0을 사용하구요.
>
> 아시는문 답좀 주세요...
>
> 위의 파일에는 dbclient.dll이 같은 폴더에 포함되어 있습니다.
>
> love7579love@yahoo.co.kr
>