Re: [sqlalchemy] cannot access tables

2014-08-18 Thread Horcle
On Friday, August 15, 2014 8:28:41 PM UTC-5, Michael Bayer wrote:


 On Aug 15, 2014, at 5:03 PM, Greg Silverman g...@umn.edu javascript: 
 wrote:


 Then, I thought, what if this is an SQLAlchemy issue. Looks to be. I ran 
 the following script as a test:

 import pyodbc
 import sqlalchemy
 from sqlalchemy.engine import reflection
 from sqlalchemy.engine.reflection import Inspector

 def connect():
 return pyodbc.connect(
 'DRIVER={FreeTDS};SERVER=ip_address;'
 'DATABASE=db_name;UID=test;PWD=test;port=1433;'
 'TDS_Version=9.1;')
 engine = sqlalchemy.create_engine('mssql://', creator=connect)
 conn = engine.connect()
 print conn

 for row in engine.execute('select 6 * 7 as [Result];'):
 print row.Result

 insp = reflection.Inspector.from_engine(engine)
 table_name = 'irb_desc'
 table_names = insp.get_table_names()
 if table_name not in table_names:
 print 'A'

 Again, I am connecting fine with the database create.engine method (that 
 is '42' is printing as expected), but when I run the 
 inspector.get_table_names method with the given conditional it is printing 
 the 'A' (I have tried other table names in the same database to which I 
 added 'irbd_balance,' all with the same result.



 what is the SQL output if you set echo=‘debug’;   then, take the SQL you 
 see and take a look at what it’s SELECTing so you can see what might be 
 wrong.  Probably some schema name setting or something like that.



Thanks, I did not realize this was an option (actually, it is echo=True, 
but at least I can see the SQL being sent). Hopefully this will lead me to 
an answer.

Greg-- 

-- 
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 http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.


Re: [sqlalchemy] cannot access tables

2014-08-18 Thread Greg Silverman
  SELECT default_schema_name FROM
sys.database_principals
WHERE name = ?
AND type = 'S'


On Mon, Aug 18, 2014 at 9:47 AM, Horcle g...@umn.edu wrote:

 On Friday, August 15, 2014 8:28:41 PM UTC-5, Michael Bayer wrote:


 On Aug 15, 2014, at 5:03 PM, Greg Silverman g...@umn.edu wrote:


 Then, I thought, what if this is an SQLAlchemy issue. Looks to be. I ran
 the following script as a test:

 import pyodbc
 import sqlalchemy
 from sqlalchemy.engine import reflection
 from sqlalchemy.engine.reflection import Inspector

 def connect():
 return pyodbc.connect(
 'DRIVER={FreeTDS};SERVER=ip_address;'
  'DATABASE=db_name;UID=test;PWD=test;port=1433;'
 'TDS_Version=9.1;')
 engine = sqlalchemy.create_engine('mssql://', creator=connect)
 conn = engine.connect()
 print conn

 for row in engine.execute('select 6 * 7 as [Result];'):
 print row.Result

 insp = reflection.Inspector.from_engine(engine)
 table_name = 'irb_desc'
 table_names = insp.get_table_names()
 if table_name not in table_names:
 print 'A'

 Again, I am connecting fine with the database create.engine method (that
 is '42' is printing as expected), but when I run the
 inspector.get_table_names method with the given conditional it is printing
 the 'A' (I have tried other table names in the same database to which I
 added 'irbd_balance,' all with the same result.



 what is the SQL output if you set echo=‘debug’;   then, take the SQL you
 see and take a look at what it’s SELECTing so you can see what might be
 wrong.  Probably some schema name setting or something like that.



 Thanks, I did not realize this was an option (actually, it is echo=True,
 but at least I can see the SQL being sent). Hopefully this will lead me to
 an answer.

 Greg--

 --
 You received this message because you are subscribed to a topic in the
 Google Groups sqlalchemy group.
 To unsubscribe from this topic, visit
 https://groups.google.com/d/topic/sqlalchemy/YSjU_Ohsyvw/unsubscribe.
 To unsubscribe from this group and all its topics, send an email to
 sqlalchemy+unsubscr...@googlegroups.com.
 To post to this group, send email to sqlalchemy@googlegroups.com.
 Visit this group at http://groups.google.com/group/sqlalchemy.
 For more options, visit https://groups.google.com/d/optout.




-- 
Greg M. Silverman
Senior Developer Analyst
Cardiovascular Informatics http://www.med.umn.edu/cardiology/
University of Minnesota
612-626-0919
g...@umn.edu

 ›  flora-script http://flora-script.grenzi.org/ ‹
 ›  grenzi.org  ‹

-- 
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 http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.


Re: [sqlalchemy] cannot access tables

2014-08-18 Thread Simon King
On Mon, Aug 18, 2014 at 3:47 PM, Horcle g...@umn.edu wrote:
 On Friday, August 15, 2014 8:28:41 PM UTC-5, Michael Bayer wrote:


 On Aug 15, 2014, at 5:03 PM, Greg Silverman g...@umn.edu wrote:


 Then, I thought, what if this is an SQLAlchemy issue. Looks to be. I ran
 the following script as a test:

 import pyodbc
 import sqlalchemy
 from sqlalchemy.engine import reflection
 from sqlalchemy.engine.reflection import Inspector

 def connect():
 return pyodbc.connect(
 'DRIVER={FreeTDS};SERVER=ip_address;'
 'DATABASE=db_name;UID=test;PWD=test;port=1433;'
 'TDS_Version=9.1;')
 engine = sqlalchemy.create_engine('mssql://', creator=connect)
 conn = engine.connect()
 print conn

 for row in engine.execute('select 6 * 7 as [Result];'):
 print row.Result

 insp = reflection.Inspector.from_engine(engine)
 table_name = 'irb_desc'
 table_names = insp.get_table_names()
 if table_name not in table_names:
 print 'A'

 Again, I am connecting fine with the database create.engine method (that
 is '42' is printing as expected), but when I run the
 inspector.get_table_names method with the given conditional it is printing
 the 'A' (I have tried other table names in the same database to which I
 added 'irbd_balance,' all with the same result.



 what is the SQL output if you set echo=‘debug’;   then, take the SQL you
 see and take a look at what it’s SELECTing so you can see what might be
 wrong.  Probably some schema name setting or something like that.



 Thanks, I did not realize this was an option (actually, it is echo=True, but
 at least I can see the SQL being sent). Hopefully this will lead me to an
 answer.


echo='debug' will show you more information than echo=True (it
shows the rows coming back as well as the query that is sent)

Simon

-- 
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 http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.


Re: [sqlalchemy] cannot access tables

2014-08-18 Thread Horcle
Indeed!

Here is the output:


gms$ python test_connect.py
2014-08-18 10:17:28,095 INFO sqlalchemy.engine.base.Engine SELECT 
user_name()
2014-08-18 10:17:28,095 INFO sqlalchemy.engine.base.Engine ()
2014-08-18 10:17:28,097 DEBUG sqlalchemy.engine.base.Engine Col ('',)
2014-08-18 10:17:28,098 DEBUG sqlalchemy.engine.base.Engine Row (u'dbo', )
2014-08-18 10:17:28,099 INFO sqlalchemy.engine.base.Engine
SELECT default_schema_name FROM
sys.database_principals
WHERE name = ?
AND type = 'S'

2014-08-18 10:17:28,099 INFO sqlalchemy.engine.base.Engine (u'dbo',)
2014-08-18 10:17:28,101 DEBUG sqlalchemy.engine.base.Engine Col 
('default_schema_name',)
2014-08-18 10:17:28,103 INFO sqlalchemy.engine.base.Engine SELECT 
CAST('test plain returns' AS VARCHAR(60)) AS anon_1
2014-08-18 10:17:28,103 INFO sqlalchemy.engine.base.Engine ()
2014-08-18 10:17:28,106 INFO sqlalchemy.engine.base.Engine SELECT 
CAST('test unicode returns' AS NVARCHAR(60)) AS anon_1
2014-08-18 10:17:28,106 INFO sqlalchemy.engine.base.Engine ()
sqlalchemy.engine.base.Connection object at 0x101839490
2014-08-18 10:17:28,382 INFO sqlalchemy.engine.base.Engine select 6 * 7 as 
[Result];
2014-08-18 10:17:28,382 INFO sqlalchemy.engine.base.Engine ()
2014-08-18 10:17:28,384 DEBUG sqlalchemy.engine.base.Engine Col ('Result',)
2014-08-18 10:17:28,384 DEBUG sqlalchemy.engine.base.Engine Row (42, )
42
2014-08-18 10:17:28,389 INFO sqlalchemy.engine.base.Engine SELECT 
[TABLES_1].[TABLE_NAME]
FROM [INFORMATION_SCHEMA].[TABLES] AS [TABLES_1]
WHERE [TABLES_1].[TABLE_SCHEMA] = CAST(? AS NVARCHAR(max)) AND 
[TABLES_1].[TABLE_TYPE] = ? ORDER BY [TABLES_1].[TABLE_NAME]
2014-08-18 10:17:28,389 INFO sqlalchemy.engine.base.Engine (u'dbo', 'BASE 
TABLE')
2014-08-18 10:17:28,394 DEBUG sqlalchemy.engine.base.Engine Col 
('TABLE_NAME',)
A

Not quite sure how to parse this?

For example,  is u'dbo' what is being used as the schema? 

Greg--

On Monday, August 18, 2014 10:05:09 AM UTC-5, Simon King wrote:

 On Mon, Aug 18, 2014 at 3:47 PM, Horcle g...@umn.edu javascript: 
 wrote: 
  On Friday, August 15, 2014 8:28:41 PM UTC-5, Michael Bayer wrote: 
  
  
  On Aug 15, 2014, at 5:03 PM, Greg Silverman g...@umn.edu wrote: 
  
  
  Then, I thought, what if this is an SQLAlchemy issue. Looks to be. I 
 ran 
  the following script as a test: 
  
  import pyodbc 
  import sqlalchemy 
  from sqlalchemy.engine import reflection 
  from sqlalchemy.engine.reflection import Inspector 
  
  def connect(): 
  return pyodbc.connect( 
  'DRIVER={FreeTDS};SERVER=ip_address;' 
  'DATABASE=db_name;UID=test;PWD=test;port=1433;' 
  'TDS_Version=9.1;') 
  engine = sqlalchemy.create_engine('mssql://', creator=connect) 
  conn = engine.connect() 
  print conn 
  
  for row in engine.execute('select 6 * 7 as [Result];'): 
  print row.Result 
  
  insp = reflection.Inspector.from_engine(engine) 
  table_name = 'irb_desc' 
  table_names = insp.get_table_names() 
  if table_name not in table_names: 
  print 'A' 
  
  Again, I am connecting fine with the database create.engine method 
 (that 
  is '42' is printing as expected), but when I run the 
  inspector.get_table_names method with the given conditional it is 
 printing 
  the 'A' (I have tried other table names in the same database to which I 
  added 'irbd_balance,' all with the same result. 
  
  
  
  what is the SQL output if you set echo=‘debug’;   then, take the SQL 
 you 
  see and take a look at what it’s SELECTing so you can see what might be 
  wrong.  Probably some schema name setting or something like that. 
  
  
  
  Thanks, I did not realize this was an option (actually, it is echo=True, 
 but 
  at least I can see the SQL being sent). Hopefully this will lead me to 
 an 
  answer. 
  

 echo='debug' will show you more information than echo=True (it 
 shows the rows coming back as well as the query that is sent) 

 Simon 


-- 
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 http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.


Re: [sqlalchemy] cannot access tables

2014-08-18 Thread Simon King
I think you are seeing, for each query:

1. The query itself
2. The parameters being passed in to the query
3. The names of the columns being returned
4. The returned rows, if any.

So for example, the first thing that happens is:

SELECT user_name()

with no parameters

()

returning a result set containing a single column with no name:

('',)

followed by a single row containing a single value, the unicode string dbo:

(u'dbo', )

The second query goes like this:

 SELECT default_schema_name FROM
 sys.database_principals
 WHERE name = ?
 AND type = 'S'

Note the bound parameter (name = ?). The next line tells us that SA
is sending the unicode string dbo for that parameter:

(u'dbo',)

The result set has a single column called 'default_schema_name':

('default_schema_name',)

...but there are no matching rows.

Then a bit further along, SA is running this query:

SELECT [TABLES_1].[TABLE_NAME]
FROM [INFORMATION_SCHEMA].[TABLES] AS [TABLES_1]
WHERE [TABLES_1].[TABLE_SCHEMA] = CAST(? AS NVARCHAR(max)) AND
[TABLES_1].[TABLE_TYPE] = ? ORDER BY [TABLES_1].[TABLE_NAME]

...passing the parameters dbo and BASE TABLE, but not getting any
results back.

I don't know anything about MS-SQL so can't tell you why that is, but
perhaps you've got enough information to carry on digging?

Hope that helps,

Simon


On Mon, Aug 18, 2014 at 4:27 PM, Horcle g...@umn.edu wrote:
 Indeed!

 Here is the output:


 gms$ python test_connect.py
 2014-08-18 10:17:28,095 INFO sqlalchemy.engine.base.Engine SELECT
 user_name()
 2014-08-18 10:17:28,095 INFO sqlalchemy.engine.base.Engine ()
 2014-08-18 10:17:28,097 DEBUG sqlalchemy.engine.base.Engine Col ('',)
 2014-08-18 10:17:28,098 DEBUG sqlalchemy.engine.base.Engine Row (u'dbo', )
 2014-08-18 10:17:28,099 INFO sqlalchemy.engine.base.Engine
 SELECT default_schema_name FROM
 sys.database_principals
 WHERE name = ?
 AND type = 'S'

 2014-08-18 10:17:28,099 INFO sqlalchemy.engine.base.Engine (u'dbo',)
 2014-08-18 10:17:28,101 DEBUG sqlalchemy.engine.base.Engine Col
 ('default_schema_name',)
 2014-08-18 10:17:28,103 INFO sqlalchemy.engine.base.Engine SELECT CAST('test
 plain returns' AS VARCHAR(60)) AS anon_1
 2014-08-18 10:17:28,103 INFO sqlalchemy.engine.base.Engine ()
 2014-08-18 10:17:28,106 INFO sqlalchemy.engine.base.Engine SELECT CAST('test
 unicode returns' AS NVARCHAR(60)) AS anon_1
 2014-08-18 10:17:28,106 INFO sqlalchemy.engine.base.Engine ()
 sqlalchemy.engine.base.Connection object at 0x101839490
 2014-08-18 10:17:28,382 INFO sqlalchemy.engine.base.Engine select 6 * 7 as
 [Result];
 2014-08-18 10:17:28,382 INFO sqlalchemy.engine.base.Engine ()
 2014-08-18 10:17:28,384 DEBUG sqlalchemy.engine.base.Engine Col ('Result',)
 2014-08-18 10:17:28,384 DEBUG sqlalchemy.engine.base.Engine Row (42, )
 42
 2014-08-18 10:17:28,389 INFO sqlalchemy.engine.base.Engine SELECT
 [TABLES_1].[TABLE_NAME]
 FROM [INFORMATION_SCHEMA].[TABLES] AS [TABLES_1]
 WHERE [TABLES_1].[TABLE_SCHEMA] = CAST(? AS NVARCHAR(max)) AND
 [TABLES_1].[TABLE_TYPE] = ? ORDER BY [TABLES_1].[TABLE_NAME]
 2014-08-18 10:17:28,389 INFO sqlalchemy.engine.base.Engine (u'dbo', 'BASE
 TABLE')
 2014-08-18 10:17:28,394 DEBUG sqlalchemy.engine.base.Engine Col
 ('TABLE_NAME',)
 A

 Not quite sure how to parse this?

 For example,  is u'dbo' what is being used as the schema?

 Greg--

 On Monday, August 18, 2014 10:05:09 AM UTC-5, Simon King wrote:

 On Mon, Aug 18, 2014 at 3:47 PM, Horcle g...@umn.edu wrote:
  On Friday, August 15, 2014 8:28:41 PM UTC-5, Michael Bayer wrote:
 
 
  On Aug 15, 2014, at 5:03 PM, Greg Silverman g...@umn.edu wrote:
 
 
  Then, I thought, what if this is an SQLAlchemy issue. Looks to be. I
  ran
  the following script as a test:
 
  import pyodbc
  import sqlalchemy
  from sqlalchemy.engine import reflection
  from sqlalchemy.engine.reflection import Inspector
 
  def connect():
  return pyodbc.connect(
  'DRIVER={FreeTDS};SERVER=ip_address;'
  'DATABASE=db_name;UID=test;PWD=test;port=1433;'
  'TDS_Version=9.1;')
  engine = sqlalchemy.create_engine('mssql://', creator=connect)
  conn = engine.connect()
  print conn
 
  for row in engine.execute('select 6 * 7 as [Result];'):
  print row.Result
 
  insp = reflection.Inspector.from_engine(engine)
  table_name = 'irb_desc'
  table_names = insp.get_table_names()
  if table_name not in table_names:
  print 'A'
 
  Again, I am connecting fine with the database create.engine method
  (that
  is '42' is printing as expected), but when I run the
  inspector.get_table_names method with the given conditional it is
  printing
  the 'A' (I have tried other table names in the same database to which I
  added 'irbd_balance,' all with the same result.
 
 
 
  what is the SQL output if you set echo=‘debug’;   then, take the SQL
  you
  see and take a look at what it’s SELECTing so you can see what might be
  wrong.  Probably some 

Re: [sqlalchemy] cannot access tables

2014-08-18 Thread Horcle
Thanks, this does help. I was wondering why the return results had no 
values given.

Greg--

On Monday, August 18, 2014 11:17:48 AM UTC-5, Simon King wrote:

 I think you are seeing, for each query: 

 1. The query itself 
 2. The parameters being passed in to the query 
 3. The names of the columns being returned 
 4. The returned rows, if any. 

 So for example, the first thing that happens is: 

 SELECT user_name() 

 with no parameters 

 () 

 returning a result set containing a single column with no name: 

 ('',) 

 followed by a single row containing a single value, the unicode string 
 dbo: 

 (u'dbo', ) 

 The second query goes like this: 

  SELECT default_schema_name FROM 
  sys.database_principals 
  WHERE name = ? 
  AND type = 'S' 

 Note the bound parameter (name = ?). The next line tells us that SA 
 is sending the unicode string dbo for that parameter: 

 (u'dbo',) 

 The result set has a single column called 'default_schema_name': 

 ('default_schema_name',) 

 ...but there are no matching rows. 

 Then a bit further along, SA is running this query: 

 SELECT [TABLES_1].[TABLE_NAME] 
 FROM [INFORMATION_SCHEMA].[TABLES] AS [TABLES_1] 
 WHERE [TABLES_1].[TABLE_SCHEMA] = CAST(? AS NVARCHAR(max)) AND 
 [TABLES_1].[TABLE_TYPE] = ? ORDER BY [TABLES_1].[TABLE_NAME] 

 ...passing the parameters dbo and BASE TABLE, but not getting any 
 results back. 

 I don't know anything about MS-SQL so can't tell you why that is, but 
 perhaps you've got enough information to carry on digging? 

 Hope that helps, 

 Simon 


 On Mon, Aug 18, 2014 at 4:27 PM, Horcle g...@umn.edu javascript: 
 wrote: 
  Indeed! 
  
  Here is the output: 
  
  
  gms$ python test_connect.py 
  2014-08-18 10:17:28,095 INFO sqlalchemy.engine.base.Engine SELECT 
  user_name() 
  2014-08-18 10:17:28,095 INFO sqlalchemy.engine.base.Engine () 
  2014-08-18 10:17:28,097 DEBUG sqlalchemy.engine.base.Engine Col ('',) 
  2014-08-18 10:17:28,098 DEBUG sqlalchemy.engine.base.Engine Row (u'dbo', 
 ) 
  2014-08-18 10:17:28,099 INFO sqlalchemy.engine.base.Engine 
  SELECT default_schema_name FROM 
  sys.database_principals 
  WHERE name = ? 
  AND type = 'S' 
  
  2014-08-18 10:17:28,099 INFO sqlalchemy.engine.base.Engine (u'dbo',) 
  2014-08-18 10:17:28,101 DEBUG sqlalchemy.engine.base.Engine Col 
  ('default_schema_name',) 
  2014-08-18 10:17:28,103 INFO sqlalchemy.engine.base.Engine SELECT 
 CAST('test 
  plain returns' AS VARCHAR(60)) AS anon_1 
  2014-08-18 10:17:28,103 INFO sqlalchemy.engine.base.Engine () 
  2014-08-18 10:17:28,106 INFO sqlalchemy.engine.base.Engine SELECT 
 CAST('test 
  unicode returns' AS NVARCHAR(60)) AS anon_1 
  2014-08-18 10:17:28,106 INFO sqlalchemy.engine.base.Engine () 
  sqlalchemy.engine.base.Connection object at 0x101839490 
  2014-08-18 10:17:28,382 INFO sqlalchemy.engine.base.Engine select 6 * 7 
 as 
  [Result]; 
  2014-08-18 10:17:28,382 INFO sqlalchemy.engine.base.Engine () 
  2014-08-18 10:17:28,384 DEBUG sqlalchemy.engine.base.Engine Col 
 ('Result',) 
  2014-08-18 10:17:28,384 DEBUG sqlalchemy.engine.base.Engine Row (42, ) 
  42 
  2014-08-18 10:17:28,389 INFO sqlalchemy.engine.base.Engine SELECT 
  [TABLES_1].[TABLE_NAME] 
  FROM [INFORMATION_SCHEMA].[TABLES] AS [TABLES_1] 
  WHERE [TABLES_1].[TABLE_SCHEMA] = CAST(? AS NVARCHAR(max)) AND 
  [TABLES_1].[TABLE_TYPE] = ? ORDER BY [TABLES_1].[TABLE_NAME] 
  2014-08-18 10:17:28,389 INFO sqlalchemy.engine.base.Engine (u'dbo', 
 'BASE 
  TABLE') 
  2014-08-18 10:17:28,394 DEBUG sqlalchemy.engine.base.Engine Col 
  ('TABLE_NAME',) 
  A 
  
  Not quite sure how to parse this? 
  
  For example,  is u'dbo' what is being used as the schema? 
  
  Greg-- 
  
  On Monday, August 18, 2014 10:05:09 AM UTC-5, Simon King wrote: 
  
  On Mon, Aug 18, 2014 at 3:47 PM, Horcle g...@umn.edu wrote: 
   On Friday, August 15, 2014 8:28:41 PM UTC-5, Michael Bayer wrote: 
   
   
   On Aug 15, 2014, at 5:03 PM, Greg Silverman g...@umn.edu wrote: 
   
   
   Then, I thought, what if this is an SQLAlchemy issue. Looks to be. I 
   ran 
   the following script as a test: 
   
   import pyodbc 
   import sqlalchemy 
   from sqlalchemy.engine import reflection 
   from sqlalchemy.engine.reflection import Inspector 
   
   def connect(): 
   return pyodbc.connect( 
   'DRIVER={FreeTDS};SERVER=ip_address;' 
   'DATABASE=db_name;UID=test;PWD=test;port=1433;' 
   'TDS_Version=9.1;') 
   engine = sqlalchemy.create_engine('mssql://', creator=connect) 
   conn = engine.connect() 
   print conn 
   
   for row in engine.execute('select 6 * 7 as [Result];'): 
   print row.Result 
   
   insp = reflection.Inspector.from_engine(engine) 
   table_name = 'irb_desc' 
   table_names = insp.get_table_names() 
   if table_name not in table_names: 
   print 'A' 
   
   Again, I am connecting fine with the database create.engine method 
   (that 
   

Re: [sqlalchemy] cannot access tables

2014-08-18 Thread Simon King
It looks like the code that runs the SELECT default_schema_name
query has changed since the version you are running:

  https://bitbucket.org/zzzeek/sqlalchemy/commits/1fb4ad75a38c

It might be worth upgrading to the latest release.

Simon

On Mon, Aug 18, 2014 at 5:22 PM, Horcle g...@umn.edu wrote:
 Thanks, this does help. I was wondering why the return results had no values
 given.

 Greg--


 On Monday, August 18, 2014 11:17:48 AM UTC-5, Simon King wrote:

 I think you are seeing, for each query:

 1. The query itself
 2. The parameters being passed in to the query
 3. The names of the columns being returned
 4. The returned rows, if any.

 So for example, the first thing that happens is:

 SELECT user_name()

 with no parameters

 ()

 returning a result set containing a single column with no name:

 ('',)

 followed by a single row containing a single value, the unicode string
 dbo:

 (u'dbo', )

 The second query goes like this:

  SELECT default_schema_name FROM
  sys.database_principals
  WHERE name = ?
  AND type = 'S'

 Note the bound parameter (name = ?). The next line tells us that SA
 is sending the unicode string dbo for that parameter:

 (u'dbo',)

 The result set has a single column called 'default_schema_name':

 ('default_schema_name',)

 ...but there are no matching rows.

 Then a bit further along, SA is running this query:

 SELECT [TABLES_1].[TABLE_NAME]
 FROM [INFORMATION_SCHEMA].[TABLES] AS [TABLES_1]
 WHERE [TABLES_1].[TABLE_SCHEMA] = CAST(? AS NVARCHAR(max)) AND
 [TABLES_1].[TABLE_TYPE] = ? ORDER BY [TABLES_1].[TABLE_NAME]

 ...passing the parameters dbo and BASE TABLE, but not getting any
 results back.

 I don't know anything about MS-SQL so can't tell you why that is, but
 perhaps you've got enough information to carry on digging?

 Hope that helps,

 Simon


 On Mon, Aug 18, 2014 at 4:27 PM, Horcle g...@umn.edu wrote:
  Indeed!
 
  Here is the output:
 
 
  gms$ python test_connect.py
  2014-08-18 10:17:28,095 INFO sqlalchemy.engine.base.Engine SELECT
  user_name()
  2014-08-18 10:17:28,095 INFO sqlalchemy.engine.base.Engine ()
  2014-08-18 10:17:28,097 DEBUG sqlalchemy.engine.base.Engine Col ('',)
  2014-08-18 10:17:28,098 DEBUG sqlalchemy.engine.base.Engine Row (u'dbo',
  )
  2014-08-18 10:17:28,099 INFO sqlalchemy.engine.base.Engine
  SELECT default_schema_name FROM
  sys.database_principals
  WHERE name = ?
  AND type = 'S'
 
  2014-08-18 10:17:28,099 INFO sqlalchemy.engine.base.Engine (u'dbo',)
  2014-08-18 10:17:28,101 DEBUG sqlalchemy.engine.base.Engine Col
  ('default_schema_name',)
  2014-08-18 10:17:28,103 INFO sqlalchemy.engine.base.Engine SELECT
  CAST('test
  plain returns' AS VARCHAR(60)) AS anon_1
  2014-08-18 10:17:28,103 INFO sqlalchemy.engine.base.Engine ()
  2014-08-18 10:17:28,106 INFO sqlalchemy.engine.base.Engine SELECT
  CAST('test
  unicode returns' AS NVARCHAR(60)) AS anon_1
  2014-08-18 10:17:28,106 INFO sqlalchemy.engine.base.Engine ()
  sqlalchemy.engine.base.Connection object at 0x101839490
  2014-08-18 10:17:28,382 INFO sqlalchemy.engine.base.Engine select 6 * 7
  as
  [Result];
  2014-08-18 10:17:28,382 INFO sqlalchemy.engine.base.Engine ()
  2014-08-18 10:17:28,384 DEBUG sqlalchemy.engine.base.Engine Col
  ('Result',)
  2014-08-18 10:17:28,384 DEBUG sqlalchemy.engine.base.Engine Row (42, )
  42
  2014-08-18 10:17:28,389 INFO sqlalchemy.engine.base.Engine SELECT
  [TABLES_1].[TABLE_NAME]
  FROM [INFORMATION_SCHEMA].[TABLES] AS [TABLES_1]
  WHERE [TABLES_1].[TABLE_SCHEMA] = CAST(? AS NVARCHAR(max)) AND
  [TABLES_1].[TABLE_TYPE] = ? ORDER BY [TABLES_1].[TABLE_NAME]
  2014-08-18 10:17:28,389 INFO sqlalchemy.engine.base.Engine (u'dbo',
  'BASE
  TABLE')
  2014-08-18 10:17:28,394 DEBUG sqlalchemy.engine.base.Engine Col
  ('TABLE_NAME',)
  A
 
  Not quite sure how to parse this?
 
  For example,  is u'dbo' what is being used as the schema?
 
  Greg--
 
  On Monday, August 18, 2014 10:05:09 AM UTC-5, Simon King wrote:
 
  On Mon, Aug 18, 2014 at 3:47 PM, Horcle g...@umn.edu wrote:
   On Friday, August 15, 2014 8:28:41 PM UTC-5, Michael Bayer wrote:
  
  
   On Aug 15, 2014, at 5:03 PM, Greg Silverman g...@umn.edu wrote:
  
  
   Then, I thought, what if this is an SQLAlchemy issue. Looks to be. I
   ran
   the following script as a test:
  
   import pyodbc
   import sqlalchemy
   from sqlalchemy.engine import reflection
   from sqlalchemy.engine.reflection import Inspector
  
   def connect():
   return pyodbc.connect(
   'DRIVER={FreeTDS};SERVER=ip_address;'
   'DATABASE=db_name;UID=test;PWD=test;port=1433;'
   'TDS_Version=9.1;')
   engine = sqlalchemy.create_engine('mssql://', creator=connect)
   conn = engine.connect()
   print conn
  
   for row in engine.execute('select 6 * 7 as [Result];'):
   print row.Result
  
   insp = reflection.Inspector.from_engine(engine)
   table_name = 'irb_desc'
   

Re: [sqlalchemy] cannot access tables

2014-08-18 Thread Horcle
Thanks for the heads up. Unfortunately, it did not help. In any case, the 
issue appears to be that while the last query DOES return a record set when 
run as straight up SQL on the server, it does not work as desirecd through 
SQLAlchemy.

More digging to be done.

Greg--

On Monday, August 18, 2014 11:30:39 AM UTC-5, Simon King wrote:

 It looks like the code that runs the SELECT default_schema_name 
 query has changed since the version you are running: 

   https://bitbucket.org/zzzeek/sqlalchemy/commits/1fb4ad75a38c 

 It might be worth upgrading to the latest release. 

 Simon 

 On Mon, Aug 18, 2014 at 5:22 PM, Horcle g...@umn.edu javascript: 
 wrote: 
  Thanks, this does help. I was wondering why the return results had no 
 values 
  given. 
  
  Greg-- 
  
  
  On Monday, August 18, 2014 11:17:48 AM UTC-5, Simon King wrote: 
  
  I think you are seeing, for each query: 
  
  1. The query itself 
  2. The parameters being passed in to the query 
  3. The names of the columns being returned 
  4. The returned rows, if any. 
  
  So for example, the first thing that happens is: 
  
  SELECT user_name() 
  
  with no parameters 
  
  () 
  
  returning a result set containing a single column with no name: 
  
  ('',) 
  
  followed by a single row containing a single value, the unicode string 
  dbo: 
  
  (u'dbo', ) 
  
  The second query goes like this: 
  
   SELECT default_schema_name FROM 
   sys.database_principals 
   WHERE name = ? 
   AND type = 'S' 
  
  Note the bound parameter (name = ?). The next line tells us that SA 
  is sending the unicode string dbo for that parameter: 
  
  (u'dbo',) 
  
  The result set has a single column called 'default_schema_name': 
  
  ('default_schema_name',) 
  
  ...but there are no matching rows. 
  
  Then a bit further along, SA is running this query: 
  
  SELECT [TABLES_1].[TABLE_NAME] 
  FROM [INFORMATION_SCHEMA].[TABLES] AS [TABLES_1] 
  WHERE [TABLES_1].[TABLE_SCHEMA] = CAST(? AS NVARCHAR(max)) AND 
  [TABLES_1].[TABLE_TYPE] = ? ORDER BY [TABLES_1].[TABLE_NAME] 
  
  ...passing the parameters dbo and BASE TABLE, but not getting any 
  results back. 
  
  I don't know anything about MS-SQL so can't tell you why that is, but 
  perhaps you've got enough information to carry on digging? 
  
  Hope that helps, 
  
  Simon 
  
  
  On Mon, Aug 18, 2014 at 4:27 PM, Horcle g...@umn.edu wrote: 
   Indeed! 
   
   Here is the output: 
   
   
   gms$ python test_connect.py 
   2014-08-18 10:17:28,095 INFO sqlalchemy.engine.base.Engine SELECT 
   user_name() 
   2014-08-18 10:17:28,095 INFO sqlalchemy.engine.base.Engine () 
   2014-08-18 10:17:28,097 DEBUG sqlalchemy.engine.base.Engine Col ('',) 
   2014-08-18 10:17:28,098 DEBUG sqlalchemy.engine.base.Engine Row 
 (u'dbo', 
   ) 
   2014-08-18 10:17:28,099 INFO sqlalchemy.engine.base.Engine 
   SELECT default_schema_name FROM 
   sys.database_principals 
   WHERE name = ? 
   AND type = 'S' 
   
   2014-08-18 10:17:28,099 INFO sqlalchemy.engine.base.Engine (u'dbo',) 
   2014-08-18 10:17:28,101 DEBUG sqlalchemy.engine.base.Engine Col 
   ('default_schema_name',) 
   2014-08-18 10:17:28,103 INFO sqlalchemy.engine.base.Engine SELECT 
   CAST('test 
   plain returns' AS VARCHAR(60)) AS anon_1 
   2014-08-18 10:17:28,103 INFO sqlalchemy.engine.base.Engine () 
   2014-08-18 10:17:28,106 INFO sqlalchemy.engine.base.Engine SELECT 
   CAST('test 
   unicode returns' AS NVARCHAR(60)) AS anon_1 
   2014-08-18 10:17:28,106 INFO sqlalchemy.engine.base.Engine () 
   sqlalchemy.engine.base.Connection object at 0x101839490 
   2014-08-18 10:17:28,382 INFO sqlalchemy.engine.base.Engine select 6 * 
 7 
   as 
   [Result]; 
   2014-08-18 10:17:28,382 INFO sqlalchemy.engine.base.Engine () 
   2014-08-18 10:17:28,384 DEBUG sqlalchemy.engine.base.Engine Col 
   ('Result',) 
   2014-08-18 10:17:28,384 DEBUG sqlalchemy.engine.base.Engine Row (42, 
 ) 
   42 
   2014-08-18 10:17:28,389 INFO sqlalchemy.engine.base.Engine SELECT 
   [TABLES_1].[TABLE_NAME] 
   FROM [INFORMATION_SCHEMA].[TABLES] AS [TABLES_1] 
   WHERE [TABLES_1].[TABLE_SCHEMA] = CAST(? AS NVARCHAR(max)) AND 
   [TABLES_1].[TABLE_TYPE] = ? ORDER BY [TABLES_1].[TABLE_NAME] 
   2014-08-18 10:17:28,389 INFO sqlalchemy.engine.base.Engine (u'dbo', 
   'BASE 
   TABLE') 
   2014-08-18 10:17:28,394 DEBUG sqlalchemy.engine.base.Engine Col 
   ('TABLE_NAME',) 
   A 
   
   Not quite sure how to parse this? 
   
   For example,  is u'dbo' what is being used as the schema? 
   
   Greg-- 
   
   On Monday, August 18, 2014 10:05:09 AM UTC-5, Simon King wrote: 
   
   On Mon, Aug 18, 2014 at 3:47 PM, Horcle g...@umn.edu wrote: 
On Friday, August 15, 2014 8:28:41 PM UTC-5, Michael Bayer wrote: 


On Aug 15, 2014, at 5:03 PM, Greg Silverman g...@umn.edu 
 wrote: 


Then, I thought, what if this is an SQLAlchemy issue. 

Re: [sqlalchemy] cannot access tables

2014-08-18 Thread Michael Bayer
try the query as stated along with a pyodbc connection (e.g. conn = 
pyodbc.connect(...); cursor = conn.cursor(); cursor.execute(the statement); 
cursor.fetchall()).   the way pyodbc is connecting might be changing things.



On Aug 18, 2014, at 12:59 PM, Horcle g...@umn.edu wrote:

 Thanks for the heads up. Unfortunately, it did not help. In any case, the 
 issue appears to be that while the last query DOES return a record set when 
 run as straight up SQL on the server, it does not work as desirecd through 
 SQLAlchemy.
 
 More digging to be done.
 
 Greg--
 
 On Monday, August 18, 2014 11:30:39 AM UTC-5, Simon King wrote:
 It looks like the code that runs the SELECT default_schema_name 
 query has changed since the version you are running: 
 
   https://bitbucket.org/zzzeek/sqlalchemy/commits/1fb4ad75a38c 
 
 It might be worth upgrading to the latest release. 
 
 Simon 
 
 On Mon, Aug 18, 2014 at 5:22 PM, Horcle g...@umn.edu wrote: 
  Thanks, this does help. I was wondering why the return results had no 
  values 
  given. 
  
  Greg-- 
  
  
  On Monday, August 18, 2014 11:17:48 AM UTC-5, Simon King wrote: 
  
  I think you are seeing, for each query: 
  
  1. The query itself 
  2. The parameters being passed in to the query 
  3. The names of the columns being returned 
  4. The returned rows, if any. 
  
  So for example, the first thing that happens is: 
  
  SELECT user_name() 
  
  with no parameters 
  
  () 
  
  returning a result set containing a single column with no name: 
  
  ('',) 
  
  followed by a single row containing a single value, the unicode string 
  dbo: 
  
  (u'dbo', ) 
  
  The second query goes like this: 
  
   SELECT default_schema_name FROM 
   sys.database_principals 
   WHERE name = ? 
   AND type = 'S' 
  
  Note the bound parameter (name = ?). The next line tells us that SA 
  is sending the unicode string dbo for that parameter: 
  
  (u'dbo',) 
  
  The result set has a single column called 'default_schema_name': 
  
  ('default_schema_name',) 
  
  ...but there are no matching rows. 
  
  Then a bit further along, SA is running this query: 
  
  SELECT [TABLES_1].[TABLE_NAME] 
  FROM [INFORMATION_SCHEMA].[TABLES] AS [TABLES_1] 
  WHERE [TABLES_1].[TABLE_SCHEMA] = CAST(? AS NVARCHAR(max)) AND 
  [TABLES_1].[TABLE_TYPE] = ? ORDER BY [TABLES_1].[TABLE_NAME] 
  
  ...passing the parameters dbo and BASE TABLE, but not getting any 
  results back. 
  
  I don't know anything about MS-SQL so can't tell you why that is, but 
  perhaps you've got enough information to carry on digging? 
  
  Hope that helps, 
  
  Simon 
  
  
  On Mon, Aug 18, 2014 at 4:27 PM, Horcle g...@umn.edu wrote: 
   Indeed! 
   
   Here is the output: 
   
   
   gms$ python test_connect.py 
   2014-08-18 10:17:28,095 INFO sqlalchemy.engine.base.Engine SELECT 
   user_name() 
   2014-08-18 10:17:28,095 INFO sqlalchemy.engine.base.Engine () 
   2014-08-18 10:17:28,097 DEBUG sqlalchemy.engine.base.Engine Col ('',) 
   2014-08-18 10:17:28,098 DEBUG sqlalchemy.engine.base.Engine Row (u'dbo', 
   ) 
   2014-08-18 10:17:28,099 INFO sqlalchemy.engine.base.Engine 
   SELECT default_schema_name FROM 
   sys.database_principals 
   WHERE name = ? 
   AND type = 'S' 
   
   2014-08-18 10:17:28,099 INFO sqlalchemy.engine.base.Engine (u'dbo',) 
   2014-08-18 10:17:28,101 DEBUG sqlalchemy.engine.base.Engine Col 
   ('default_schema_name',) 
   2014-08-18 10:17:28,103 INFO sqlalchemy.engine.base.Engine SELECT 
   CAST('test 
   plain returns' AS VARCHAR(60)) AS anon_1 
   2014-08-18 10:17:28,103 INFO sqlalchemy.engine.base.Engine () 
   2014-08-18 10:17:28,106 INFO sqlalchemy.engine.base.Engine SELECT 
   CAST('test 
   unicode returns' AS NVARCHAR(60)) AS anon_1 
   2014-08-18 10:17:28,106 INFO sqlalchemy.engine.base.Engine () 
   sqlalchemy.engine.base.Connection object at 0x101839490 
   2014-08-18 10:17:28,382 INFO sqlalchemy.engine.base.Engine select 6 * 7 
   as 
   [Result]; 
   2014-08-18 10:17:28,382 INFO sqlalchemy.engine.base.Engine () 
   2014-08-18 10:17:28,384 DEBUG sqlalchemy.engine.base.Engine Col 
   ('Result',) 
   2014-08-18 10:17:28,384 DEBUG sqlalchemy.engine.base.Engine Row (42, ) 
   42 
   2014-08-18 10:17:28,389 INFO sqlalchemy.engine.base.Engine SELECT 
   [TABLES_1].[TABLE_NAME] 
   FROM [INFORMATION_SCHEMA].[TABLES] AS [TABLES_1] 
   WHERE [TABLES_1].[TABLE_SCHEMA] = CAST(? AS NVARCHAR(max)) AND 
   [TABLES_1].[TABLE_TYPE] = ? ORDER BY [TABLES_1].[TABLE_NAME] 
   2014-08-18 10:17:28,389 INFO sqlalchemy.engine.base.Engine (u'dbo', 
   'BASE 
   TABLE') 
   2014-08-18 10:17:28,394 DEBUG sqlalchemy.engine.base.Engine Col 
   ('TABLE_NAME',) 
   A 
   
   Not quite sure how to parse this? 
   
   For example,  is u'dbo' what is being used as the schema? 
   
   Greg-- 
   
   On Monday, August 18, 2014 10:05:09 AM UTC-5, Simon King wrote: 
   
   On Mon, 

Re: [sqlalchemy] cannot access tables

2014-08-18 Thread Horcle
It ended up being a unicode issue. I had to set this: 
supports_unicode_binds=False (see Unicde Binds here 
http://docs.sqlalchemy.org/en/rel_0_9/dialects/mssql.html#module-sqlalchemy.dialects.mssql.pyodbc),
 
in order to get it to work. Annoying, to say the least! 



python test_connect.py
2014-08-18 16:15:06,611 INFO sqlalchemy.engine.base.Engine
SELECT default_schema_name FROM
sys.database_principals
WHERE principal_id=database_principal_id()

2014-08-18 16:15:06,611 INFO sqlalchemy.engine.base.Engine ()
2014-08-18 16:15:06,613 DEBUG sqlalchemy.engine.base.Engine Col 
('default_schema_name',)
2014-08-18 16:15:06,614 DEBUG sqlalchemy.engine.base.Engine Row (u'dbo', )
2014-08-18 16:15:06,616 INFO sqlalchemy.engine.base.Engine SELECT 
CAST('test plain returns' AS VARCHAR(60)) AS anon_1
2014-08-18 16:15:06,616 INFO sqlalchemy.engine.base.Engine ()
2014-08-18 16:15:06,619 INFO sqlalchemy.engine.base.Engine SELECT 
CAST('test unicode returns' AS NVARCHAR(60)) AS anon_1
2014-08-18 16:15:06,619 INFO sqlalchemy.engine.base.Engine ()
sqlalchemy.engine.base.Connection object at 0x101877ed0
2014-08-18 16:15:06,639 INFO sqlalchemy.engine.base.Engine select 6 * 7 as 
[Result];
2014-08-18 16:15:06,639 INFO sqlalchemy.engine.base.Engine ()
2014-08-18 16:15:06,641 DEBUG sqlalchemy.engine.base.Engine Col ('Result',)
2014-08-18 16:15:06,641 DEBUG sqlalchemy.engine.base.Engine Row (42, )
42
2014-08-18 16:15:06,647 INFO sqlalchemy.engine.base.Engine SELECT 
[TABLES_1].[TABLE_NAME]
FROM [INFORMATION_SCHEMA].[TABLES] AS [TABLES_1]
WHERE [TABLES_1].[TABLE_SCHEMA] = CAST(? AS NVARCHAR(max)) AND 
[TABLES_1].[TABLE_TYPE] = ? ORDER BY [TABLES_1].[TABLE_NAME]
2014-08-18 16:15:06,647 INFO sqlalchemy.engine.base.Engine ('dbo', 'BASE 
TABLE')
2014-08-18 16:15:06,663 DEBUG sqlalchemy.engine.base.Engine Col 
('TABLE_NAME',)
2014-08-18 16:15:06,663 DEBUG sqlalchemy.engine.base.Engine Row 
(u'irb_desc', )
2014-08-18 16:15:06,663 DEBUG sqlalchemy.engine.base.Engine Row (u'irbd', )
2014-08-18 16:15:06,663 DEBUG sqlalchemy.engine.base.Engine Row 
(u'study_desc', )
2014-08-18 16:15:06,664 DEBUG sqlalchemy.engine.base.Engine Row 
(u'study_irb', )
2014-08-18 16:15:06,664 DEBUG sqlalchemy.engine.base.Engine Row 
(u'study_status', )
2014-08-18 16:15:06,664 DEBUG sqlalchemy.engine.base.Engine Row 
(u'study_status_desc', )
2014-08-18 16:15:06,664 DEBUG sqlalchemy.engine.base.Engine Row 
(u'study_subject', )
2014-08-18 16:15:06,664 DEBUG sqlalchemy.engine.base.Engine Row 
(u'subj_desc', )
2014-08-18 16:15:06,664 DEBUG sqlalchemy.engine.base.Engine Row 
(u'subj_status_desc', )
2014-08-18 16:15:06,665 DEBUG sqlalchemy.engine.base.Engine Row 
(u'subject_status', )
2014-08-18 16:15:06,665 DEBUG sqlalchemy.engine.base.Engine Row 
(u'sysdiagrams', )

Thanks all!

Greg--

On Monday, August 18, 2014 1:08:55 PM UTC-5, Michael Bayer wrote:

 try the query as stated along with a pyodbc connection (e.g. conn = 
 pyodbc.connect(…); cursor = conn.cursor(); cursor.execute(the statement); 
 cursor.fetchall()).   the way pyodbc is connecting might be changing things.



 On Aug 18, 2014, at 12:59 PM, Horcle g...@umn.edu javascript: wrote:

 Thanks for the heads up. Unfortunately, it did not help. In any case, the 
 issue appears to be that while the last query DOES return a record set when 
 run as straight up SQL on the server, it does not work as desirecd through 
 SQLAlchemy.

 More digging to be done.

 Greg--

 On Monday, August 18, 2014 11:30:39 AM UTC-5, Simon King wrote:

 It looks like the code that runs the SELECT default_schema_name 
 query has changed since the version you are running: 

   https://bitbucket.org/zzzeek/sqlalchemy/commits/1fb4ad75a38c 

 It might be worth upgrading to the latest release. 

 Simon 

 On Mon, Aug 18, 2014 at 5:22 PM, Horcle g...@umn.edu wrote: 
  Thanks, this does help. I was wondering why the return results had no 
 values 
  given. 
  
  Greg-- 
  
  
  On Monday, August 18, 2014 11:17:48 AM UTC-5, Simon King wrote: 
  
  I think you are seeing, for each query: 
  
  1. The query itself 
  2. The parameters being passed in to the query 
  3. The names of the columns being returned 
  4. The returned rows, if any. 
  
  So for example, the first thing that happens is: 
  
  SELECT user_name() 
  
  with no parameters 
  
  () 
  
  returning a result set containing a single column with no name: 
  
  ('',) 
  
  followed by a single row containing a single value, the unicode string 
  dbo: 
  
  (u'dbo', ) 
  
  The second query goes like this: 
  
   SELECT default_schema_name FROM 
   sys.database_principals 
   WHERE name = ? 
   AND type = 'S' 
  
  Note the bound parameter (name = ?). The next line tells us that SA 
  is sending the unicode string dbo for that parameter: 
  
  (u'dbo',) 
  
  The result set has a single column called 'default_schema_name': 
  
  ('default_schema_name',) 
  
  ...but there are 

Re: [sqlalchemy] cannot access tables

2014-08-15 Thread Michael Bayer

On Aug 15, 2014, at 5:03 PM, Greg Silverman g...@umn.edu wrote:

 
 Then, I thought, what if this is an SQLAlchemy issue. Looks to be. I ran the 
 following script as a test:
 
 import pyodbc
 import sqlalchemy
 from sqlalchemy.engine import reflection
 from sqlalchemy.engine.reflection import Inspector
 
 def connect():
 return pyodbc.connect(
   'DRIVER={FreeTDS};SERVER=ip_address;'
   'DATABASE=db_name;UID=test;PWD=test;port=1433;'
   'TDS_Version=9.1;')
 engine = sqlalchemy.create_engine('mssql://', creator=connect)
 conn = engine.connect()
 print conn
 
 for row in engine.execute('select 6 * 7 as [Result];'):
 print row.Result
 
 insp = reflection.Inspector.from_engine(engine)
 table_name = 'irb_desc'
 table_names = insp.get_table_names()
 if table_name not in table_names:
 print 'A'
 
 Again, I am connecting fine with the database create.engine method (that is 
 '42' is printing as expected), but when I run the inspector.get_table_names 
 method with the given conditional it is printing the 'A' (I have tried other 
 table names in the same database to which I added 'irbd_balance,' all with 
 the same result.


what is the SQL output if you set echo='debug';   then, take the SQL you see 
and take a look at what it's SELECTing so you can see what might be wrong.  
Probably some schema name setting or something like that.

-- 
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 http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.