If you need to return a single integer from a stored procedure, it’s more efficient to use the RETURN statement than SELECT since SELECT is a whole recordset with a cursor. To access the return value from your C# code, you add a “ReturnValue” parameter to your stored procedure call:
(Pretend you have an open SqlConnection called “conn”.)
SqlCommand sqlCommand = new SqlCommand(“webmail_getMessageCount”);
sqlCommand.Connection = conn;
sqlCommand.CommandType = CommandType.StoredProcedure;
SqlParameter messageCount = new SqlParameter(“@count”, SqlDbType.Int);
messageCount.Direction = ParameterDirection.ReturnValue;
110 Restart marker reply.
In this case, the text is exact and not left to the
particular implementation; it must read:
MARK yyyy = mmmm
Where yyyy is User-process data stream marker, and mmmm
server’s equivalent marker (note the spaces between markers
120 Service ready in nnn minutes.
125 Data connection already open; transfer starting.
150 File status okay; about to open data connection.
200 Command okay.
202 Command not implemented, superfluous at this site.
211 System status, or system help reply.
212 Directory status.
213 File status.
214 Help message.
On how to use the server or the meaning of a particular
non-standard command. This reply is useful only to the
215 NAME system type.
Where NAME is an official system name from the list in the
Assigned Numbers document.
220 Service ready for new user.
221 Service closing control connection.
Logged out if appropriate.
225 Data connection open; no transfer in progress.
226 Closing data connection.
Requested file action successful (for example, file
transfer or file abort).
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).
230 User logged in, proceed.
250 Requested file action okay, completed.
257 “PATHNAME” created.
331 User name okay, need password.
332 Need account for login.
350 Requested file action pending further information.
421 Service not available, closing control connection.
This may be a reply to any command if the service knows it
must shut down.
425 Can’t open data connection.
426 Connection closed; transfer aborted.
450 Requested file action not taken.
File unavailable (e.g., file busy).
451 Requested action aborted: local error in processing.
452 Requested action not taken.
Insufficient storage space in system.
500 Syntax error, command unrecognized. This may include errors such as command line too long.
501 Syntax error in parameters or arguments.
502 Command not implemented.
503 Bad sequence of commands.
504 Command not implemented for that parameter.
530 Not logged in.
532 Need account for storing files.
550 Requested action not taken. File unavailable (e.g., file not found, no access).
551 Requested action aborted: page type unknown.
552 Requested file action aborted.
Exceeded storage allocation (for current directory or
553 Requested action not taken. File name not allowed.
A thread-safe vector component for use in the Session and Application. I did not write this component. The original author has evaporated, so I have archived it for the betterment of mankind.
The Vector Object is a COM component designed to work with any scripting environment (it also supports native interfaces within Visual Basic and Visual C++). Whether you are using IIS/ASP or you are using the Windows Script Hosting environment, you can use this object to store items in a grow-able array or vector. The items can be any automation compatible data type such as strings, numbers and other automation objects. This object is designed to be a dynamic, growable array or collection. It supports traditional item references by numeric index such as:
for index = 0 to 10
but also item reference by textual index like so:
set foo = vec.Item(“Foo”)
The unique quality about textual or Named items, they are only supported by automation objects that implement the “Name” property. In other words, you can store an automation object in the Vector. The Vector inspects the automation object for a property called “Name”. If the Vector finds this property, it will allow you to reference the item in the Vector by name or numerical index.
Special consideration has been made for the Vector object to work with IIS/ASP’s intrinsic Application and Session objects. You can store a reference to a Vector object in one or both of these objects without affecting the performance of your web application. This is accomplished by marking the Vector COM component as both apartment and free-threaded, aggregating the Free-Threaded Marshaler. This component was developed with VC++ 6.0 and ATL 3.0 for the best performance possible.
Download the 76k zip file containing the DLL, source code, samples and documentation.