SQL IN operator using pyodbc and SQL Server












8















I'm using pyodbc to query to an SQL Server database



import datetime
import pyodbc
conn = pyodbc.connect("Driver={SQL Server};Server='dbserver',Database='db',
TrustedConnection=Yes")
cursor = conn.cursor()
ratings = ("PG-13", "PG", "G")
st_dt = datetime(2010, 1, 1)
end_dt = datetime(2010, 12, 31)
cursor.execute("""Select title, director, producer From movies
Where rating In ? And release_dt Between ? And ?""",
ratings, str(st_dt), str(end_dt))


but am receiving the error below. Does the tuple parameter need to be handled in a different way? Is there a better way to structure this query?



('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Line 9: 
Incorrect syntax near '@P1'. (170) (SQLExecDirectW);
[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]
Statement(s) could not be prepared. (8180)")


UPDATE:



I was able to get this query to work using the string formatting operator, which isn't ideal as it introduces security concerns.



import datetime
import pyodbc
conn = pyodbc.connect("Driver={SQL Server};Server='dbserver',Database='db',
TrustedConnection=Yes")
cursor = conn.cursor()
ratings = ("PG-13", "PG", "G")
st_dt = datetime(2010, 1, 1)
end_dt = datetime(2010, 12, 31)
cursor.execute("""Select title, director, producer From movies
Where rating In %s And release_dt Between '%s' And '%s'""" %
(ratings, st_dt, end_dt))









share|improve this question





























    8















    I'm using pyodbc to query to an SQL Server database



    import datetime
    import pyodbc
    conn = pyodbc.connect("Driver={SQL Server};Server='dbserver',Database='db',
    TrustedConnection=Yes")
    cursor = conn.cursor()
    ratings = ("PG-13", "PG", "G")
    st_dt = datetime(2010, 1, 1)
    end_dt = datetime(2010, 12, 31)
    cursor.execute("""Select title, director, producer From movies
    Where rating In ? And release_dt Between ? And ?""",
    ratings, str(st_dt), str(end_dt))


    but am receiving the error below. Does the tuple parameter need to be handled in a different way? Is there a better way to structure this query?



    ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Line 9: 
    Incorrect syntax near '@P1'. (170) (SQLExecDirectW);
    [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]
    Statement(s) could not be prepared. (8180)")


    UPDATE:



    I was able to get this query to work using the string formatting operator, which isn't ideal as it introduces security concerns.



    import datetime
    import pyodbc
    conn = pyodbc.connect("Driver={SQL Server};Server='dbserver',Database='db',
    TrustedConnection=Yes")
    cursor = conn.cursor()
    ratings = ("PG-13", "PG", "G")
    st_dt = datetime(2010, 1, 1)
    end_dt = datetime(2010, 12, 31)
    cursor.execute("""Select title, director, producer From movies
    Where rating In %s And release_dt Between '%s' And '%s'""" %
    (ratings, st_dt, end_dt))









    share|improve this question



























      8












      8








      8


      4






      I'm using pyodbc to query to an SQL Server database



      import datetime
      import pyodbc
      conn = pyodbc.connect("Driver={SQL Server};Server='dbserver',Database='db',
      TrustedConnection=Yes")
      cursor = conn.cursor()
      ratings = ("PG-13", "PG", "G")
      st_dt = datetime(2010, 1, 1)
      end_dt = datetime(2010, 12, 31)
      cursor.execute("""Select title, director, producer From movies
      Where rating In ? And release_dt Between ? And ?""",
      ratings, str(st_dt), str(end_dt))


      but am receiving the error below. Does the tuple parameter need to be handled in a different way? Is there a better way to structure this query?



      ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Line 9: 
      Incorrect syntax near '@P1'. (170) (SQLExecDirectW);
      [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]
      Statement(s) could not be prepared. (8180)")


      UPDATE:



      I was able to get this query to work using the string formatting operator, which isn't ideal as it introduces security concerns.



      import datetime
      import pyodbc
      conn = pyodbc.connect("Driver={SQL Server};Server='dbserver',Database='db',
      TrustedConnection=Yes")
      cursor = conn.cursor()
      ratings = ("PG-13", "PG", "G")
      st_dt = datetime(2010, 1, 1)
      end_dt = datetime(2010, 12, 31)
      cursor.execute("""Select title, director, producer From movies
      Where rating In %s And release_dt Between '%s' And '%s'""" %
      (ratings, st_dt, end_dt))









      share|improve this question
















      I'm using pyodbc to query to an SQL Server database



      import datetime
      import pyodbc
      conn = pyodbc.connect("Driver={SQL Server};Server='dbserver',Database='db',
      TrustedConnection=Yes")
      cursor = conn.cursor()
      ratings = ("PG-13", "PG", "G")
      st_dt = datetime(2010, 1, 1)
      end_dt = datetime(2010, 12, 31)
      cursor.execute("""Select title, director, producer From movies
      Where rating In ? And release_dt Between ? And ?""",
      ratings, str(st_dt), str(end_dt))


      but am receiving the error below. Does the tuple parameter need to be handled in a different way? Is there a better way to structure this query?



      ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Line 9: 
      Incorrect syntax near '@P1'. (170) (SQLExecDirectW);
      [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]
      Statement(s) could not be prepared. (8180)")


      UPDATE:



      I was able to get this query to work using the string formatting operator, which isn't ideal as it introduces security concerns.



      import datetime
      import pyodbc
      conn = pyodbc.connect("Driver={SQL Server};Server='dbserver',Database='db',
      TrustedConnection=Yes")
      cursor = conn.cursor()
      ratings = ("PG-13", "PG", "G")
      st_dt = datetime(2010, 1, 1)
      end_dt = datetime(2010, 12, 31)
      cursor.execute("""Select title, director, producer From movies
      Where rating In %s And release_dt Between '%s' And '%s'""" %
      (ratings, st_dt, end_dt))






      python sql pyodbc






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jan 28 '11 at 2:47







      user338714

















      asked Jan 27 '11 at 16:57









      user338714user338714

      98521734




      98521734
























          3 Answers
          3






          active

          oldest

          votes


















          12














          You cannot parameterize multiple values in an IN () clause using a single string parameter. The only way to accomplish that is:




          1. String substitution (as you did).


          2. Build a parameterized query in the form IN (?, ?, . . ., ?) and then pass in a separate parameter for each place holder. I'm not an expert at Python to ODBC but I imagine that this is particularly easy to do in a language like Python. This is safer because you get the full value of parameterization.







          share|improve this answer



















          • 1





            For your second option, would one need to dynamically create the SQL statement based on the size of the tuple one wished to pass to the IN statement?

            – user338714
            Feb 3 '11 at 0:58






          • 2





            You can do something like: cursor.execute("SELECT * FROM movies WHERE rating IN ({})".format(','.join('?' * len(ratings))), ratings)

            – rleelr
            Sep 9 '16 at 15:38



















          11














          To expand on Larry's second option - dynamically creating a parameterized string, I used the following successfully:



          placeholders = ",".join("?" * len(code_list))
          sql = "delete from dbo.Results where RESULT_ID = ? AND CODE IN (%s)" % placeholders
          params = [result_id]
          params.extend(code_list)
          cursor.execute(sql, params)


          Gives the following SQL with the appropriate parameters:



          delete from dbo.Results where RESULT_ID = ? AND CODE IN (?,?,?)





          share|improve this answer































            2














            The problem is your tuple. The ODBC connection is expecting a string to construct the query and you are sending a python tuple. And remember that you have to get the string quoting correct. I'm assuming that the number of ratings you will be looking for varies. There is probably a better way, but my pyodbc tends to be simple and straightforward.



            Try the following:



            import datetime
            import pyodbc
            conn = pyodbc.connect("Driver={SQL Server};Server='dbserver',Database='db',
            TrustedConnection=Yes")

            def List2SQLList(items):
            sqllist = "%s" % "","".join(items)
            return sqllist


            cursor = conn.cursor()
            ratings = ("PG-13", "PG", "G")
            st_dt = datetime(2010, 1, 1)
            end_dt = datetime(2010, 12, 31)
            cursor.execute("""Select title, director, producer From movies
            Where rating In (?) And release_dt Between ? And ?""",
            List2SQLList(ratings), str(st_dt), str(end_dt))





            share|improve this answer


























            • I'm still receiving an "Incorrect syntax" error for the 1st parameter. Could pyodbc be treating the list like a string instead of a list?

              – user338714
              Jan 27 '11 at 21:54











            • Its putting "'s around the entire string. See my edit.

              – WombatPM
              Jan 27 '11 at 22:30













            • I'm still receiving a parameter error. I did find a way to get the query to work using the string format operator (see my update above), and since this code will only be run locally, the security concerns can probably be overlooked. I think cursor.executemany may be another option.

              – user338714
              Jan 28 '11 at 2:41











            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f4819356%2fsql-in-operator-using-pyodbc-and-sql-server%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            3 Answers
            3






            active

            oldest

            votes








            3 Answers
            3






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            12














            You cannot parameterize multiple values in an IN () clause using a single string parameter. The only way to accomplish that is:




            1. String substitution (as you did).


            2. Build a parameterized query in the form IN (?, ?, . . ., ?) and then pass in a separate parameter for each place holder. I'm not an expert at Python to ODBC but I imagine that this is particularly easy to do in a language like Python. This is safer because you get the full value of parameterization.







            share|improve this answer



















            • 1





              For your second option, would one need to dynamically create the SQL statement based on the size of the tuple one wished to pass to the IN statement?

              – user338714
              Feb 3 '11 at 0:58






            • 2





              You can do something like: cursor.execute("SELECT * FROM movies WHERE rating IN ({})".format(','.join('?' * len(ratings))), ratings)

              – rleelr
              Sep 9 '16 at 15:38
















            12














            You cannot parameterize multiple values in an IN () clause using a single string parameter. The only way to accomplish that is:




            1. String substitution (as you did).


            2. Build a parameterized query in the form IN (?, ?, . . ., ?) and then pass in a separate parameter for each place holder. I'm not an expert at Python to ODBC but I imagine that this is particularly easy to do in a language like Python. This is safer because you get the full value of parameterization.







            share|improve this answer



















            • 1





              For your second option, would one need to dynamically create the SQL statement based on the size of the tuple one wished to pass to the IN statement?

              – user338714
              Feb 3 '11 at 0:58






            • 2





              You can do something like: cursor.execute("SELECT * FROM movies WHERE rating IN ({})".format(','.join('?' * len(ratings))), ratings)

              – rleelr
              Sep 9 '16 at 15:38














            12












            12








            12







            You cannot parameterize multiple values in an IN () clause using a single string parameter. The only way to accomplish that is:




            1. String substitution (as you did).


            2. Build a parameterized query in the form IN (?, ?, . . ., ?) and then pass in a separate parameter for each place holder. I'm not an expert at Python to ODBC but I imagine that this is particularly easy to do in a language like Python. This is safer because you get the full value of parameterization.







            share|improve this answer













            You cannot parameterize multiple values in an IN () clause using a single string parameter. The only way to accomplish that is:




            1. String substitution (as you did).


            2. Build a parameterized query in the form IN (?, ?, . . ., ?) and then pass in a separate parameter for each place holder. I'm not an expert at Python to ODBC but I imagine that this is particularly easy to do in a language like Python. This is safer because you get the full value of parameterization.








            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Jan 28 '11 at 3:37









            Larry LustigLarry Lustig

            40.1k1283129




            40.1k1283129








            • 1





              For your second option, would one need to dynamically create the SQL statement based on the size of the tuple one wished to pass to the IN statement?

              – user338714
              Feb 3 '11 at 0:58






            • 2





              You can do something like: cursor.execute("SELECT * FROM movies WHERE rating IN ({})".format(','.join('?' * len(ratings))), ratings)

              – rleelr
              Sep 9 '16 at 15:38














            • 1





              For your second option, would one need to dynamically create the SQL statement based on the size of the tuple one wished to pass to the IN statement?

              – user338714
              Feb 3 '11 at 0:58






            • 2





              You can do something like: cursor.execute("SELECT * FROM movies WHERE rating IN ({})".format(','.join('?' * len(ratings))), ratings)

              – rleelr
              Sep 9 '16 at 15:38








            1




            1





            For your second option, would one need to dynamically create the SQL statement based on the size of the tuple one wished to pass to the IN statement?

            – user338714
            Feb 3 '11 at 0:58





            For your second option, would one need to dynamically create the SQL statement based on the size of the tuple one wished to pass to the IN statement?

            – user338714
            Feb 3 '11 at 0:58




            2




            2





            You can do something like: cursor.execute("SELECT * FROM movies WHERE rating IN ({})".format(','.join('?' * len(ratings))), ratings)

            – rleelr
            Sep 9 '16 at 15:38





            You can do something like: cursor.execute("SELECT * FROM movies WHERE rating IN ({})".format(','.join('?' * len(ratings))), ratings)

            – rleelr
            Sep 9 '16 at 15:38













            11














            To expand on Larry's second option - dynamically creating a parameterized string, I used the following successfully:



            placeholders = ",".join("?" * len(code_list))
            sql = "delete from dbo.Results where RESULT_ID = ? AND CODE IN (%s)" % placeholders
            params = [result_id]
            params.extend(code_list)
            cursor.execute(sql, params)


            Gives the following SQL with the appropriate parameters:



            delete from dbo.Results where RESULT_ID = ? AND CODE IN (?,?,?)





            share|improve this answer




























              11














              To expand on Larry's second option - dynamically creating a parameterized string, I used the following successfully:



              placeholders = ",".join("?" * len(code_list))
              sql = "delete from dbo.Results where RESULT_ID = ? AND CODE IN (%s)" % placeholders
              params = [result_id]
              params.extend(code_list)
              cursor.execute(sql, params)


              Gives the following SQL with the appropriate parameters:



              delete from dbo.Results where RESULT_ID = ? AND CODE IN (?,?,?)





              share|improve this answer


























                11












                11








                11







                To expand on Larry's second option - dynamically creating a parameterized string, I used the following successfully:



                placeholders = ",".join("?" * len(code_list))
                sql = "delete from dbo.Results where RESULT_ID = ? AND CODE IN (%s)" % placeholders
                params = [result_id]
                params.extend(code_list)
                cursor.execute(sql, params)


                Gives the following SQL with the appropriate parameters:



                delete from dbo.Results where RESULT_ID = ? AND CODE IN (?,?,?)





                share|improve this answer













                To expand on Larry's second option - dynamically creating a parameterized string, I used the following successfully:



                placeholders = ",".join("?" * len(code_list))
                sql = "delete from dbo.Results where RESULT_ID = ? AND CODE IN (%s)" % placeholders
                params = [result_id]
                params.extend(code_list)
                cursor.execute(sql, params)


                Gives the following SQL with the appropriate parameters:



                delete from dbo.Results where RESULT_ID = ? AND CODE IN (?,?,?)






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered May 24 '13 at 10:07









                geographikageographika

                4,94922543




                4,94922543























                    2














                    The problem is your tuple. The ODBC connection is expecting a string to construct the query and you are sending a python tuple. And remember that you have to get the string quoting correct. I'm assuming that the number of ratings you will be looking for varies. There is probably a better way, but my pyodbc tends to be simple and straightforward.



                    Try the following:



                    import datetime
                    import pyodbc
                    conn = pyodbc.connect("Driver={SQL Server};Server='dbserver',Database='db',
                    TrustedConnection=Yes")

                    def List2SQLList(items):
                    sqllist = "%s" % "","".join(items)
                    return sqllist


                    cursor = conn.cursor()
                    ratings = ("PG-13", "PG", "G")
                    st_dt = datetime(2010, 1, 1)
                    end_dt = datetime(2010, 12, 31)
                    cursor.execute("""Select title, director, producer From movies
                    Where rating In (?) And release_dt Between ? And ?""",
                    List2SQLList(ratings), str(st_dt), str(end_dt))





                    share|improve this answer


























                    • I'm still receiving an "Incorrect syntax" error for the 1st parameter. Could pyodbc be treating the list like a string instead of a list?

                      – user338714
                      Jan 27 '11 at 21:54











                    • Its putting "'s around the entire string. See my edit.

                      – WombatPM
                      Jan 27 '11 at 22:30













                    • I'm still receiving a parameter error. I did find a way to get the query to work using the string format operator (see my update above), and since this code will only be run locally, the security concerns can probably be overlooked. I think cursor.executemany may be another option.

                      – user338714
                      Jan 28 '11 at 2:41
















                    2














                    The problem is your tuple. The ODBC connection is expecting a string to construct the query and you are sending a python tuple. And remember that you have to get the string quoting correct. I'm assuming that the number of ratings you will be looking for varies. There is probably a better way, but my pyodbc tends to be simple and straightforward.



                    Try the following:



                    import datetime
                    import pyodbc
                    conn = pyodbc.connect("Driver={SQL Server};Server='dbserver',Database='db',
                    TrustedConnection=Yes")

                    def List2SQLList(items):
                    sqllist = "%s" % "","".join(items)
                    return sqllist


                    cursor = conn.cursor()
                    ratings = ("PG-13", "PG", "G")
                    st_dt = datetime(2010, 1, 1)
                    end_dt = datetime(2010, 12, 31)
                    cursor.execute("""Select title, director, producer From movies
                    Where rating In (?) And release_dt Between ? And ?""",
                    List2SQLList(ratings), str(st_dt), str(end_dt))





                    share|improve this answer


























                    • I'm still receiving an "Incorrect syntax" error for the 1st parameter. Could pyodbc be treating the list like a string instead of a list?

                      – user338714
                      Jan 27 '11 at 21:54











                    • Its putting "'s around the entire string. See my edit.

                      – WombatPM
                      Jan 27 '11 at 22:30













                    • I'm still receiving a parameter error. I did find a way to get the query to work using the string format operator (see my update above), and since this code will only be run locally, the security concerns can probably be overlooked. I think cursor.executemany may be another option.

                      – user338714
                      Jan 28 '11 at 2:41














                    2












                    2








                    2







                    The problem is your tuple. The ODBC connection is expecting a string to construct the query and you are sending a python tuple. And remember that you have to get the string quoting correct. I'm assuming that the number of ratings you will be looking for varies. There is probably a better way, but my pyodbc tends to be simple and straightforward.



                    Try the following:



                    import datetime
                    import pyodbc
                    conn = pyodbc.connect("Driver={SQL Server};Server='dbserver',Database='db',
                    TrustedConnection=Yes")

                    def List2SQLList(items):
                    sqllist = "%s" % "","".join(items)
                    return sqllist


                    cursor = conn.cursor()
                    ratings = ("PG-13", "PG", "G")
                    st_dt = datetime(2010, 1, 1)
                    end_dt = datetime(2010, 12, 31)
                    cursor.execute("""Select title, director, producer From movies
                    Where rating In (?) And release_dt Between ? And ?""",
                    List2SQLList(ratings), str(st_dt), str(end_dt))





                    share|improve this answer















                    The problem is your tuple. The ODBC connection is expecting a string to construct the query and you are sending a python tuple. And remember that you have to get the string quoting correct. I'm assuming that the number of ratings you will be looking for varies. There is probably a better way, but my pyodbc tends to be simple and straightforward.



                    Try the following:



                    import datetime
                    import pyodbc
                    conn = pyodbc.connect("Driver={SQL Server};Server='dbserver',Database='db',
                    TrustedConnection=Yes")

                    def List2SQLList(items):
                    sqllist = "%s" % "","".join(items)
                    return sqllist


                    cursor = conn.cursor()
                    ratings = ("PG-13", "PG", "G")
                    st_dt = datetime(2010, 1, 1)
                    end_dt = datetime(2010, 12, 31)
                    cursor.execute("""Select title, director, producer From movies
                    Where rating In (?) And release_dt Between ? And ?""",
                    List2SQLList(ratings), str(st_dt), str(end_dt))






                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Jan 27 '11 at 22:38

























                    answered Jan 27 '11 at 19:01









                    WombatPMWombatPM

                    1,85121316




                    1,85121316













                    • I'm still receiving an "Incorrect syntax" error for the 1st parameter. Could pyodbc be treating the list like a string instead of a list?

                      – user338714
                      Jan 27 '11 at 21:54











                    • Its putting "'s around the entire string. See my edit.

                      – WombatPM
                      Jan 27 '11 at 22:30













                    • I'm still receiving a parameter error. I did find a way to get the query to work using the string format operator (see my update above), and since this code will only be run locally, the security concerns can probably be overlooked. I think cursor.executemany may be another option.

                      – user338714
                      Jan 28 '11 at 2:41



















                    • I'm still receiving an "Incorrect syntax" error for the 1st parameter. Could pyodbc be treating the list like a string instead of a list?

                      – user338714
                      Jan 27 '11 at 21:54











                    • Its putting "'s around the entire string. See my edit.

                      – WombatPM
                      Jan 27 '11 at 22:30













                    • I'm still receiving a parameter error. I did find a way to get the query to work using the string format operator (see my update above), and since this code will only be run locally, the security concerns can probably be overlooked. I think cursor.executemany may be another option.

                      – user338714
                      Jan 28 '11 at 2:41

















                    I'm still receiving an "Incorrect syntax" error for the 1st parameter. Could pyodbc be treating the list like a string instead of a list?

                    – user338714
                    Jan 27 '11 at 21:54





                    I'm still receiving an "Incorrect syntax" error for the 1st parameter. Could pyodbc be treating the list like a string instead of a list?

                    – user338714
                    Jan 27 '11 at 21:54













                    Its putting "'s around the entire string. See my edit.

                    – WombatPM
                    Jan 27 '11 at 22:30







                    Its putting "'s around the entire string. See my edit.

                    – WombatPM
                    Jan 27 '11 at 22:30















                    I'm still receiving a parameter error. I did find a way to get the query to work using the string format operator (see my update above), and since this code will only be run locally, the security concerns can probably be overlooked. I think cursor.executemany may be another option.

                    – user338714
                    Jan 28 '11 at 2:41





                    I'm still receiving a parameter error. I did find a way to get the query to work using the string format operator (see my update above), and since this code will only be run locally, the security concerns can probably be overlooked. I think cursor.executemany may be another option.

                    – user338714
                    Jan 28 '11 at 2:41


















                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f4819356%2fsql-in-operator-using-pyodbc-and-sql-server%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Guess what letter conforming each word

                    Port of Spain

                    Run scheduled task as local user group (not BUILTIN)