The DAL generates update code for table fields like this.

    ALTER TABLE auth_permission ADD group_id__tmp INT, ADD
CONSTRAINT ... ;

The ', ADD' generates a SQL syntax error for SQLServer (at least for
version 2005) this syntax should be

    ALTER TABLE auth_permission ADD group_id__tmp INT; ALTER TABLE ADD
CONSTRAINT ...

My suggested patch is below, I'll send the patch by direct mail.

Nico de Groot


web2py (Version 1.67.1) gluon/sql.py

lines 1414-1416

            if not key in sql_fields_old:
                query = ['ALTER TABLE %s ADD %s %s;' %
(self._tablename,
                        key, sql_fields_aux[key].replace(', ', ', ADD
'))]

replace by

            if not key in sql_fields_old:
                if self._db._dbname == 'mssql':
                    query = ['ALTER TABLE %s ADD %s %s;' %
(self._tablename,
                            key, sql_fields_aux[key].replace(', ', ';
ALTER TABLE %s ADD '%self._tablename))]
                else:
                    query = ['ALTER TABLE %s ADD %s %s;' %
(self._tablename,
                            key, sql_fields_aux[key].replace(', ', ',
ADD '))]


and

lines(1429-1436)

                t = self._tablename
                tt = sql_fields_aux[key].replace(', ', ', ADD ')
                query = ['ALTER TABLE %s ADD %s__tmp %s;' % (t, key,
tt),
                         'UPDATE %s SET %s__tmp=%s;' % (t, key, key),
                         'ALTER TABLE %s DROP COLUMN %s;' % (t, key),
                         'ALTER TABLE %s ADD %s %s;' % (t, key, tt),
                         'UPDATE %s SET %s=%s__tmp;' % (t, key, key),
                         'ALTER TABLE %s DROP COLUMN %s__tmp;' % (t,
key)]
replace by

                t = self._tablename
                if self._db._dbname == 'mssql':
                    tt = sql_fields_aux[key].replace(', ', '; ALTER
TABLE %s ADD '% (self._tablename))
                else:
                    tt = sql_fields_aux[key].replace(', ', ', ADD ')



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to