f



Database Access using pyodbc. I've a problem

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.

0
rajenpn (16)
6/16/2007 12:35:23 PM
comp.lang.python 77058 articles. 6 followers. Post Follow

3 Replies
674 Views

Similar Articles

[PageSpeed] 53

On Jun 16, 5:35 am, Rajendran <raje...@gmail.com> wrote:
> 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/mpm_common.html#user and
http://httpd.apache.org/docs/2.2/mod/mod_suexec.html#suexecusergroup


Robert Brewer
System Architect
Amor Ministries
fumanchu@amor.org

0
fumanchu (665)
6/16/2007 3:33:26 PM
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

0
rajenpn (16)
6/17/2007 8:06:23 AM
> -----Original Message-----
> From: python-list-bounces+dphillips=3Dcybergroup.com@python.org
> [mailto:python-list-bounces+dphillips=3Dcybergroup.com@python.org] On
> Behalf Of Rajendran
> Sent: Sunday, June 17, 2007 3:06 AM
> To: python-list@python.org
> Subject: Re: Database Access using pyodbc. I've a problem
>=20
> 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
>=20
> # For PHP 5 do something like this:
> LoadModule php5_module "c:/php/php5apache2_2.dll"
> AddType application/x-httpd-php .php
>=20
> # configure the path to php.ini
> PHPIniDir "C:/php"
>=20
>=20
> lines in the httpd.conf for Apache to understand PHP and no
> corresponding lines for Python?
>=20
> 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
0
DPhillips (20)
6/17/2007 10:09:12 PM
Reply: