Hi all, I have a small program demonstrating this without SA, so the problem seems to be adodbapi specific. I'll be posting to their list and I don't want to crosspost here too, so anyone interested in the problem can have a look at the adodbapi archives.
Arnar On 2/15/07, Arnar Birgisson <[EMAIL PROTECTED]> wrote: > Thanks Rick, > > The SA table definitions were using Unicode so I changed those to > String. I also make sure that the parameter in question is being sent > as a str object and not unicode. Same result in both cases, SQL Server > is only receiving the first character and the type is still detected > as nvarchar(1). > > Any other ideas? > > Arnar > > On 2/14/07, Rick Morrison <[EMAIL PROTECTED]> wrote: > > The problem is most likely in the table definition which defines the > > "dataset" column as a Unicode type. A recent patch for adodb makes that an > > NVARCHAR field, vs. a simple VARCHAR for pymssql. Try defining the table > > with varchar or char datatype. > > > > > > > > > > On 2/14/07, Arnar Birgisson <[EMAIL PROTECTED]> wrote: > > > > > > > > > Hi there, > > > > > > I have the following query in SA. It works using pymssql on Linux. > > > > > > criteria = and_( > > > tables.salestable.c.dataset==self.xaldataset, > > > > > tables.salestable.c.dataset==tables.projtable.c.dataset , > > > > > tables.salestable.c.proj==tables.projtable.c.proj, > > > tables.salestable.c.projclosed==0, > > > #tables.salestable.c.salesoffersent!=2, > > > #tables.salestable.c.salesofferinvoice!=2, > > > tables.salestable.c.projeststatus!=4, > > > tables.salestable.c.projeststatus!=6, > > > #tables.salestable.c.projeststatus!=7, > > > *critlist > > > ) > > > > > > query = select([ > > > tables.salestable.c.dataset , > > > tables.salestable.c.salesnumber, > > > tables.salestable.c.salesname, > > > tables.salestable.c.ordertaker, > > > tables.salestable.c.deliverydate, > > > tables.salestable.c.projname , > > > tables.salestable.c.createdate, > > > tables.salestable.c.rownumber, > > > tables.projtable.c.proj, > > > tables.projtable.c.opmprojno, > > > tables.projtable.c.framstjori > > > ], criteria) > > > > > > Here, self.xaldataset is "ODD" and critlist is []. > > > > > > When run on windows with adodbapi - this is the echoed query: > > > > > > 2007-02-14 11:55:28,030 > > sqlalchemy.engine.base.Engine.0x..30 INFO > > > SELECT TOP 25 subq.dataset, subq.salesnumber, subq.salesname, > > > subq.ordertaker, subq.deliverydate, subq.projname, subq.createdate, > > > subq.rownumber, subq.proj, subq.opmprojno, subq.framstjori > > > FROM (SELECT salestable.dataset AS dataset, salestable.salesnumber AS > > > salesnumber, salestable.salesname AS salesname, salestable.ordertaker > > > AS ordertaker, salestable.deliverydate AS deliverydate, > > > salestable.projname AS projname, salestable. > > > createdate AS createdate, salestable.rownumber AS rownumber, > > > projtable.proj AS proj, projtable.opmprojno AS opmprojno, > > > projtable.framstjori AS framstjori > > > FROM salestable, projtable > > > WHERE salestable.dataset = ? AND salestable.dataset = > > > projtable.dataset AND salestable.proj = projtable.proj AND > > > salestable.projclosed = ? AND salestable.projeststatus != ? AND > > > salestable.projeststatus != ?) AS subq ORDER BY deliverydate > > > > > > 2007-02-14 11:55:28,030 > > sqlalchemy.engine.base.Engine.0x..30 INFO > > > ['ODD', 0, 4, 6] > > > > > > Note the first parameter being 'ODD'. > > > > > > Now, the query wasn't returning the expected results so I looked at > > > the query that was being sent in sql profiler: > > > > > > exec sp_executesql N'SELECT TOP 25 subq.dataset, subq.salesnumber, > > > subq.salesname, subq.ordertaker, subq.deliverydate, subq.projname, > > > subq.createdate, subq.rownumber , > > > subq.proj, subq.opmprojno, subq.framstjori > > > FROM (SELECT salestable.dataset AS dataset, salestable.salesnumber AS > > > salesnumber, salestable.salesname AS salesname, salestable.ordertaker > > > AS ordertaker, > > > salestable.deliverydate AS deliverydate, salestable.projname AS > > > projname, salestable.createdate AS createdate, salestable.rownumber AS > > > rownumber, projtable.proj AS proj, > > > projtable.opmprojno AS opmprojno, projtable.framstjori AS framstjori > > > FROM salestable, projtable > > > WHERE salestable.dataset = @P1 AND salestable.dataset = > > > projtable.dataset AND salestable.proj = projtable.proj AND > > > salestable.projclosed = @P2 AND salestable.projeststatus > > > != @P3 AND salestable.projeststatus != @P4) AS subq ORDER BY > > > deliverydate',N'@P1 nvarchar(1),@P2 int,@P3 int,@P4 int',N'O',0,4,6 > > > > > > Here you can see that the first parameter is givent the type > > > nvarchar(1) and the value N'O'. I assume this is b/c somewhere the > > > parameter is handled as a list - and being a string messes things up. > > > Maybe because I'm using unicode strings? > > > > > > Could this be a SA bug or should I rather look into adodbapi? > > > > > > Arnar > > > > > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---