![]() | |
![]() |
| | Thread Tools | Display Modes |
#11
| |||
| |||
|
|
Bob Barrows (reb01501 (AT) NOSPAMyahoo (DOT) com) writes: Very bizarre. Why not use ADO's innate ability to pass parameter values? I see from you're next message that you are using vbscript. So, assuming the procedure above returns no records, and that your opened connection variable is called "cn", the vbscript to execute the above procedure would be: cn.ExampleProc "abc",1,2,3 Explanation: ADO (2.5 and higher) allows stored procedures to be treated as if they are methods of the connection object, allowing the parameter values to passed as if you were plassing arguments to a builtin method. No need to worry about escaping delimiters, etc. Egads! I didn't know of that one. Unfortunately, I don't have an VB environment here at home, so I cannot try it. But how does it work under the covers? I would guess that it runs .Refresh under the covers, but I found in the MDAC Books Online that it says: "ADO will make a 'best guess' of parameter types.". |
#12
| |||
| |||
|
|
Under the covers, a command object is created (similarly as to when the connection's Execute method is called) and parameter objects are appended, typed based on that "best guess", which uses the types (or subtypes given vbscript's restriction to Variant datatypes) of the passed values in making that guess. Yes, theoretically, the best guess could be wrong, but in my experience it never has been - at worst, an implicit conversion might be required. Of course, my environment has always been very simple. And as long as you properly type your VB objects, the chance of a bad guess that requires more than a conversion from varchar to nvarchar, or float to integer is slim. |
#13
| |||
| |||
|
|
Bob Barrows (reb01501 (AT) NOSPAMyahoo (DOT) com) writes: Under the covers, a command object is created (similarly as to when the connection's Execute method is called) and parameter objects are appended, typed based on that "best guess", which uses the types (or subtypes given vbscript's restriction to Variant datatypes) of the passed values in making that guess. Yes, theoretically, the best guess could be wrong, but in my experience it never has been - at worst, an implicit conversion might be required. Of course, my environment has always been very simple. And as long as you properly type your VB objects, the chance of a bad guess that requires more than a conversion from varchar to nvarchar, or float to integer is slim. The area that would make me the most worried are dates, particularly if you have them in string fields. If they are passed as (n)varchar, conversion happens in SQL Server which can give a headache. |
![]() |
| Thread Tools | |
| Display Modes | |
| |