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 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.

-- 
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.

Reply via email to