>Hello
>
>I submit a query via SQLexec. The query looks basically like this (it is actually much more complex)
>
>SELECT * FROM TABLEX WHERE FIELD1 = ?AMES
>
>Where AMES = "200905" (VFP variable)
>
>It takes very long to complete (say 20 minutes). Using SQL profiler, I detect that SQL server does this:
>
>
>exec sp_executesql N'SELECT * FROM TABLEX WHERE FIELD1 = @P1',N'@P1 varchar(6)','200905'
>
>Running this from Query Analyzer runs slowly too.
>
>However, FIELD1 is actually char(6) not varchar(6). There is an index on FIELD1.
>
>From query analyzer, changing just varchar(6) to char(6), slashes execution time down from 20 minutes to 6 seconds.!
>
>How can I force VFP (or the ODBC driver) to correctly use char instead of varchar?
>
>Using SQL 2005 with SQL Client.
Beat the enemy with their own weapon:
sqlexec(h, [exec sp_executesql N'SELECT * FROM TABLEX WHERE FIELD1 = @P1',N'@P1 char(6)',']+AMES+['], [somealias])