Well, I downloaded mysql.connector from the link.

I put it in the folder gluon.contrib.
I put the code below in file dal.py:

    try:
        try:
            import contrib.mysql_connector as mysqlconn
        except ImportError:
            import mysql.connector
        DRIVERS.append('MySQL(mysqlconn)')
    except ImportError:
        LOGGER.debug('no MySQL driver mysql.connector')


and it:

class MySQLAdapter(BaseAdapter):
    drivers = ('MySQLdb','pymysql', 'mysqlconn')

I put it in action:

     gluon.dal import from MySQLAdapter
     gluon.contrib import from the mysql_connector mysqlconn
     MySQLAdapter.driver = mysqlconn

And the error continues ...





On Mon, Feb 25, 2013 at 3:06 PM, __pyslan__ - Ayslan Jenken <
ayslan.pyt...@gmail.com> wrote:

> I have not the faintest idea how to do that, and this feature is essential
> for the project. I can not build a recursive function due to performance.
> With great respect I ask, should I give up web2py in this case?
>
>
>
>
> On Mon, Feb 25, 2013 at 2:28 PM, Niphlod <niph...@gmail.com> wrote:
>
>> well, I doubt that workbench uses a python dbapi.
>> From where I stand, you should try to make that work on the adapter (i.e.
>> without web2py) and see if there it works....
>>
>> in my pov, mysql returns different resultsets for that kind of stored
>> proc: one is the result of the line inserted in a loop, and the other one
>> is the resultset that is fetched back from the temporary table. I'm no
>> dbapi expert but I'd say that this is not supported and has to be managed
>> on the adapter side.
>>
>>
>> http://geert.vanderkelen.org/multiple-result-sets-in-mysql-connectorpython/
>>
>>
>> On Monday, February 25, 2013 5:55:16 PM UTC+1, __pyslan__ wrote:
>>
>>> But when I make these calls in MySQL Workbench, the result is correct.
>>>
>>> Look the attached image, please...
>>>
>>>
>>>
>>>
>>> On Mon, Feb 25, 2013 at 1:24 PM, Massimo Di Pierro <
>>> massimo....@gmail.com> wrote:
>>>
>>>> The code below is equivalent to:
>>>>
>>>> sql> CALL sp_recursive_start(1);
>>>> sql> ROLLBACK;
>>>>
>>>> web2py is not adding anything to it.
>>>> This demonstrates that the problem is completely with the code in
>>>> "sp_recursive_start".
>>>> You are getting an OperationError from the database on rollback.
>>>>
>>>> My guess is that there is one of these two problems or both:
>>>>
>>>> 1) you cannot declare the same stored procedure at every request. You
>>>> should declare it once outside of web2py.
>>>> 2) you need to explicitly commit after you declare a stored procedure.
>>>> You cannot roll it back.
>>>>
>>>> Let us know if this helps.
>>>>
>>>> Massimo
>>>>
>>>>
>>>> On Monday, 25 February 2013 08:38:30 UTC-6, __pyslan__ wrote:
>>>>
>>>>> I got it:
>>>>>
>>>>> In [1]: fields = [db.auth_user.generation, db.auth_user.id,
>>>>> db.auth_user.first_name]
>>>>>
>>>>> In [2]: raw_rows = db.executesql('CALL sp_recursive_start(1);',
>>>>> fields=fields)
>>>>>
>>>>> In [3]: db.rollback()
>>>>> ------------------------------****------------------------------****
>>>>> ---------------
>>>>> ProgrammingError                          Traceback (most recent call
>>>>> last)
>>>>>  
>>>>> /home/ctx/PROJECTS/WEB/web2py/****applications/myapp/models/006_****menu.py
>>>>> in <module>()
>>>>> ----> 1 db.rollback()
>>>>>
>>>>> /home/ctx/PROJECTS/WEB/web2py/****gluon/dal.pyc in rollback(self)
>>>>>    7286
>>>>>    7287     def rollback(self):
>>>>> -> 7288         self._adapter.rollback()
>>>>>    7289
>>>>>    7290     def close(self):
>>>>>
>>>>> /home/ctx/PROJECTS/WEB/web2py/****gluon/dal.pyc in rollback(self)
>>>>>    1668
>>>>>    1669     def rollback(self):
>>>>> -> 1670         if self.connection: return self.connection.rollback()
>>>>>    1671
>>>>>    1672     def close_connection(self):
>>>>>
>>>>> ProgrammingError: (2014, "Commands out of sync; you can't run this
>>>>> command now")
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Feb 25, 2013 at 11:24 AM, Massimo Di Pierro <
>>>>> massimo....@gmail.com> wrote:
>>>>>
>>>>>> This is a database issue more than a web2py issue but I am interested
>>>>>> to get to the bottom of it.
>>>>>>
>>>>>> Can you ty open a web2py shell
>>>>>>
>>>>>> $ python web2py.py -S yourapp -M
>>>>>> >>> fields = [db.auth_user.generation, db.auth_user.id, db.auth_user.
>>>>>> first_name]
>>>>>>
>>>>>> >>> raw_rows = db.executesql('CALL sp_recursive_start(1);', 
>>>>>> >>> fields=fields)
>>>>>>
>>>>>>
>>>>>> >>> db.rollback()
>>>>>>
>>>>>> What do you get?
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Monday, 25 February 2013 07:39:24 UTC-6, __pyslan__ wrote:
>>>>>>
>>>>>>> No, Massimo, is not ... With or without the try... except... the
>>>>>>> error is the same ... I've tried this several times.
>>>>>>>
>>>>>>> The code of gist: 
>>>>>>> https://gist.github.com/**pyslan****/5007364<https://gist.github.com/pyslan/5007364>
>>>>>>>  (without
>>>>>>> try... except...) print it on the terminal server:
>>>>>>>
>>>>>>> <Row {'generation': 1, 'first_name': 'Root', 'id': 1}>
>>>>>>> <Row {'generation': 2, 'first_name': 'Teste', 'id': 2}>
>>>>>>> ERROR:web2py:Traceback (most recent call last):
>>>>>>>   File "/home/ctx/PROJECTS/WEB/**web2py****/gluon/main.py", line
>>>>>>> 632, in wsgibase
>>>>>>>     BaseAdapter.close_all_**instance****s('rollback')
>>>>>>>    File "/home/ctx/PROJECTS/WEB/**web2py****/gluon/dal.py", line
>>>>>>> 543, in close_all_instances
>>>>>>>     db._adapter.close(action)
>>>>>>>   File "/home/ctx/PROJECTS/WEB/**web2py****/gluon/dal.py", line
>>>>>>> 523, in close
>>>>>>>     getattr(self, action)()
>>>>>>>   File "/home/ctx/PROJECTS/WEB/**web2py****/gluon/dal.py", line
>>>>>>> 1670, in rollback
>>>>>>>     if self.connection: return self.connection.rollback()
>>>>>>>  ProgrammingError: (2014, "Commands out of sync; you can't run this
>>>>>>> command now")
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Sat, Feb 23, 2013 at 5:58 PM, Massimo Di Pierro <
>>>>>>> massimo....@gmail.com> wrote:
>>>>>>>
>>>>>>>> This is causing the problem. What if you remove the try... except?
>>>>>>>> What ticket do you get?
>>>>>>>>
>>>>>>>>     try:
>>>>>>>>
>>>>>>>>
>>>>>>>>         raw_rows = db.executesql('CALL sp_recursive_start(1);', 
>>>>>>>> fields=fields)
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>     except Exception, e:
>>>>>>>>         print 'ERROR NOW:', e
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>         db.rollback()
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Saturday, 23 February 2013 12:58:44 UTC-6, __pyslan__ wrote:
>>>>>>>>>
>>>>>>>>> After reading this 
>>>>>>>>> thread<http://en.usenet.digipedia.org/thread/16137/52728/>,
>>>>>>>>> as Anthony suggested, I tried this:
>>>>>>>>>
>>>>>>>>> import MySQLdb
>>>>>>>>> from gluon.dal import MySQLAdapter
>>>>>>>>> MySQLAdapter.driver = MySQLdb
>>>>>>>>>
>>>>>>>>> After that, even commenting this block of code I get the result
>>>>>>>>> correctly because the print rows, but the error below is thrown 
>>>>>>>>> anyway:
>>>>>>>>>
>>>>>>>>> Traceback (most recent call last):
>>>>>>>>>   File "/media/sda3/pyslan/PROJECTS/**w******eb2py/gluon/main.py", 
>>>>>>>>> line 632, in wsgibase
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>     BaseAdapter.close_all_**instance******s('rollback')
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>   File "/media/sda3/pyslan/PROJECTS/**w******eb2py/gluon/dal.py", 
>>>>>>>>> line 543, in close_all_instances
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>     db._adapter.close(action)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>   File "/media/sda3/pyslan/PROJECTS/**w******eb2py/gluon/dal.py", 
>>>>>>>>> line 523, in close
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>     getattr(self, action)()
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>   File "/media/sda3/pyslan/PROJECTS/**w******eb2py/gluon/dal.py", 
>>>>>>>>> line 1670, in rollback
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>     if self.connection: return self.connection.rollback()
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ProgrammingError: (2014, "Commands out of sync; you can't run this 
>>>>>>>>> command now")
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> The code:
>>>>>>>>> https://gist.github.com/**pyslan******/5007364<https://gist.github.com/pyslan/5007364>
>>>>>>>>>
>>>>>>>>> Something related with this?
>>>>>>>>> https://groups.google.com/**foru******m/#!msg/web2py/**
>>>>>>>>> 1s7vDix8QC8/**mgv****ot4PEvBgJ<https://groups.google.com/forum/#!msg/web2py/1s7vDix8QC8/mgvot4PEvBgJ>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  --
>>>>>>>>
>>>>>>>> ---
>>>>>>>> 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 web2py+un...@**googlegroups.com.
>>>>>>>>
>>>>>>>> For more options, visit https://groups.google.com/**grou****
>>>>>>>> ps/opt_out <https://groups.google.com/groups/opt_out>.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>  --
>>>>>>
>>>>>> ---
>>>>>> 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 web2py+un...@**googlegroups.com.
>>>>>> For more options, visit 
>>>>>> https://groups.google.com/**grou**ps/opt_out<https://groups.google.com/groups/opt_out>
>>>>>> .
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>  --
>>>>
>>>> ---
>>>> 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 web2py+un...@**googlegroups.com.
>>>> For more options, visit 
>>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>
>>>> .
>>>>
>>>>
>>>>
>>>
>>>  --
>>
>> ---
>> 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 web2py+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>

-- 

--- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to