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

Reply via email to