By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
457,727 Members | 1,254 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 457,727 IT Pros & Developers. It's quick & easy.

Database Access using pyodbc. I've a problem

P: n/a
Hi all,

I've installed pyodbc module to access my database (MS Access). I've
setup a User level DSN to the database.mdb file. When I run my python
code in the command prompt it is retrieving the database contents and
displaying it (HTML output).
But when I run that python from webserver (http://localhost/cgi-bin/
database.py) there comes an entry in the error log of Apache server
that says:

[Sat Jun 16 17:55:57 2007] [error] [client 127.0.0.1] Premature end of
script headers: database.py
[Sat Jun 16 17:55:57 2007] [error] [client 127.0.0.1] Traceback (most
recent call last):\r
[Sat Jun 16 17:55:57 2007] [error] [client 127.0.0.1] File "C:/
Apache Software Foundation/Apache2.2/cgi-bin/database.py", line 10, in
<module>\r
[Sat Jun 16 17:55:57 2007] [error] [client 127.0.0.1] cnxn =
pyodbc.connect('DSN=Emp')\r
[Sat Jun 16 17:55:57 2007] [error] [client 127.0.0.1] pyodbc.Error:
('HY000', "[HY000] [Microsoft][ODBC Microsoft Access Driver] The
Microsoft Jet database engine cannot open the file '(unknown)'. It is
already opened exclusively by another user, or you need permission to
view its data. (-1032); [HY000] [Microsoft][ODBC Microsoft Access
Driver] The Microsoft Jet database engine cannot open the file
'(unknown)'. It is already opened exclusively by another user, or you
need permission to view its data. (-1032)")\r

Even though the MS Access file is closed.

I've no administrator rights and I've installed all these as a normal
windows user.

I don't have problem when I write a similar kind of code in PHP. What
could be the reason? Is it because I don't have administrator rights?
or something else?
Please help me out.

Jun 16 '07 #1
Share this Question
Share on Google+
3 Replies


P: n/a
On Jun 16, 5:35 am, Rajendran <raje...@gmail.comwrote:
Hi all,

I've installed pyodbc module to access my database (MS Access). I've
setup a User level DSN to the database.mdb file. When I run my python
code in the command prompt it is retrieving the database contents and
displaying it (HTML output).
But when I run that python from webserver (http://localhost/cgi-bin/
database.py) there comes an entry in the error log of Apache server
that says:

[Sat Jun 16 17:55:57 2007] [error] [client 127.0.0.1] Premature end of
script headers: database.py
[Sat Jun 16 17:55:57 2007] [error] [client 127.0.0.1] Traceback (most
recent call last):\r
[Sat Jun 16 17:55:57 2007] [error] [client 127.0.0.1] File "C:/
Apache Software Foundation/Apache2.2/cgi-bin/database.py", line 10, in
<module>\r
[Sat Jun 16 17:55:57 2007] [error] [client 127.0.0.1] cnxn =
pyodbc.connect('DSN=Emp')\r
[Sat Jun 16 17:55:57 2007] [error] [client 127.0.0.1] pyodbc.Error:
('HY000', "[HY000] [Microsoft][ODBC Microsoft Access Driver] The
Microsoft Jet database engine cannot open the file '(unknown)'. It is
already opened exclusively by another user, or you need permission to
view its data. (-1032); [HY000] [Microsoft][ODBC Microsoft Access
Driver] The Microsoft Jet database engine cannot open the file
'(unknown)'. It is already opened exclusively by another user, or you
need permission to view its data. (-1032)")\r

Even though the MS Access file is closed.

I've no administrator rights and I've installed all these as a normal
windows user.

I don't have problem when I write a similar kind of code in PHP. What
could be the reason? Is it because I don't have administrator rights?
or something else?
Please help me out.
Looks like a permissions problem at first glance. See
http://httpd.apache.org/docs/2.2/mod...mmon.html#user and
http://httpd.apache.org/docs/2.2/mod...uexecusergroup
Robert Brewer
System Architect
Amor Ministries
fu******@amor.org

Jun 16 '07 #2

P: n/a
Hi Robert,
Thanks for your response.
The problem I've mentioned comes up only with the Python but not with
the PHP. Is it because PHP has been integrated with Apache and Python
isn't? I mean, we have included these

# For PHP 5 do something like this:
LoadModule php5_module "c:/php/php5apache2_2.dll"
AddType application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir "C:/php"
lines in the httpd.conf for Apache to understand PHP and no
corresponding lines for Python?

Does this make Apache to run PHP with the permissions same as user?

Don't we have this option for Python?

Thanks in Advance.
Rajen

Jun 17 '07 #3

P: n/a
-----Original Message-----
From: py******************************************@pytho n.org
[mailto:py***************************************** *@python.org] On
Behalf Of Rajendran
Sent: Sunday, June 17, 2007 3:06 AM
To: py*********@python.org
Subject: Re: Database Access using pyodbc. I've a problem

Hi Robert,
Thanks for your response.
The problem I've mentioned comes up only with the Python but not with
the PHP. Is it because PHP has been integrated with Apache and Python
isn't? I mean, we have included these

# For PHP 5 do something like this:
LoadModule php5_module "c:/php/php5apache2_2.dll"
AddType application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir "C:/php"
lines in the httpd.conf for Apache to understand PHP and no
corresponding lines for Python?

Does this make Apache to run PHP with the permissions same as user?
There are two user execution settings in Apache. The first (User) tells
Apache which user to run as. The second (SuExec User) tells Apache
which user to run CGI files as. These can (and should) be handled
differently in a production system.

I'm not familiar with how apache handles these functions in a Windows
environment, but the references in a prior answer to this thread should
help you out.

-Doug
Jun 17 '07 #4

This discussion thread is closed

Replies have been disabled for this discussion.