PostgreSQL: SQL statement doesn't return rows

PostgreSQL: SQL statement doesn't return rows

Postby ron.dunn » Mon 01 Jun 2015 14:26

I'm trying to execute the following PostgreSQL command through PyODBC:

dw_cur.execute ("copy load_abc from 'c:/landing_zone/abc.csv' with (format csv,header TRUE)")

PyODBC is throwing an exception with the message "SQL statement doesn't return rows". I believe this comes from the driver.

My connection string is:

'Driver={Devart ODBC Driver for PostgreSQL};Server=XXX;Database=XXX;Username=XXX;Password=XXX;UseUnicode=1'

Any suggestions?
ron.dunn
 
Posts: 6
Joined: Wed 27 May 2015 11:30

Re: PostgreSQL: SQL statement doesn't return rows

Postby ron.dunn » Mon 01 Jun 2015 14:42

Here is the relevant section of an ODBC trace:
Code: Select all
XXX d00-b20   ENTER SQLExecDirectW
      HSTMT               0x00000000039917A0
      WCHAR *             0x0000000002E16D50 [      -3] "copy load_abc from 'c:/landing_zone/abc.csv' with (format csv,header TRUE)\ 0"
      SDWORD                    -3

XXX d00-b20   EXIT  SQLExecDirectW  with return code -1 (SQL_ERROR)
      HSTMT               0x00000000039917A0
      WCHAR *             0x0000000002E16D50 [      -3] "copy load_abc from 'c:/landing_zone/abc.csv' with (format csv,header TRUE)\ 0"
      SDWORD                    -3

      DIAG [HY000] [Devart][ODBC][PostgreSQL]SQL statement doesn't return rows (52032928)

XXX d00-b20   ENTER SQLGetDiagRecW
      SQLSMALLINT                  3 <SQL_HANDLE_STMT>
      SQLHANDLE           0x00000000039917A0
      SQLSMALLINT                  1
      SQLWCHAR *          0x0000000000BDF320
      SQLINTEGER *        0x0000000000BDF838
      SQLWCHAR *          0x0000000003991DF0
      SQLSMALLINT               1023
      SQLSMALLINT *       0x0000000000BDF830

XXX d00-b20   EXIT  SQLGetDiagRecW  with return code 0 (SQL_SUCCESS)
      SQLSMALLINT                  3 <SQL_HANDLE_STMT>
      SQLHANDLE           0x00000000039917A0
      SQLSMALLINT                  1
      SQLWCHAR *          0x0000000000BDF320 [       5] "HY000"
      SQLINTEGER *        0x0000000000BDF838 (0)
      SQLWCHAR *          0x0000000003991DF0 [      59] "[Devart][ODBC][PostgreSQL]SQL statement doesn't return rows"
      SQLSMALLINT               1023
      SQLSMALLINT *       0x0000000000BDF830 (59)

ron.dunn
 
Posts: 6
Joined: Wed 27 May 2015 11:30

Re: PostgreSQL: SQL statement doesn't return rows

Postby AlexP » Wed 03 Jun 2015 13:01

We can't reproduce the issue. The copy command is executed with no errors on the latest driver version 1.1.1. Please specify the driver version and the version of Python and PyODBC.

Code: Select all
Python 3.3.5 (v3.3.5:62cf4e77f785, Mar  9 2014, 10:37:12) [MSC v.1600 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.
>>> import pyodbc
>>> con = pyodbc.connect('DSN=test_postgres')
>>> cur = con.cursor()
>>> cur.execute("copy emp from 'd:\emp.csv'");
<pyodbc.Cursor object at 0x02A4A0C8>
>>> con.commit()
>>>
AlexP
Devart Team
 
Posts: 5528
Joined: Tue 10 Aug 2010 11:35


Return to ODBC Drivers