Not sure why that wouldn't work. ODBC should ignore anything that is in quotes. This works for me:
? SqlExec(o.nsqlHandle,[select * from wws_customers where LastName = '?name'])
which would be roughly the same thing as you're doing. It'll return no data (since it doesn't match) but it returns 1 which is a successful response.
+++ Rick ---
>Hi Rick,
>
>>>>I am working on a script to create a database in SQL Server 2008. The script includes the creation of UDFs, and at least one of those contains a "?" in the UDF. Since SQLDMO is apparently gone, I am working on using SQLExec() to execute the script. The problem is that SQLExec() is interpreting the "?" as a parameter (and prompting for a value) when it is not. Is there anyway to tell SQLExec() to ignore anything it interprets as a parameter?
>>
>>What does the actual line of code you're trying to generate look like? Where is the question mark?
>>
>>It should work within a string constant and using Execute using the indirect expression stored proc I mentioned previously. Give me a reproducable example of what doesn't work.
>>
>
>Here is a reply I posted previously to someone else in this thread:
>
>Parameters are preceded by a ? in remote SQL statements. For example
>
>SQLExec(lnConnection, "Select * from MyTable where MyField = ?MyParameter")
>
>If MyParameter variable is not defined, VFP will pop up a dialog asking for the value. Here is a line of code from a script that creates a UDF in SQL Server:
>
>-- select dbo.GETOCCURSWORD(@lcString, 'Canada', ' ,.!?', default) -- Displays 4
>
>When I send the script with SQLExec(), VFP pops up a dialog with
Enter the value for ', default) -- Displays 4. It is interpreting the ? as a parameter. I'm asking if there is a way to turn off that behavior.