15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


ISA Extensions and DAO

Andrea Matta -- andma@mbox.vol.it
Wednesday, December 18, 1996

Environment: VC++ 4.2-flat, NT 4.0 Server (U.S. edition)

Ciao,

I'm writing a CGI application that performs queries on a Access database, =
using DAO. 
I found Mike Blaszczak's "dumpsome" example (available from http://www.nwl=
ink.com/~mikeblas/ ) really useful, and it works fine.
But it stops working if I move the same code inside a ISA Extension DLL, a=
nd I can't understand WHY.

Debugging the code I found that the line

CdbDBEngine engine;

throws an exception 0x80070005 (E_ACCESSDENIED) if I log on to the http se=
rver as "anonymous", instead it throws an exception 0x80040154 (REGDB_E_CL=
ASSNOTREG) if I log on as "administrator".

Any clues?

--
Andrea Matta
am@POBoxes.com
http://www.poboxes.com/POBoxes/?am







Dean Wiles -- deanw@isc-br.isc-br.com
Thursday, December 19, 1996

[Mini-digest: 2 responses]

This may not be related, but at Microsoft's Internet PDC last spring, they
indicated that the Access ODBC drivers were not thread-safe and should not
be used in an ISAPI extension DLL.  This may have changed since then, but
if not, it could create mysterious problems for your ISAPI DLL, whereas a
CGI app is usually single-threaded and wouldn't care.

--------------------------------------------------------------------------
Dean Wiles (deanw@mail.isc-br.com)          Olivetti North America
Phone:  (509)927-7037                       22425 East Appleway Ave
Fax:    (509)927-2499                       Liberty Lake, WA 99019-9534
If the Son sets you free, you will be free indeed.  (John 8:36)

----------
From: Andrea Matta   
To: mfc-l@netcom.com
Subject: ISA Extensions and DAO
Date: Wednesday, December 18, 1996 4:00 AM

Environment: VC++ 4.2-flat, NT 4.0 Server (U.S. edition)

Ciao,

I'm writing a CGI application that performs queries on a Access database,
using DAO.
I found Mike Blaszczak's "dumpsome" example (available from
http://www.nwlink.com/~mikeblas/ ) really useful, and it works fine.
But it stops working if I move the same code inside a ISA Extension DLL,
and I can't understand WHY.

Debugging the code I found that the line

CdbDBEngine engine;

throws an exception 0x80070005 (E_ACCESSDENIED) if I log on to the http
server as "anonymous", instead it throws an exception 0x80040154
(REGDB_E_CLASSNOTREG) if I log on as "administrator".

Any clues?

--
Andrea Matta
am@POBoxes.com
http://www.poboxes.com/POBoxes/?am




----------

-----From: Mike Blaszczak 

At 14:17 12/18/96 +0200, Andrea Matta wrote:
>Environment: VC++ 4.2-flat, NT 4.0 Server (U.S. edition)

>I'm writing a CGI application that performs queries on a
>Access database, using DAO.  I found Mike Blaszczak's "dumpsome" example
>(available from http://www.nwlink.com/~mikeblas/ ) really useful,
>and it works fine.

>But it stops working if I move the same code inside a ISA
>Extension DLL, and I can't understand WHY.

>Debugging the code I found that the line

>CdbDBEngine engine;

>throws an exception 0x80070005 (E_ACCESSDENIED) if I log on to the
>http server as "anonymous", instead it throws an
>exception 0x80040154 (REGDB_E_CLASSNOTREG) if I log on as "administrator".

DAO can't be used in any thread other than the thread that initialized
OLE for your application.  In an ISAPI extension, you don't have control
over which thread initializes OLE for you.  You'll find it impossible to
use DAO in ISAPI until an apartment-model thread compatible version of
DAO is released.

>Any clues?

Sure: read the documentation.  If you can't find what you need in the
documentation, try looking in the Microsoft Knowledgebase.  This fact
is covered in the documentation.  This symptom is explained in the
knowledgebase.



.B ekiM
http://www.nwlink.com/~mikeblas/
I'm afraid I've become some sort of speed freak.
These words are my own. I do not speak on behalf of Microsoft.




Dan Kirby -- dkirby@accessone.com
Friday, December 20, 1996

Look at knowledgebase article Q151407. To get to the Microsoft
Knowledgebase go to www.microsoft.com/kb
DAO can only be used in the primary thread of an application.   Future
versions of DAO will most likely be apartment model and as a result it
should work fine in an ISAPI DLL.

--dan

----------
From: Andrea Matta   
To: mfc-l@netcom.com
Subject: ISA Extensions and DAO
Date: Wednesday, December 18, 1996 4:00 AM

Environment: VC++ 4.2-flat, NT 4.0 Server (U.S. edition)

Ciao,

I'm writing a CGI application that performs queries on a Access database,
using DAO.
I found Mike Blaszczak's "dumpsome" example (available from
http://www.nwlink.com/~mikeblas/ ) really useful, and it works fine.
But it stops working if I move the same code inside a ISA Extension DLL,
and I can't understand WHY.

Debugging the code I found that the line

CdbDBEngine engine;

throws an exception 0x80070005 (E_ACCESSDENIED) if I log on to the http
server as "anonymous", instead it throws an exception 0x80040154
(REGDB_E_CLASSNOTREG) if I log on as "administrator".

Any clues?

--
Andrea Matta
am@POBoxes.com
http://www.poboxes.com/POBoxes/?am




----------





| Вернуться в корень Архива |