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.