Ok, below there is a working solution. I had to import null from sqlachemy.sql.expression and then:
[image: apt null.jpg] W dniu wtorek, 16 lipca 2019 07:47:30 UTC+2 użytkownik Mirek Morek napisał: > > Yes, when passing integer value as value everything is fine, so only value > parameter is a concern here. This is Sybase database so maybe that is a > case. > > W dniu poniedziałek, 15 lipca 2019 16:52:27 UTC+2 użytkownik Simon King > napisał: >> >> Hmm, the None looks fine, but now I'm suspicious of those airport_sys_id >> and project_sys_id values. Why are they being passed as floating point >> values, rather than integers? >> >> Does the same query work if the reference_temperature is not None? >> >> On Mon, Jul 15, 2019 at 3:32 PM Mirek Morek <[email protected]> wrote: >> >>> >>> Sure[image: log.jpg] >>> >>> >>> W dniu poniedziałek, 15 lipca 2019 15:28:54 UTC+2 użytkownik Simon King >>> napisał: >>>> >>>> I don't have any other ideas, I'm afraid. Can you post the relevant >>>> section from the logs? >>>> >>>> On Mon, Jul 15, 2019 at 1:51 PM Mirek Morek <[email protected]> wrote: >>>> >>>>> 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 <[email protected]> >>>>>> 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 <[email protected]> >>>>>>>> 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 <[email protected]> >>>>>>>> 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 [email protected]. >>>>>>>> >> > To post to this group, send email to [email protected]. >>>>>>>> >>>>>>>> >> > 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 [email protected]. >>>>>>>> > To post to this group, send email to [email protected]. >>>>>>>> > 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 [email protected]. >>>>>>> To post to this group, send email to [email protected]. >>>>>>> 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 [email protected]. >>>>> To post to this group, send email to [email protected]. >>>>> 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 >>>>> >>>>> <https://groups.google.com/d/msgid/sqlalchemy/19fe84c0-1104-4298-922f-4e6b8fb8880e%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 [email protected]. >>> To post to this group, send email to [email protected]. >>> 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/7dfe5185-7b14-4fc9-85a9-35cda6556e10%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/sqlalchemy/7dfe5185-7b14-4fc9-85a9-35cda6556e10%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 [email protected]. To post to this group, send email to [email protected]. 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/1553e076-f7f4-409c-9b0b-3e085414af5f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
