Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 9 of 9 total
Thread problems with DBISAMQuery1 in isapi
Tue, Jul 4 2006 9:55 PMPermanent Link

lifayan
I had a problem while writing isapi .
my envirment
delphi 7,dbisam 4.17, iis of xp sp2.

i put a DBISAMSession on webmodule ,and set active and autosessionname to ture and then put a DBISAMDatabase and config it  and  then a
DBISAMQuery and config the sql of DBISAMQuery  on webmodule . and i put a DataSetTableProducer1 on webmodule  after that and set the dataset
of DataSetTableProducer1  to DBISAMQuery1.
then i add a webaction to webmodule ad set the producer to DataSetTableProducer1.

it works fine under idebugger(idebugger is a soft to debug isapi like introbob) and under iis ,it reports a 500 error ,i debuged it under iis and get
error info "project dllhost.exe raised exception  class dbisamEngineError  with message 'Dbisam engine error #11013 access denied to table or
backup file c:\windows\system32\dbisam.lck' ". and another errormessage is "'Dbisam engine error #11013 access denied to table or backup file
18000", i tried to config the path of DBISAMDatabase at design time or use follow code at runting
SetString(PathName, FN, GetModuleFileName(hInstance, FN, SizeOf(FN)));
 pathName := ExtractFileDir(pathname)+'\';
 DBISAMDatabase1.Directory:=pathname+'data';
but it reprots the same error.

but if i changed the DBISAMQuery to a DBISAMTable it works fine under both iis and idebugger .

i had search in the google but find littile info about it

i think the problem is about multithread, but i don't know how to solve it

could any one help me?
                      eager waiting for some kind man!

Tue, Jul 4 2006 11:54 PMPermanent Link

Oliver Bock
Adding a half megabyte bitmap to your message delays everyone who reads
this group, regardless of whether they can help you or not.  If you must
include pictures (e.g. where you cannot type the text), put them in a
..gif or some other efficient image format.  Your image as a GIF is only
19kB.


  Oliver
Tue, Jul 4 2006 11:58 PMPermanent Link

lifayan
thanks oliver
how can i delete the bmp picture ?  are you admin of this forum ? could you help me delete it ?


Oliver Bock <oliver-elevatesoft-news@ikucwe.com> wrote:

Adding a half megabyte bitmap to your message delays everyone who reads
this group, regardless of whether they can help you or not.  If you must
include pictures (e.g. where you cannot type the text), put them in a
..gif or some other efficient image format.  Your image as a GIF is only
19kB.


  Oliver
Wed, Jul 5 2006 12:10 AMPermanent Link

lifayan
after 4 hours study ,i think i had get a idea of it . when use a quary , it need to generate a temp file .In iis, the dll runs under a guest privilege,and
because it is called by dllhost.exe ,so the temp dir sets to windows\system32, which the dll has no right to write .so the error occus ,and the question
is how to change the temp dir of dbisams?


lifayan <lifayan@gmail.com> wrote:

I had a problem while writing isapi .
my envirment
delphi 7,dbisam 4.17, iis of xp sp2.

i put a DBISAMSession on webmodule ,and set active and autosessionname to ture and then put a DBISAMDatabase and config it  and  then a
DBISAMQuery and config the sql of DBISAMQuery  on webmodule . and i put a DataSetTableProducer1 on webmodule  after that and set the dataset
of DataSetTableProducer1  to DBISAMQuery1.
then i add a webaction to webmodule ad set the producer to DataSetTableProducer1.

it works fine under idebugger(idebugger is a soft to debug isapi like introbob) and under iis ,it reports a 500 error ,i debuged it under iis and get
error info "project dllhost.exe raised exception  class dbisamEngineError  with message 'Dbisam engine error #11013 access denied to table or
backup file c:\windows\system32\dbisam.lck' ". and another errormessage is "'Dbisam engine error #11013 access denied to table or backup file
18000", i tried to config the path of DBISAMDatabase at design time or use follow code at runting
SetString(PathName, FN, GetModuleFileName(hInstance, FN, SizeOf(FN)));
 pathName := ExtractFileDir(pathname)+'\';
 DBISAMDatabase1.Directory:=pathname+'data';
but it reprots the same error.

but if i changed the DBISAMQuery to a DBISAMTable it works fine under both iis and idebugger .

i had search in the google but find littile info about it

i think the problem is about multithread, but i don't know how to solve it

could any one help me?
                      eager waiting for some kind man!

Wed, Jul 5 2006 3:18 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

lifayan


You use the Session.PrivateDir property

Roy Lambert
Wed, Jul 5 2006 4:51 AMPermanent Link

Set the Session's PrivateDir property to a suitable location for temporary
files.

/Matthew Jones/
Wed, Jul 5 2006 1:31 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

<< how can i delete the bmp picture ?  are you admin of this forum ? could
you help me delete it ? >>

I'll take care of it.

--
Tim Young
Elevate Software
www.elevatesoft.com

Wed, Jul 5 2006 1:33 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

<< after 4 hours study ,i think i had get a idea of it . when use a quary ,
it need to generate a temp file .In iis, the dll runs under a guest
privilege,and because it is called by dllhost.exe ,so the temp dir sets to
windows\system32, which the dll has no right to write .so the error occus
,and the question is how to change the temp dir of dbisams? >>

Sorry about not responding sooner.  Yesterday was the a holiday here in the
US, so I was out of the office for the day.

As already indicated, set the Session.PrivateDir property to 'c:\winnt\temp'
or something similar and that will fix the problem:

http://www.elevatesoft.com/faqt_16.htm

--
Tim Young
Elevate Software
www.elevatesoft.com

Mon, Jul 10 2006 12:29 AMPermanent Link

lifayan
thanks to all ,Smilei had sovled it yet .

"Tim Young [Elevate Software]" <timyoung@elevatesoft.com> wrote:

<< after 4 hours study ,i think i had get a idea of it . when use a quary ,
it need to generate a temp file .In iis, the dll runs under a guest
privilege,and because it is called by dllhost.exe ,so the temp dir sets to
windows\system32, which the dll has no right to write .so the error occus
,and the question is how to change the temp dir of dbisams? >>

Sorry about not responding sooner.  Yesterday was the a holiday here in the
US, so I was out of the office for the day.

As already indicated, set the Session.PrivateDir property to 'c:\winnt\temp'
or something similar and that will fix the problem:

http://www.elevatesoft.com/faqt_16.htm

--
Tim Young
Elevate Software
www.elevatesoft.com

Image