My favorites | Sign in
Project Home Downloads Wiki
READ-ONLY: This project has been archived. For more information see this post.
Search
for
  Advanced search   Search tips   Subscriptions
Issue 375: A string returned by SELECT behaves strange when used with format()
1 person starred this issue and may be notified of changes. Back to list
Status:  New
Owner:  ----


 
Reported by Shompol@gmail.com, Jul 10, 2014
What steps will reproduce the problem?
1. SELECT somestring FROM sometable WHERE somecondition
2. "{:80.80s}".format(somestring) returns blank line
3. print(somestring) shows the string
4. Repeating step 2 now works

What is the expected output? What do you see instead?

Expect repeating calls to format() to work the same. 
In this case format only works after string was altered or printed

What version of the product are you using? On what operating system?
OS: Windows 7
Database: MSSQL
Reproduced on two different installations:
SETUP 1:
   python-3.3.4.amd64.msi
   pyodbc-3.0.7.win-amd64-py3.3.exe
SETUP 2:
   Python 3.3.5rc1
   pyodbc-3.0.7.win32-py3.3.exe

I reproduced the problem both from IDLE and stand-alone script.

Please provide any additional information below.

My IDLE session:

>>> import pyodbc
>>> dbh = pyodbc.connect(driver='{SQL Server}', server='someserver', database='somedb', uid=secretuid, pwd=secretpwd)
>>> dbc=dbh.cursor()
>>> dbc.execute('select message_txt from ecampaign where campaign_id = ?', 1190788)
<pyodbc.Cursor object at 0x032A86B0>
>>> for row in dbc:
	val = row.message_txt

	
>>> "{:40.40s}".format(val)
'                                        '
>>> "{:40.40s}".format(val)
'                                        '
>>> val[:40]
'The following is information about new p'
>>> "{:40.40s}".format(val)
'The following is information about new p'
>>> "{:40.40s}".format(val)
'The following is information about new p'
>>> 

Also any other string operations on val, including "{:s}".format(val) works and triggers subsequent formats to work.

>>> len(val)
4240
>>> type(val)
<class 'str'>




Powered by Google Project Hosting