So far I tried to call my function by passing airport_sys_id, 
project_sys_id and column name, leaving value parameter empty as it is 
assigned to None by default.

I see in my logs that it tries to pass in sql query value=None, but it 
doesn't work for numeric type field. It works fine for string type, but for 
numeric one I receive as above: "Implicit conversion from datatype 
'VARCHAR' to 'NUMERIC' is not allowed.  Use the CONVERT function to run 
this query.", so it seems that it treats passed None as string value.

W dniu poniedziałek, 15 lipca 2019 14:24:40 UTC+2 użytkownik Simon King 
napisał:
>
> Passing None is the right way to set a column to NULL, so it sounds like 
> you are doing something else wrong. How are you calling your 
> update_airport_reference_temperature function?
>
> Also, enabling debug level logging (by passing echo='debug' when you 
> create your SQLAlchemy engine) will show exactly what values you are 
> passing to the database.
>
> Simon
>
> On Mon, Jul 15, 2019 at 10:45 AM Mirek Morek <teste...@gmail.com 
> <javascript:>> wrote:
>
>> Hello Simon,
>> One extra question:
>>
>> Do you know maybe how to assign NULL field value to numeric type field 
>> using sqlalchemy? I change field to some numeric value and then I want to 
>> clear this field.
>>
>> I tried assign None as default for value parameter:
>>
>> [image: apt2.jpg]
>>
>>
>> But I receive:
>>
>> "Implicit conversion from datatype 'VARCHAR' to 'NUMERIC' is not 
>> allowed.  Use the CONVERT function to run this query."
>>
>> W dniu piątek, 12 lipca 2019 11:53:58 UTC+2 użytkownik Simon King napisał:
>>>
>>> If SQLAlchemy didn't support the second calling style, you would still 
>>> be able to make this work using the Python "**" operator: 
>>>
>>>     updatevalues = {custom_column: value} 
>>>     query = AIRPORT.update().values(**updatevalues) 
>>>
>>> When calling a function, passing "**somedictionary" is equivalent to 
>>> passing each of the dictionary elements as keyword arguments to the 
>>> function. 
>>>
>>> >>> def f(a, b, c): 
>>> ...     print("a =", a) 
>>> ...     print("b =", b) 
>>> ...     print("c =", c) 
>>> ... 
>>> >>> f(a=1, b=2, c=3) 
>>> a = 1 
>>> b = 2 
>>> c = 3 
>>> >>> args = {'a': 1, 'b': 2, 'c': 3} 
>>> >>> f(**args) 
>>> a = 1 
>>> b = 2 
>>> c = 3 
>>>
>>> Simon 
>>>
>>> On Fri, Jul 12, 2019 at 10:28 AM Mirek Morek <teste...@gmail.com> 
>>> wrote: 
>>> > 
>>> > It works! 
>>> > 
>>> > Thank you very much Simon, I really appreciate that. You saved me a 
>>> lot of nerves. I would buy you a beer if I could. 
>>> > 
>>> > So, in general we can say that only second calling style works in my 
>>> example. 
>>> > 
>>> > Regards. 
>>> > 
>>> > W dniu czwartek, 11 lipca 2019 16:35:25 UTC+2 użytkownik Simon King 
>>> napisał: 
>>> >> 
>>> >> Here are the docs for the Update.values() method: 
>>> >> 
>>> >> 
>>> https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.Update.values
>>>  
>>> >> 
>>> >> Note that it supports two main calling styles, either keyword 
>>> arguments: 
>>> >> 
>>> >>     .values(name_column='cat') 
>>> >> 
>>> >> ...or passing a dictionary: 
>>> >> 
>>> >>     .values({'name_column': 'cat'}) 
>>> >> 
>>> >> Since you want to choose the column dynamically, you can use the 
>>> >> dictionary style: 
>>> >> 
>>> >>     updatevalues = {custom_column: value} 
>>> >>     query = AIRPORT.update().values(updatevalues) 
>>> >> 
>>> >> Hope that helps, 
>>> >> 
>>> >> Simon 
>>> >> 
>>> >> On Thu, Jul 11, 2019 at 3:00 PM Mirek Morek <teste...@gmail.com> 
>>> wrote: 
>>> >> > 
>>> >> > Hello everyone, 
>>> >> > I have a following question: 
>>> >> > 
>>> >> > I use sqlalchemy within my python method as follows: 
>>> >> > 
>>> >> > 
>>> >> > I want to be able to replace 'custom_column' with parameter passed 
>>> in the method. The same way as it works fine for airport_sys_id, 
>>> project_sys_id and value. 
>>> >> > 
>>> >> > For example I want to pass in my method (1, 2, name_column, cat) 
>>> and receive as follows: 
>>> >> > 
>>> >> > query = AIRPORT.update(). \ 
>>> >> >             where(AIRPORT.c.airport_sys_id == 1). \ 
>>> >> >             where(AIRPORT.c.project_sys_id == 2). \ 
>>> >> >             values(name_column=cat) 
>>> >> > 
>>> >> > I searched all I could but with no success. I would be extremely 
>>> thankful for your support. Regards. 
>>> >> > 
>>> >> > 
>>> >> > -- 
>>> >> > SQLAlchemy - 
>>> >> > The Python SQL Toolkit and Object Relational Mapper 
>>> >> > 
>>> >> > http://www.sqlalchemy.org/ 
>>> >> > 
>>> >> > To post example code, please provide an MCVE: Minimal, Complete, 
>>> and Verifiable Example. See http://stackoverflow.com/help/mcve for a 
>>> full description. 
>>> >> > --- 
>>> >> > You received this message because you are subscribed to the Google 
>>> Groups "sqlalchemy" group. 
>>> >> > To unsubscribe from this group and stop receiving emails from it, 
>>> send an email to sqlal...@googlegroups.com. 
>>> >> > To post to this group, send email to sqlal...@googlegroups.com. 
>>> >> > Visit this group at https://groups.google.com/group/sqlalchemy. 
>>> >> > To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/sqlalchemy/67448673-060d-449c-9dd9-19d5049c0c72%40googlegroups.com.
>>>  
>>>
>>> >> > For more options, visit https://groups.google.com/d/optout. 
>>> > 
>>> > -- 
>>> > SQLAlchemy - 
>>> > The Python SQL Toolkit and Object Relational Mapper 
>>> > 
>>> > http://www.sqlalchemy.org/ 
>>> > 
>>> > To post example code, please provide an MCVE: Minimal, Complete, and 
>>> Verifiable Example. See http://stackoverflow.com/help/mcve for a full 
>>> description. 
>>> > --- 
>>> > You received this message because you are subscribed to the Google 
>>> Groups "sqlalchemy" group. 
>>> > To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to sqlal...@googlegroups.com. 
>>> > To post to this group, send email to sqlal...@googlegroups.com. 
>>> > Visit this group at https://groups.google.com/group/sqlalchemy. 
>>> > To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/sqlalchemy/11786218-4161-4d41-b4e1-6faa7a31611b%40googlegroups.com.
>>>  
>>>
>>> > For more options, visit https://groups.google.com/d/optout. 
>>>
>> -- 
>> SQLAlchemy - 
>> The Python SQL Toolkit and Object Relational Mapper
>>  
>> http://www.sqlalchemy.org/
>>  
>> To post example code, please provide an MCVE: Minimal, Complete, and 
>> Verifiable Example. See http://stackoverflow.com/help/mcve for a full 
>> description.
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "sqlalchemy" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to sqlal...@googlegroups.com <javascript:>.
>> To post to this group, send email to sqlal...@googlegroups.com 
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/sqlalchemy.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/sqlalchemy/c35f40ae-17f6-4fb8-884f-32dd3157eae9%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/sqlalchemy/c35f40ae-17f6-4fb8-884f-32dd3157eae9%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/19fe84c0-1104-4298-922f-4e6b8fb8880e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to