So, I can use that way in inserting one row, but can't when inserting
multiple rows ? It is correct ?

2008/11/24 Michael Bayer <[EMAIL PROTECTED]>:
>
> oh, right.  Column objects only work when you say insert().values(**dict).
>
>
> MikeCo wrote:
>>
>> Using 0.5.0rc4 doesn't seem to do that. or what am I doing wrong?
>>
>> The test, http://pastebin.com/fd0653b0 , looks like when using the
>> Column object, the values inserted are all None (test 1). When the key
>> is the fully qualified "table.column", the value inserted is always
>> the default value for the column (test 3). It only works correct when
>> the key is the string for the unqualified column name (tests 2 and 4).
>>
>>
>> On Nov 24, 10:37 am, "Michael Bayer" <[EMAIL PROTECTED]> wrote:
>>> the actual Column object or its "key" can be placed in the dict.
>>>
>>> MikeCo wrote:
>>>
>>> > Oops, not quite right. str(table.c.colname) returns 'table.colname",
>>> > and that doesn't work right as dictionary key. You need "col" only as
>>> > dictionary key.
>>>
>>> >http://pastebin.com/fd0653b0 has some tests
>>>
>>> > Interesting question is does SA intend that "table.colname" work in
>>> > the dictionary definition?
>>>
>>> > --
>>> > Mike
>>>
>>> > On Nov 23, 8:58 am, MikeCo <[EMAIL PROTECTED]> wrote:
>>> >> Your dictionary key CartItemTable.c.colname is an instance of class
>>> >> Column, The dictionary keys need to be strings. Use str
>>> >> (CartItemTable.c.colname) to get the string name of the column and it
>>> >> should work.
>>>
>>> >> >>> CartItemTable.c.userId
>>>
>>> >> Column('userId', Integer(), ForeignKey('User.userId'),
>>> >> table=<CartItem>, primary_key=True, nullable=False)>>>
>>> >> str(CartItemTable.c.userId)
>>>
>>> >> 'CartItem.userId'
>>>
>>> >> --
>>> >> Mike
>>>
>>> >> On Nov 23, 8:12 am, "Petr Kobalíèek" <[EMAIL PROTECTED]>
>>> wrote:
>>>
>>> >> > Hi devs,
>>>
>>> >> > I don't understand one thing:
>>>
>>> >> > I have table:
>>>
>>> >> > CartItemTable = sql.Table(
>>> >> >   "CartItem", meta.metadata,
>>>
>>> >> >   # Relations
>>> >> >   sql.Column("userId"              , sql.Integer      ,
>>> >> > sql.ForeignKey("User.userId"), nullable=False, primary_key=True),
>>> >> >   sql.Column("productId"           , sql.Integer      ,
>>> >> > sql.ForeignKey("Product.productId"), nullable=False,
>>> >> > primary_key=True),
>>> >> >   sql.Column("variantId"           , sql.Integer      ,
>>> nullable=True,
>>> >> > default=None),
>>>
>>> >> >   # Count of items in shopping cart
>>> >> >   sql.Column("count"               , sql.Integer      ,
>>> >> > nullable=False, default=1)
>>> >> > )
>>>
>>> >> > and I want to insert multiple rows to it using sql:
>>>
>>> >> >       Session().execute(
>>> >> >         CartItemTable.insert(),
>>> >> >         [{
>>> >> >           CartItemTable.c.userId    : self.user.userId,
>>> >> >           CartItemTable.c.productId : item.product.productId,
>>> >> >           CartItemTable.c.variantId : vid(item.variant),
>>> >> >           CartItemTable.c.count     : item.count
>>> >> >         } for item in self.items]
>>> >> >       )
>>>
>>> >> > But this not works and I must use this way:
>>>
>>> >> >       Session().execute(
>>> >> >         CartItemTable.insert(),
>>> >> >         [{
>>> >> >           "userId"    : self.user.userId,
>>> >> >           "productId" : item.product.productId,
>>> >> >           "variantId" : vid(item.variant),
>>> >> >           "count"     : item.count
>>> >> >         } for item in self.items]
>>> >> >       )
>>>
>>> >> > Why is not working first syntax, what em I missing ?
>>>
>>> >> > Cheers
>>> >> > - Petr
>> >
>>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" 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/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to