Thanks Anthony- ill give it a try
On Monday, August 27, 2012 4:58:01 PM UTC-4, Anthony wrote:
>
> The existing adapter should work with mysqldb. Try:
>
> import mysqldb
> from gluon.dal import MySQLAdapter
> MySQLAdapter.driver = mysqldb
> db=DAL('mysql://....')
>
> Anthony
>
> On Monday, August 27, 2012 4:37:42 PM UTC-4, Yarin wrote:
>>
>> This is an issue with pymsql:
>> http://code.google.com/p/pymysql/issues/detail?id=72,
>> https://github.com/petehunt/PyMySQL/blob/master/pymysql/cursors.py
>>
>> Running against pymysql's api directly, I can execute sproc calls on on
>> two different connections, but not on the same connection.
>>
>> So...
>>
>> - What's the best way to emulate closing/opening a connection through
>> the DAL- does it mean instantiating a new DAL object? Is working with
>> multiple DAL objects a bad idea, or is that a good workaround?
>> - If I switch to mysqldb, does that mean i've got to write my own
>> adapter? If there's already adapters/recipes ready for using mysqldb I'll
>> try it, otherwise I can't spare the time right now..
>>
>>
>>
>>
>>
>> On Monday, August 27, 2012 3:52:06 PM UTC-4, Massimo Di Pierro wrote:
>>>
>>> Try use mysqldb too. The default pymysql has some problems. We even have
>>> to monkeypatch it for security.
>>>
>>> Massimo
>>>
>>> On Monday, 27 August 2012 14:20:00 UTC-5, Yarin wrote:
>>>>
>>>> This is MySQL using the default driver, whatever that is. I'm going to
>>>> test on other drivers/dbs and will report back..
>>>>
>>>> On Monday, August 27, 2012 3:03:15 PM UTC-4, Massimo Di Pierro wrote:
>>>>>
>>>>> I do not think this is a DAL issue. This looks database issue or a
>>>>> driver issue. Web2py does not do another else but pass your SQL to the
>>>>> driver and fetch responses.
>>>>>
>>>>> Is this SQLITE? In any case, I suggest you try the native driver APIs.
>>>>>
>>>>> On Monday, 27 August 2012 09:37:45 UTC-5, Yarin wrote:
>>>>>>
>>>>>> Once we call a stored procedure through the DAL, any subsequent DAL
>>>>>> calls are returning None results.
>>>>>>
>>>>>> *Basic stored procedure:*
>>>>>> BEGIN
>>>>>> SELECT * FROM people;
>>>>>> END
>>>>>>
>>>>>> *Works:*
>>>>>> def test():
>>>>>>
>>>>>> sql = "CALL GetPeople();"
>>>>>> sproc_results = db_test.executesql(sql)
>>>>>>
>>>>>> return str(sproc_results)
>>>>>>
>>>>>> *Works:*
>>>>>> def test():
>>>>>>
>>>>>> sql = "SELECT * FROM people;"
>>>>>> reg_results = db_test.executesql(sql)
>>>>>>
>>>>>> return str(reg_results)
>>>>>>
>>>>>> *Returns None:*
>>>>>> def test():
>>>>>>
>>>>>> sql = "CALL GetPeople();"
>>>>>> sproc_results = db_test.executesql(sql)
>>>>>>
>>>>>> sql = "SELECT * FROM people;"
>>>>>> reg_results = db_test.executesql(sql)
>>>>>>
>>>>>> return str(reg_results)
>>>>>>
>>>>>> *Returns None:*
>>>>>> def test():
>>>>>>
>>>>>> sql = "CALL GetPeople();"
>>>>>> sproc_results = db_test.executesql(sql)
>>>>>>
>>>>>> sql = "CALL GetPeople();"
>>>>>> sproc_results = db_test.executesql(sql)
>>>>>>
>>>>>> return str(sproc_results)
>>>>>>
>>>>>>
>>>>>>
--