I think it is something with pymssql, I can get pyodbc to work correctly. I 
guess I will just have to rewrite some of the module to use this. 

David

On Thursday, August 6, 2015 at 11:35:30 AM UTC-4, Anthony wrote:
>
> I'm not sure either. Maybe someone with pymssql experience can help.
>
> On Thursday, August 6, 2015 at 11:27:51 AM UTC-4, David wrote:
>>
>>
>> I went and double checked on a local install of web2py and I am getting 
>> the same result. I also logged into the web server and ran a python script 
>> to test as the web server user and I do get the expected results from the 
>> database.
>>
>> I am still confused at what could be causing this. 
>>
>>
>>
>> On Wednesday, August 5, 2015 at 9:36:11 PM UTC-4, David wrote:
>>>
>>> Running it from the web2py shell by importing the pymssql is returning 
>>> no results. I am not getting an error I just get: 
>>>
>>> In [10] : rows = cursor.execute("SELECT * FROM PERSON WHERE 
>>> PERSON.LAST_NAME = 'Palmer'")
>>>
>>> In [11] : print len(rows)
>>> Traceback (most recent call last):
>>>   File "/home/www-data/web2py/gluon/contrib/shell.py", line 234, in run
>>>     exec compiled in statement_module.__dict__
>>>   File "<string>", line 1, in <module>
>>> TypeError: object of type 'NoneType' has no len()
>>>
>>>
>>> As I continued to dig into it I have noticed that when pymssql is being 
>>> called from web2py nothing is hitting the freetds log. However executing 
>>> from the shell does. 
>>>
>>>
>>>
>>>
>>> On Wednesday, August 5, 2015 at 5:12:19 PM UTC-4, Anthony wrote:
>>>>
>>>> Can you go into a web2py shell and do some basic things, like import 
>>>> pymssql, establish a connection, and issue a basic SQL command?
>>>>
>>>> Also, shouldn't you close the connection (i.e., call DestroyConnection) 
>>>> *before* returning from the function?
>>>>
>>>> Anthony
>>>>
>>>> On Wednesday, August 5, 2015 at 4:55:14 PM UTC-4, David wrote:
>>>>>
>>>>>
>>>>> I like that idea about the __init__ function and will implement that 
>>>>> Thanks!!!
>>>>>
>>>>> I don't get any errors. I am just getting None returned in both the 
>>>>> controller and shell even when hard codeing a SamAccountName that works 
>>>>> within the Python shell. 
>>>>>  
>>>>>
>>>>> On Wednesday, August 5, 2015 at 4:48:03 PM UTC-4, Anthony wrote:
>>>>>>
>>>>>> How are you using this in web2py (i.e., where/how does 
>>>>>> get_GetEmployeeID get called)? Do you get any errors? When you run the 
>>>>>> web2py shell, how are you starting it, and are you using the same Python 
>>>>>> interpreter as when you use the basic Python shell?
>>>>>>
>>>>>> Also, is the only difference between your two classes the hard-coded 
>>>>>> database connection string? If so, why not using a single class and just 
>>>>>> make the connection string an argument of the __init__ function?
>>>>>>
>>>>>> Anthony
>>>>>>
>>>>>> On Wednesday, August 5, 2015 at 4:17:04 PM UTC-4, David wrote:
>>>>>>>
>>>>>>> Here is the first part of the module I was reffering to:
>>>>>>>
>>>>>>> import pymssql
>>>>>>>
>>>>>>>
>>>>>>> class HR_DB():
>>>>>>>     def __init__(self):
>>>>>>>         self.conn = pymssql.connect(DB Connection Info Removed)
>>>>>>>
>>>>>>>     def Execute(self, statement,*args):
>>>>>>>         cursor = self.conn.cursor()
>>>>>>>         cursor.execute(statement, args)
>>>>>>>         result = cursor.fetchall()
>>>>>>>         cursor.close()
>>>>>>>         return result
>>>>>>>
>>>>>>>     def DestroyConnection(self):
>>>>>>>         self.conn.close()
>>>>>>>
>>>>>>> class Coll_DB():
>>>>>>>     def __init__(self):
>>>>>>>         self.conn = pymssql.connect(DB Connection Info Removed)
>>>>>>>
>>>>>>>     def Execute(self, statement, *args):
>>>>>>>         cursor = self.conn.cursor()
>>>>>>>         cursor.execute(statement,args)
>>>>>>>         result = cursor.fetchall()
>>>>>>>         cursor.close()
>>>>>>>         return result
>>>>>>>
>>>>>>>     def DestroyConnection(self):
>>>>>>>         self.conn.close()
>>>>>>>
>>>>>>> def get_GetEmployeeID(SamAccountName):
>>>>>>>
>>>>>>>         conn = Coll_DB()
>>>>>>>         rows = conn.Execute(SQL Removed)
>>>>>>>         if len(rows) > 0:
>>>>>>>             return(rows[0]['collid'])
>>>>>>>         conn.DestroyConnection()
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Again this works just fine calling it outside of web2py.
>>>>>>>
>>>>>>> if I run it from the interpreter on the server I am getting the 
>>>>>>> correct id number. Even using the shell in web2py and issuing the same 
>>>>>>> commands I am getting nothing. I feel like I am missing something simple
>>>>>>>
>>>>>>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to