What database are you using? What driver?
The operational error is not a web2py error. It is a database error. It
means web2py is sending invalid SQL, for example referring a column that
does not exist.
You may want to try:
try:
db.mytable.import_from_csv_file([file object], null='')
except:
print db._lastsql
db.rollback()
and see what is lastsql.
On Tuesday, 24 July 2012 22:31:27 UTC-5, Mark Li wrote:
>
> Anthony, I tried
>
> db.mytable.import_from_csv_file([file object], null='')
>
> from the web2py shell, but it gave me an error:
>
> OperationalError: near ")": syntax error
>
>
> In fact, trying to import from csv using the book's method does not work
> at all, although exporting works fine.
>
>
> Viniciusban, I'm inserting data through the database administation
> interface (filling out the form). I've also tried importing the CSV file
> through the administrative interface as well, where all blank spaces in the
> csv some out to empty strings (unless the field type is 'integer').
>
>
>
> On Monday, July 23, 2012 10:47:24 PM UTC-7, viniciusban wrote:
>>
>> Yes, they are default settings.
>>
>> It's quite strange you get empty strings instead null (None, in Python).
>>
>> How are you inserting data into db? Are you using a SQLFORM or
>> my_table.validate_and_insert() or simply mytable.insert()?
>>
>> Do you get same results (blank values) inserting it from web2py shell
>> using simply mytable.insert()?
>>
>> --
>> Vinicius Assef
>>
>>
>> > On Monday, July 23, 2012 5:58:19 PM UTC-4, Mark Li wrote:
>> >
>> > Aren't those the default values for a Field Contructor? I tried
>> > explicitly adding "notnull=False" and "required=False", and didn't
>> > set the default property, but empty values still come out as an
>> > empty string instead of None.
>> >
>> > On Monday, July 23, 2012 2:48:56 PM UTC-7, viniciusban wrote:
>> >
>> > As far as I know, let "notnull=False" and "required=False" for
>> your
>> > fields and don't set "default" property.
>> >
>> >
>> >
>> > On 07/23/2012 06:32 PM, Mark Li wrote:
>> > > Unfortunately the lambda method didn't work, Anthony. Any
>> other ideas
>> > > for having a None default for empty entries?
>> > >
>> > >
>> > > On a side note, if the 'integer' field type is used, then a
>> blank entry
>> > > results in a None. Don't know if that helps but it's
>> something I've noticed.
>> > >
>> > > On Monday, July 23, 2012 2:07:51 PM UTC-7, Anthony wrote:
>> > >
>> > > To enter a value of None, this might work:
>> > >
>> > > |
>> > > default=lambda:None
>> > > |
>> > >
>> > > Anthony
>> > >
>> > > On Monday, July 23, 2012 5:04:44 PM UTC-4, Anthony wrote:
>> > >
>> > > default=None means that no default is specified, not
>> that a
>> > > default value of None will be inserted.
>> > >
>> > > Anthony
>> > >
>> > > On Monday, July 23, 2012 5:02:33 PM UTC-4, Mark Li
>> wrote:
>> > >
>> > > I have a table defined in the following manner:
>> > >
>> > > db.define_table('songinfo',
>> > > Field('songtitle'),
>> > > Field('artist'))
>> > >
>> > > When I add an empty entry, or upload a CSV with
>> empty
>> > > values, I can only access those values with a
>> database call like
>> > >
>> > > songs = db(db.songinfo.artist=="").select()
>> > >
>> > > as opposed to
>> db(db.songinfo.artist==None).select()
>> > >
>> > >
>> > > The web2py book states that fields default=None,
>> but I'm
>> > > getting an empty string. Is there an appropriate
>> way to have
>> > > None instead of an empty string in the database?
>> > >
>> > >
>> > > --
>> > >
>> > >
>> > >
>> >
>> > --
>> >
>> >
>> >
>>
>>
--