you can't cross-reference a field between two separate 
databases..........there's no way to create a foreign key between different 
databases.

On Wednesday, September 10, 2014 1:36:23 AM UTC+2, José Eloy wrote:
>
> Hi!
>
> I'm developing an web2py application that use an external SQL Server 
> database. I can connect to the SQL Server database using  migrate=False in 
> those tables I need to access. In addition I create my own tables from 
> web2py (also they connect to SQL Server). My troubles begin when one of my 
> tables (created with web2py) intents to connect with the external database. 
> When I try to connect I get the "cannot resolve reference" error.
>
> Below I show the significant code of my application:
>
> In db.py:
> db = DAL('mssql://connection to SQL Server database created with web2py') 
> db2= DAL('mssql://connection to External SQL Server database')
>
> # Table personal_personal is external (was not created with web2py, it's 
> not complete, only show the most important)
>
> db2.define_table('personal_personal',
>                  Field('foto_personal', 'blob', notnull=False),
>                  Field('firma_personal', 'blob', notnull=False),
>                  Field('id_personal', 'id', requires=IS_NOT_IN_DB(db2, 
> 'personal_personal.id_personal'), unique=True, notnull=True), #Primary key, 
> not auto-increment
>                  Field('id_categoria', db2.personal_catalogo_categoria, 
> requires = IS_IN_DB(db2, db2.personal_catalogo_categoria.id_categoria, 
> '%(id_categoria)s'), notnull=True),
>                  Field('id_areataller', db2.mtto_areataller, requires = 
> IS_IN_DB(db2, db2.mtto_areataller.id_areataller, '%(id_areataller)s'), 
> notnull=False),
>                  Field('id_area', 'reference general_area.id_area', 
> requires = IS_IN_DB(db2, db2.general_area.id_area, '%(id_area)s - 
> %(nombre)s'), notnull=True),
>                  Field('id_depto', 'reference 
> general_departamentos.id_depto', requires = IS_IN_DB(db2, 
> db2.general_departamentos.id_depto, '%(id_depto)s - %(descripcion)s'), 
> notnull=False),
>                  Field('cant_hijos', 'integer', notnull=False),
>                  Field('status_foto', 'integer', notnull=False),
>                  Field('status_firma', 'integer', notnull=False),
>                  Field('porcent_ret_descuent', 'integer', notnull=False),
>                  ....
>                 Migrate=False)
>
> Below personal_personal is defined the following table:
>
> db.define_table('unidades',
>                 Field('nombre', requires=IS_NOT_EMPTY()),
>                 Field('descripcion'),
>                 Field('tipo_unidad', db.tipo_unidades),
>                 Field('operador', 'reference 
> db2.personal_personal.id_personal', requires = IS_IN_DB(db2, 
> db2.personal_personal.id_personal, '%(nombre)s')),
>                 format='%(operador)s'
>                 )
>
> The 'operador' field reference the table personal_personal.
>
> In a controller I have the following code:
>
> def nueva_unidad():
>     form=SQLFORM(db.unidades, submit_button="Aceptar")
>     if form.accepts(request.vars, session):
>         redirect(URL(r=request, f='nueva_unidad'))
>         response.flash = 'Se ha creado una nueva unidad'
>
>     return dict( form=form)
>
> When I call this function is when I get the error: 
> <type 'exceptions.KeyError'> 'Cannot resolve reference 
> db2.personal_personal.id_personal in unidades definition'
>
>
> How can I to correct this error? Any Idea?
>
> Thanks in advanced.
>
> Regards.
>
>
>
>

-- 
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.

Reply via email to