>>>>Hi!
>>>>
>>>>The variable past "?" is called "parameter" for SQL command(s). When executing, all "?{variable}" are automatically replaced by real values and sent to SQL server. More, these values are replaced in a such way that you can pass really large data (megabytes) using this approach, that is limited when passing data directly as a constant. This way is very useful for saving General and large Memo field data.
>>>>
>>>>>Hi,
>>>>>
>>>>>If I want to insert a general field (in SPT) to an image field in SQL Serve, I can issue:
>>>>>
>>>>>SQLEXEC(lnConnect, [Insert into mytable (ImageField) values (?MyCursor.GeneralField)])
>>>>>
>>>>>Question - what is the "?" doing exactly here? Is there a function equivelant of it if I wanted to concatenate the SQL String myself?
>>>>>
>>>>>TIA,
>>>
>>>The problem is that using the "?" covnerts an SPT Insert statment into an sp_executesql which is in it's own SQL scope. This prevents me from being able to sue scope_identity() to get the identity back from SQL Server.
>>
>>
>>You could get the identity from 'inserted' cursor.
>>Cetin
>
>that only lives during the trigger life cycles
This is correct, but you can write one :-)
Also, take a look to @@IDENTITY. If you have no triger on that table that does other inserts (and there are no plans to create such triggers), @@IDENTITY is better in you case.
Vlad Grynchyshyn, Project Manager, MCP
vgryn@yahoo.comICQ #10709245
The professional level of programmer could be determined by level of stupidity of his/her bugs
It is not appropriate to say that question is "foolish". There could be only foolish answers. Everybody passed period of time when knows nothing about something.