Hi everyone !

I have an application working correctly with version 1.87.3 of web2py
and SQL Server 2000. The database has a collation
Modern_Spanish_CI_AS.

My problems start when upgrade to version 1.93.2. In my code have
originally:

db = SQLDB('mssql2://User:Password@MyServer/MyDataBase', pool_size=10,
db_code="LATIN-1")

from gluon.tools import *
auth = Auth(globals(), db)
auth.define_tables(migrate = False)

db.define_table('Tareas'
, SQLField('Descripcion', 'string', length=200, required=True)
, migrate = False
)

The Auth tables was created with this setup. String values are
nvarchar datatype in table.

Whe I try to login obtain this error:

Traceback (most recent call last):
  File "C:\Documents and Settings\hansen\Escritorio\Web2Py\web2py
fuentes 1-93-2\gluon\restricted.py", line 188, in restricted
    exec ccode in environment
  File "C:/Documents and Settings/hansen/Escritorio/Web2Py/web2py
fuentes 1-93-2/applications/sgs/controllers/default.py", line 55, in
<module>
  File "C:\Documents and Settings\hansen\Escritorio\Web2Py\web2py
fuentes 1-93-2\gluon\globals.py", line 95, in <lambda>
    self._caller = lambda f: f()
  File "C:/Documents and Settings/hansen/Escritorio/Web2Py/web2py
fuentes 1-93-2/applications/sgs/controllers/default.py", line 34, in
user
    return dict(form=auth())
  File "C:\Documents and Settings\hansen\Escritorio\Web2Py\web2py
fuentes 1-93-2\gluon\tools.py", line 1032, in __call__
    return self.login()
  File "C:\Documents and Settings\hansen\Escritorio\Web2Py\web2py
fuentes 1-93-2\gluon\tools.py", line 1447, in login
    user = self.db(table_user[username] ==
form.vars[username]).select().first()
  File "C:\Documents and Settings\hansen\Escritorio\Web2Py\web2py
fuentes 1-93-2\gluon\dal.py", line 4737, in select
    return self.db._adapter.select(self.query,fields,attributes)
  File "C:\Documents and Settings\hansen\Escritorio\Web2Py\web2py
fuentes 1-93-2\gluon\dal.py", line 1025, in select
    rows = response(sql)
  File "C:\Documents and Settings\hansen\Escritorio\Web2Py\web2py
fuentes 1-93-2\gluon\dal.py", line 1015, in response
    self.execute(sql)
  File "C:\Documents and Settings\hansen\Escritorio\Web2Py\web2py
fuentes 1-93-2\gluon\dal.py", line 1931, in execute
    return self.log_execute(a,'utf8')
  File "C:\Documents and Settings\hansen\Escritorio\Web2Py\web2py
fuentes 1-93-2\gluon\dal.py", line 1094, in log_execute
    return self.cursor.execute(*a,**b)
ProgrammingError: ('The SQL contains 0 parameter markers, but 1
parameters were supplied', 'HY000')


I try changing the connection string to "mssql"

db = DAL('mssql://User:Password@MyServer/MyDataBase', pool_size=10,
db_code="LATIN-1")

and everything go fine until I discover errors updating nvarchar
fields. If read a record with the string "Cañería" and update with the
same, the result was something like "cañeria".

Put a print and the result was

UPDATE Tareas SET Descripcion='Instalar impresora ca+¦eria' WHERE
(Tareas.id = 1);

of course, no unicode modificator "N".

Ok, I know "mssql2" is needed with unicode strings, but if I use an
error appears, the same when all this thing start...

Traceback (most recent call last):
  File "C:\Documents and Settings\hansen\Escritorio\Web2Py\web2py
fuentes 1-93-2\gluon\restricted.py", line 188, in restricted
    exec ccode in environment
  File "C:/Documents and Settings/hansen/Escritorio/Web2Py/web2py
fuentes 1-93-2/applications/sgs/controllers/tareas.py", line 408, in
<module>
  File "C:\Documents and Settings\hansen\Escritorio\Web2Py\web2py
fuentes 1-93-2\gluon\globals.py", line 95, in <lambda>
    self._caller = lambda f: f()
  File "C:/Documents and Settings/hansen/Escritorio/Web2Py/web2py
fuentes 1-93-2/applications/sgs/controllers/tareas.py", line 292, in
Consulta
    return GenerarFormularioBusqueda("C")
  File "C:/Documents and Settings/hansen/Escritorio/Web2Py/web2py
fuentes 1-93-2/applications/sgs/controllers/tareas.py", line 84, in
GenerarFormularioBusqueda
    Registros = db().select(db.TareasTipo.id,
db.TareasTipo.Descripcion, orderby=db.TareasTipo.Descripcion)
  File "C:\Documents and Settings\hansen\Escritorio\Web2Py\web2py
fuentes 1-93-2\gluon\dal.py", line 4737, in select
    return self.db._adapter.select(self.query,fields,attributes)
  File "C:\Documents and Settings\hansen\Escritorio\Web2Py\web2py
fuentes 1-93-2\gluon\dal.py", line 1025, in select
    rows = response(sql)
  File "C:\Documents and Settings\hansen\Escritorio\Web2Py\web2py
fuentes 1-93-2\gluon\dal.py", line 1015, in response
    self.execute(sql)
  File "C:\Documents and Settings\hansen\Escritorio\Web2Py\web2py
fuentes 1-93-2\gluon\dal.py", line 1931, in execute
    return self.log_execute(a,'utf8')
  File "C:\Documents and Settings\hansen\Escritorio\Web2Py\web2py
fuentes 1-93-2\gluon\dal.py", line 1094, in log_execute
    return self.cursor.execute(*a,**b)
ProgrammingError: ('The SQL contains 0 parameter markers, but 1
parameters were supplied', 'HY000')


Try changing db_code property without any results.

Some ideas ?

Reply via email to