ADO/ODBC call via Python/IIS
Bill Seitz
fluxent at yahoo.com
Fri Feb 2 15:26:28 EST 2001
Architecture: ASP page using <%@ LANGUAGE = Python%>, calling Python
class which calls ADO to pass SQL command via ODBC driver to MsSQL db.
(Everything running on Win2K.) MsSQL configured to authenticate against
ActiveDirectory only. Sysadmin created userID 'pyasp'. I created MsSQL
login and assigned user rights in the appropriate db. I created an ODBC
source named 'pyasp', assigned the current db as the default.
Here is the class that does the work (in file 'aAdoBiz.py')
class aConnect:
def __init__(self):
import win32com.client
adoConn = win32com.client.Dispatch('ADODB.Connection')
adoConn.Open('pyasp')
(adoRS, success) = adoConn.Execute('Select * from RateUnits')
adoRS.MoveFirst()
adoRS.MoveNext()
self.fieldName = adoRS.Fields("Name").Value
When I call this code interactively, I get the right result:
>>> import aAdoBiz
>>> z=aAdoBiz.aConnect()
>>> z.fieldName.encode()
'Days '
But then I have the same idea implemented in an ASP page:
<%
import aAdoBiz
x = aAdoBiz.aConnect()
out = x.fieldName.encode()
%>
<%= out %>
(A very similar ASP page, calling a simple stub class with no ODBC
activity, works fine.)
When I call this ASP page, I get an error to the browser...
HTTP 500.100 - Internal Server Error - ASP error
Error Type:
Python ActiveX Scripting Engine (0x80020009)
Traceback (innermost last): File "<Script Block >", line 3, in ? x =
aAdoBiz.aConnect() File "aAdoBiz.py", line 7, in __init__ adoConn.Open
('pyasp') File "c:\python20\win32com\gen_py\00000206-0000-0010-8000-
00AA006D2EA4x0x2x6.py", line 1833, in Open return self._ApplyTypes_
(0xa, 1, (24, 32), ((8, 49), (8, 49), (8, 49), (3, 49)), 'Open',
None,ConnectionString, UserID, Password, Options) File "c:\python20
\win32com\client\__init__.py", line 334, in _ApplyTypes_ return
self._get_good_object_(apply(self._oleobj_.InvokeTypes, (dispid, 0,
wFlags, retType, argTypes) + args), user, resultCLSID) COM Error:
[Microsoft][ODBC Driver Manager] Data source name not found and no
default driver specified
What is happening here? Why the error when called from IIS, but not
when run interactively?
thx
Sent via Deja.com
http://www.deja.com/
More information about the Python-list
mailing list