return  raiserror

Chapter 14: Using Batches and Control-of-Flow Language

print

The print keyword, used in the previous example, displays a user-defined message or the contents of a local variable on the user’s screen. The local variable must be declared within the same batch or procedure in which it is used. The message itself can be up to 255 bytes long.

The syntax is:

print {format_string | @local_variable | 
          @@global_variable} [,arg_list] 

For example:

if exists (select postalcode from authors 
   where postalcode = "94705") 
print "Berkeley author" 

Here is how to use print to display the contents of a local variable:

declare @msg char(50) 
select @msg = "What’s up, doc?" 
print @msg 

print recognizes placeholders in the character string to be printed out. Format strings can contain up to 20 unique placeholders in any order. These placeholders are replaced with the formatted contents of any arguments that follow format_string when the text of the message is sent to the client.

To allow reordering of the arguments when format strings are translated to a language with a different grammatical structure, the placeholders are numbered. A placeholder for an argument appears in this format: %nn!. The components are a percent sign, followed by an integer from 1 to 20, followed by an exclamation point. The integer represents the placeholder position in the string in the original language. “%1!” is the first argument in the original version, “%2!” is the second argument, and so on. Indicating the position of the argument in this way makes it possible to translate correctly even when the order in which the arguments appear in the target language is different from their order in the source language.

For example, assume the following is an English message:

%1! is not allowed in %2!. 

The German version of this message is:

%1! ist in %2! nicht zulässig.

The Japanese version of the message is:

Figure 14-1: Japanese message

Figure 15-1 shows a Japanese phrase, containing the characters “%1!” in different places in the phrase. In this example, “%1!” in all three languages represents the same argument, and “%2!” also represents a single argument in all three languages. This example shows the reordering of the arguments that is sometimes necessary in the translated form.

You cannot skip placeholder numbers when using placeholders in a format string, although placeholders do not have to be used in numerical order. For example, you cannot have placeholders 1 and 3 in a format string without having placeholder 2 in the same string.

The optional arg_list can be a series of either variables or constants. An argument can be any datatype except text or image; it is converted to the char datatype before it is included in the final message. If no argument list is provided, the format string must be the message to be printed, without any placeholders.

The maximum output string length of format_string plus all arguments after substitution is 512 bytes.





Copyright © 2005. Sybase Inc. All rights reserved. raiserror

View this book as PDF