You can but it should be very inefficient. On Wednesday, 22 August 2012 15:01:44 UTC-5, Omi Chiba wrote: > > Like can I query the data from the table and use IS_IN_SET istead of > IS_IN_DB ? > > On Tuesday, August 21, 2012 4:54:51 PM UTC-5, Omi Chiba wrote: >> >> Is there any other way I can try ? >> >> I can see the data in the both table no problem. It just cannot use >> IS_IN_DB function for it. >> >> >> On Monday, August 20, 2012 2:33:39 PM UTC-5, Omi Chiba wrote: >>> >>> >Is the problem only in appadmin? >>> No, it happnes anywhere. >>> >>> >Can you produce a minimum program with some sample data to reproduce >>> this? >>> I tried MySQL, MSSQL and DB2, and found only DB2 has this problem. >>> >>> This is how to reproduce the error on db2. This is very critical for my >>> current project and >>> I hope we can find the problem or find another way to do the dropdown >>> which works on db2. >>> >>> 1. create table below >>> models/db_tables.py >>> >>> ------------------------------------------------------------------------------------------------- >>> >>> # coding: utf8 >>> >>> db.define_table('dog', >>> Field('dogid'), >>> Field('name'), >>> format='%(name)s', >>> primarykey=['dogid']) >>> >>> db.define_table('cat', >>> Field('catid'), >>> Field('name'), >>> format='%(name)s', >>> primarykey=['catid']) >>> >>> db.define_table('person', >>> Field('personid'), >>> Field('name'), >>> Field('mydog'), >>> Field('mycat'), >>> format='%(name)s', >>> primarykey=['personid']) >>> >>> db.person.mydog.requires=IS_IN_DB(db,db.dog.dogid,'%(name)s') >>> db.person.mycat.requires=IS_IN_DB(db,db.cat.catid,'%(name)s') >>> >>> ------------------------------------------------------------------------------------------------- >>> >>> 2. create the table on db2 from dds >>> >>> person >>> ------------------------------------------------- >>> A* >>> A R PERSONR >>> A* >>> A PERSONID 5A >>> A NAME 50A >>> A MYDOG 5A >>> A MYCAT 5A >>> A* >>> A* KEY FIELDS >>> A*------------ >>> A K PERSONID >>> A* >>> ------------------------------------------------- >>> >>> Dog >>> ------------------------------------------------- >>> A* >>> A R DOGR >>> A* >>> A DOGID 5A >>> A NAME 50A >>> A* >>> A* KEY FIELDS >>> A*------------ >>> A K DOGID >>> A* >>> ------------------------------------------------- >>> >>> Cat >>> ------------------------------------------------- >>> A* >>> A R CATR >>> A* >>> A CATID 5A >>> A NAME 50A >>> A* >>> A* KEY FIELDS >>> A*------------ >>> A K CATID >>> A* >>> ------------------------------------------------- >>> >>> 3. Insert test data >>> ------------------------------------------------- >>> Dog >>> dogid = '12345' >>> name = 'HACHI' >>> >>> Cat >>> catid='CAT01' >>> name = 'TAMA' >>> ------------------------------------------------- >>> >>> 4. Result >>> I can pull the data from Dog table but not Cat table (see attached) >>> As you can see the dog and cat table is exactly the same type of table >>> but dog has data begin with number >>> and cat begin with alphabet. >>> >>> >>> >>> >>> On Sunday, August 19, 2012 10:08:07 AM UTC-5, Massimo Di Pierro wrote: >>>> >>>> Is the problem only in appadmin? Can you produce a minimum program with >>>> some sample data to reproduce this? >>>> >>>> >>>> >>>> On Friday, 17 August 2012 23:56:39 UTC-5, Omi Chiba wrote: >>>>> >>>>> Issue #939 is assigned. >>>>> http://code.google.com/p/web2py/issues/detail?id=939 >>>>> >>>>> On Friday, August 17, 2012 9:51:48 PM UTC-5, Massimo Di Pierro wrote: >>>>>> >>>>>> Please open a ticket pointing to this thread. Will look at it asap. >>>>>> >>>>>> On Friday, 17 August 2012 17:33:51 UTC-5, Omi Chiba wrote: >>>>>>> >>>>>>> I finally figured this should be a bug on the current in trunk >>>>>>> version ("Version 2.0.0 (2012-08-15 17:30:38) dev") >>>>>>> >>>>>>> I can pull the data when the data in primarykey field begin with >>>>>>> numeric numbers for example 12345 or 1ABCDE (See NG-1,2.jpg) >>>>>>> but cannot pull the data begin with alphabet like A1234. (See >>>>>>> OK-1,2.jpg) >>>>>>> >>>>>>> >>>>>>> # MF - EDI CUSTOMER >>>>>>> db.define_table('EDMACF00', >>>>>>> Field('ACDIID', length=5, label="Dist Code"), >>>>>>> Field('ACNAME', length=20, label="Dist Name"), >>>>>>> Field('AC855F', length=1, label="PO ACK FLAG"), >>>>>>> Field('AC856F', length=1, label="ASN FLAG"), >>>>>>> Field('AC810F', length=1, label="INVOICE FLAG"), >>>>>>> Field('ACUPFL', length=1, label="OZ UPLOAD FLAG"), >>>>>>> Field('ACCRBY', length=20, default = auth.user.username.upper() >>>>>>> if auth.user else None, label="Created by"), >>>>>>> Field('ACCRDT', 'datetime', default =request.now, label="Created >>>>>>> on"), >>>>>>> Field('ACUPBY', length=20, update = auth.user.username.upper() >>>>>>> if auth.user else None, label="Updated by"), >>>>>>> Field('ACUPDT', 'datetime', update =request.now, label="Updated >>>>>>> on"), >>>>>>> primarykey=['ACDIID']) >>>>>>> >>>>>>> >>>>>>> db.EDMACF00.ACDIID.requires=[IS_NOT_EMPTY(),IS_LENGTH(5,1),IS_UPPER()] >>>>>>> >>>>>>> db.EDMACF00.ACNAME.requires=[IS_NOT_EMPTY(),IS_LENGTH(20,1),IS_UPPER()] >>>>>>> db.EDMACF00.AC855F.requires=IS_IN_SET(['','1'], zero=None) >>>>>>> db.EDMACF00.AC856F.requires=IS_IN_SET(['','1'], zero=None) >>>>>>> db.EDMACF00.AC810F.requires=IS_IN_SET(['','1'], zero=None) >>>>>>> db.EDMACF00.ACUPFL.writable = db.EDMACF00.ACUPFL.readable = False >>>>>>> db.EDMACF00.ACCRBY.writable = False >>>>>>> db.EDMACF00.ACCRDT.writable = False >>>>>>> db.EDMACF00.ACUPBY.writable = False >>>>>>> db.EDMACF00.ACUPDT.writable = False >>>>>>> >>>>>>> # XR - CUSTOMER >>>>>>> db.define_table('EDXTKF00', >>>>>>> Field('TKDIID', length=5, label="Dist Code"), >>>>>>> Field('TKDICD', length=20, label="Dist Office Code"), >>>>>>> Field('TKTKSC', length=3, label="Dept"), >>>>>>> Field('TKTKCD', length=8, label="Customer Code"), >>>>>>> Field('TKDMCD', 'integer', label="Employee Code"), >>>>>>> Field('TKUPFL', length=1, label="OZ UPLOAD FLAG"), >>>>>>> Field('TKCRBY', length=20, default = auth.user.username.upper() >>>>>>> if auth.user else None, label="Created by"), >>>>>>> Field('TKCRDT', 'datetime', default =request.now, label="Created >>>>>>> on"), >>>>>>> Field('TKUPBY', length=20, update = auth.user.username.upper() >>>>>>> if auth.user else None, label="Updated by"), >>>>>>> Field('TKUPDT', 'datetime', update =request.now, label="Updated >>>>>>> on"), >>>>>>> primarykey=['TKDIID', 'TKDICD']) >>>>>>> >>>>>>> >>>>>>> db.EDXTKF00.TKDIID.requires=IS_IN_DB(db,db.EDMACF00.ACDIID,'%(ACNAME)s') >>>>>>> >>>>>>> db.EDXTKF00.TKDICD.requires=[IS_NOT_EMPTY(),IS_LENGTH(20,1),IS_UPPER()] >>>>>>> >>>>>>> db.EDXTKF00.TKTKSC.requires=IS_IN_SET(['J11','J13','J14','J15','J16','J17']) >>>>>>> >>>>>>> db.EDXTKF00.TKTKCD.requires=[IS_NOT_EMPTY(),IS_LENGTH(8,8),IS_UPPER(),IS_IN_DB(db,db.CDMTKL00.TKTSCD)] >>>>>>> db.EDXTKF00.TKDMCD.requires=[IS_NOT_EMPTY(),IS_INT_IN_RANGE(60000,69999,error_message='Invalid >>>>>>> >>>>>>> length'),IS_IN_DB(db,db.CDMSYL00.SYSYCD)] >>>>>>> db.EDXTKF00.TKUPFL.writable = db.EDXTKF00.TKUPFL.readable = False >>>>>>> db.EDXTKF00.TKCRBY.writable = False >>>>>>> db.EDXTKF00.TKCRDT.writable = False >>>>>>> db.EDXTKF00.TKUPBY.writable = False >>>>>>> db.EDXTKF00.TKUPDT.writable = False >>>>>>> >>>>>>> >>>>>>> On Friday, August 17, 2012 4:38:00 PM UTC-5, Omi Chiba wrote: >>>>>>>> >>>>>>>> Just in case, I changed just like you suggested but I got a same >>>>>>>> result. I can pull the data from other tables on the same database but >>>>>>>> I >>>>>>>> cannot pull the data from this one.... I should be dreaming or getting >>>>>>>> crazy... : ( >>>>>>>> >>>>>>>> I first doubt a simple typo but I can't figure out. >>>>>>>> >>>>>>>> db.EDXTKF00.TKDIID.requires=IS_IN_DB(db,db.EDMACF00.ACDIID) >>>>>>>> => >>>>>>>> db.EDXTKF00.TKDIID.requires=IS_IN_DB(db,'EDMACF00.ACDIID') >>>>>>>> >>>>>>>> On Friday, August 17, 2012 4:20:42 PM UTC-5, villas wrote: >>>>>>>>> >>>>>>>>> Specify the field that you wish to appear in the dropdown box >>>>>>>>> Try what the book says, 'name' is simply the name of the field >>>>>>>>> you wish to appear: >>>>>>>>> >>>>>>>>> db.dog.owner.requires = IS_IN_DB(db, 'person.id', '%(name)s', >>>>>>>>> zero=T('choose one')) >>>>>>>>> >>>>>>>>>
--