Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
SQL Insert fields with a ' in them
Message
From
02/06/2015 14:32:34
Dragan Nedeljkovich
Now officially retired
Zrenjanin, Serbia
 
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows Server 2012
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Desktop
Miscellaneous
Thread ID:
01620334
Message ID:
01620523
Views:
56
>>>>I think this, you think that - but the actuality would have to be tested. Don't have the profiler on this machine.
>>>
>>>I'm 99.999% sure the conversion to N(17,0) in VFP will do nothing.
>>
>>But then what's the problem? There's no float or other... the parameter passed is represented as a string in the insert command sent anyway. You'd have a
>>
>>cast(@p15 as numeric(17,0))
>>
>>and the @15 will be mentioned as ...,12345.5494850,... in the parameter list.
>
>The @p15 will be passed as float. So, with adding
>
>select * from myTable where colName = CAST(@p15 as NUMERIC(17,0))
>
>it will execute it correctly in SQL Server and the fact that @p15 is float doesn't matter anymore.
>
>If we will run this command without that cast, e.g.
>
>SELECT * from myTable where colName = @p15 where @p15 is float and the colName is numeric(17,0) we will have implicit conversion in the plan which may be very costly on big tables.

Ah, so you're forcing it to be of certain type SQL side for these reasons. The parameter type is sort of decided ad hoc, and VFP's parser just passes general numerics (as a literal in the parameter list, ergo a generic numeric type) in the most precise notation it can, so I guess it often gets interpreted as a float.

back to same old

the first online autobiography, unfinished by design
What, me reckless? I'm full of recks!
Balkans, eh? Count them.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform