pdf viewer dll for c# : Adding images to a pdf document control Library system azure .net html console postgresql-9.4-A4113-part2739

Chapter 40. PL/pgSQL - SQL Procedural Language
WHEN division_by_zero THEN
RAISE NOTICE ’caught division_by_zero’;
RETURN x;
END;
When control reaches the assignment to
y
,it will fail with a
division_by_zero
error. This will be
caught by the
EXCEPTION
clause. Thevalue returnedin the
RETURN
statement willbetheincremented
value of
x
,but the effects of the
UPDATE
commandwill have beenrolled back. The
INSERT
command
preceding the block is not rolled back, however, so the end result is that the database contains
Tom
Jones
not
Joe Jones
.
Tip: Ablock containingan
EXCEPTION
clauseis significantly moreexpensivetoenter and exit than
ablock without one. Therefore, don’t use
EXCEPTION
without need.
Example 40-2. Exceptions with
UPDATE
/
INSERT
This example uses exception handling to perform either
UPDATE
or
INSERT
,as appropriate:
CREATE TABLE db (a INT PRIMARY KEY, b TEXT);
CREATE FUNCTION merge_db(key INT, data TEXT) RETURNS VOID AS
$$
BEGIN
LOOP
-- first try to update the key
UPDATE db SET b = data WHERE a = key;
IF found THEN
RETURN;
END IF;
-- not there, so try to insert the key
-- if someone else inserts the same key concurrently,
-- we could get a unique-key failure
BEGIN
INSERT INTO db(a,b) VALUES (key, data);
RETURN;
EXCEPTION WHEN unique_violation THEN
-- Do nothing, and loop to try the UPDATE again.
END;
END LOOP;
END;
$$
LANGUAGE plpgsql;
SELECT merge_db(1, ’david’);
SELECT merge_db(1, ’dennis’);
This coding assumes the
unique_violation
error is caused by the
INSERT
,and not by, say, an
INSERT
in a trigger function on the table. It might also misbehave if there is more than one unique
index on the table, since it will retry the operation regardless of which index caused the error. More
safety could be had by using the features discussed next to check that the trapped error was the one
expected.
1058
Adding images to a pdf document - insert images into PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sample C# code to add image, picture, logo or digital photo into PDF document page using PDF page editor control
adding a png to a pdf; how to add an image to a pdf
Adding images to a pdf document - VB.NET PDF insert image library: insert images into PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide VB.NET Programmers How to Add Images in PDF Document
how to add a photo to a pdf document; how to add an image to a pdf file
Chapter 40. PL/pgSQL - SQL Procedural Language
40.6.6.1. Obtaining Information About an Error
Exception handlers frequently need to identify the specific error that occurred. There are two ways
to get information about the current exception in PL/pgSQL: special variables and the
GET STACKED
DIAGNOSTICS
command.
Within an exception handler, the special variable
SQLSTATE
contains the error code that corresponds
to the exception thatwas raised (refer to Table A-1 for a listof possible error codes). Thespecialvari-
able
SQLERRM
contains the error messageassociatedwith the exception. Thesevariables are undefined
outside exception handlers.
Within an exception handler, one may also retrieve information about the current exception by using
the
GET STACKED DIAGNOSTICS
command, which has the form:
GET STACKED DIAGNOSTICS
variable
{ = | := }
item
[ , ... ];
Each
item
is a key word identifying a status value to be assigned to the specified variable (which
should be of the right data type to receive it). The currently available status items are shown in Table
40-1.
Table 40-1. Error Diagnostics Values
Name
Type
Description
RETURNED_SQLSTATE
text
the SQLSTATE error code of
the exception
COLUMN_NAME
text
the name of the column related
to exception
CONSTRAINT_NAME
text
the name of the constraint
related to exception
PG_DATATYPE_NAME
text
the name of the data type
related to exception
MESSAGE_TEXT
text
the text of the exception’s
primarymessage
TABLE_NAME
text
the name of the table related to
exception
SCHEMA_NAME
text
the name of the schema related
to exception
PG_EXCEPTION_DETAIL
text
the text of the exception’s detail
message, if any
PG_EXCEPTION_HINT
text
the text of the exception’s hint
message, if any
PG_EXCEPTION_CONTEXT
text
line(s) of text describing the
call stack
If the exception did not set a value for an item, an empty string will be returned.
Here is an example:
DECLARE
text_var1 text;
text_var2 text;
text_var3 text;
BEGIN
1059
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
DLLs for Adding Page into PDF Document in VB.NET Class. Add necessary references: RasterEdge.Imaging.Basic.dll. RasterEdge.Imaging.Basic.Codec.dll.
how to add picture to pdf; how to add image to pdf
VB.NET PDF Library SDK to view, edit, convert, process PDF file
Feel free to define text or images on PDF document and extract accordingly. Capable of adding PDF file navigation features to your VB.NET program.
adding image to pdf; how to add an image to a pdf in preview
Chapter 40. PL/pgSQL - SQL Procedural Language
-- some processing which might cause an exception
...
EXCEPTION WHEN OTHERS THEN
GET STACKED DIAGNOSTICS text_var1 = MESSAGE_TEXT,
text_var2 = PG_EXCEPTION_DETAIL,
text_var3 = PG_EXCEPTION_HINT;
END;
40.6.7. Obtaining Current Execution Information
The
GET [ CURRENT ] DIAGNOSTICS
command retrieves information about current execution
state (whereas the
GET STACKED DIAGNOSTICS
command discussed above reports information
about the execution state as of a previous error). This command has the form:
GET [ CURRENT ] DIAGNOSTICS
variable
{ = | := }
item
[ , ... ];
Currently only one information item is supported. Status item
PG_CONTEXT
will return a text string
with line(s) of text describing the call stack. The first line refers to the current function and currently
executing
GET DIAGNOSTICS
command. The second and any subsequent lines refer to calling func-
tions further up the call stack. For example:
CREATE OR REPLACE FUNCTION outer_func() RETURNS integer AS $$
BEGIN
RETURN inner_func();
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION inner_func() RETURNS integer AS $$
DECLARE
stack text;
BEGIN
GET DIAGNOSTICS stack = PG_CONTEXT;
RAISE NOTICE E’--- Call Stack ---\n%’, stack;
RETURN 1;
END;
$$ LANGUAGE plpgsql;
SELECT outer_func();
NOTICE:
--- Call Stack ---
PL/pgSQL function inner_func() line 5 at GET DIAGNOSTICS
PL/pgSQL function outer_func() line 3 at RETURN
CONTEXT:
PL/pgSQL function outer_func() line 3 at RETURN
outer_func
------------
1
(1 row)
1060
C# PDF insert text Library: insert text into PDF content in C#.net
Library. Best and multifunctional Visual Studio .NET PDF SDK supports adding and inserting text content to adobe PDF document in C#.
add jpg signature to pdf; add photo to pdf preview
C# PDF Page Insert Library: insert pages into PDF file in C#.net
This C# .NET PDF document page inserting & adding component from RasterEdge is written in managed C# code and designed particularly for .NET class applications
how to add a picture to a pdf file; how to add an image to a pdf in reader
Chapter 40. PL/pgSQL - SQL Procedural Language
40.7. Cursors
Rather than executing a whole query at once, it is possible to set up a cursor that encapsulates the
query, and then read the query result a few rows at a time. One reason for doing this is to avoid
memory overrun when the result contains a large number of rows. (However, PL/pgSQL users do
not normally need to worry about that, since
FOR
loops automatically use a cursor internally to avoid
memory problems.) A more interesting usage is to return a reference to a cursor that a function has
created, allowing the caller to read the rows. This provides an efficient way to return large row sets
from functions.
40.7.1. Declaring Cursor Variables
All access to cursors in PL/pgSQL goes through cursor variables, which are always of the special
data type
refcursor
.One way to create a cursor variable is just to declare it as a variable of type
refcursor
.Another way is to use the cursor declaration syntax, which in general is:
name
[ [ NO ] SCROLL ] CURSOR [ (
arguments
) ] FOR
query
;
(
FOR
can be replaced by
IS
for Oracle compatibility.) If
SCROLL
is specified, the cursor will be
capable of scrolling backward;if
NO SCROLL
is specified, backwardfetches will be rejected;if neither
specification appears, it is query-dependent whether backward fetches will be allowed.
arguments
,
if specified, is a comma-separated list of pairs
name datatype
that define names to be replaced by
parameter values in the given query. The actual values to substitute for these names will be specified
later, when the cursor is opened.
Some examples:
DECLARE
curs1 refcursor;
curs2 CURSOR FOR SELECT
*
FROM tenk1;
curs3 CURSOR (key integer) FOR SELECT
*
FROM tenk1 WHERE unique1 = key;
All three of these variables have the data type
refcursor
,but the first can be used with any query,
while the second has a fully specified query already bound to it, and the last has a parameterized
query bound to it. (
key
will be replaced by an integer parameter value when the cursor is opened.)
The variable
curs1
is said to be unbound since it is not bound to any particular query.
40.7.2. Opening Cursors
Before a cursor can be used to retrieve rows, it must be opened. (This is the equivalent action to the
SQL command
DECLARE CURSOR
.) PL/pgSQL has three forms of the
OPEN
statement, two of which
use unbound cursor variables while the third uses a bound cursor variable.
Note: Bound cursor variables can also be used without explicitly opening the cursor, via the
FOR
statement described in Section 40.7.4.
40.7.2.1.
OPEN FOR query
OPEN
unbound_cursorvar
[ [ NO ] SCROLL ] FOR
query
;
1061
VB.NET Image: How to Draw Annotation on Doc Images with Image SDK
other image annotating tutorials besides adding annotation using PDF document, image to pdf files and converting, compressing and stroing images, documents and
add picture to pdf online; add png to pdf preview
C# PDF Library SDK to view, edit, convert, process PDF file for C#
protecting PDF file by adding password and digital signatures with C# sample code in .NET Class. Feel free to define text or images on PDF document and extract
add image to pdf preview; adding a jpg to a pdf
Chapter 40. PL/pgSQL - SQL Procedural Language
The cursor variable is opened and given the specified query to execute. The cursor cannot be open
already, and it must have been declared as anunboundcursor variable (that is, as asimple
refcursor
variable). The query must be a
SELECT
,or something else that returns rows (such as
EXPLAIN
). The
queryis treatedinthesamewayasother SQL commands inPL/pgSQL:PL/pgSQLvariablenames are
substituted, and the queryplan is cached for possible reuse. Whena PL/pgSQL variable is substituted
into the cursor query, the value that is substituted is the one it has atthe time of the
OPEN
;subsequent
changes to the variable will not affect the cursor’s behavior. The
SCROLL
and
NO SCROLL
options
have the same meanings as for a bound cursor.
An example:
OPEN curs1 FOR SELECT
*
FROM foo WHERE key = mykey;
40.7.2.2.
OPEN FOR EXECUTE
OPEN
unbound_cursorvar
[ [ NO ] SCROLL ] FOR EXECUTE
query_string
[ USING
expression
[, ... ] ];
The cursor variable is opened and given the specified query to execute. The cursor cannot be open
already, and it must have been declared as anunboundcursor variable (that is, as asimple
refcursor
variable). The query is specified as a stringexpression, in the same wayas in the
EXECUTE
command.
As usual, this gives flexibility so the query plan can vary from one run to the next (see Section
40.10.2), and it also means that variable substitution is not done on the command string. As with
EXECUTE
,parameter values can be inserted into the dynamic command via
USING
.The
SCROLL
and
NO SCROLL
options have the same meanings as for a bound cursor.
An example:
OPEN curs1 FOR EXECUTE ’SELECT
*
FROM ’ || quote_ident(tabname)
|| ’ WHERE col1 = $1’ USING keyvalue;
In this example, the table name is inserted into the query textually, so use of
quote_ident()
is
recommended to guard againstSQL injection. The comparisonvalue for
col1
is insertedviaa
USING
parameter, so it needs no quoting.
40.7.2.3. Opening a Bound Cursor
OPEN
bound_cursorvar
[ ( [
argument_name
:= ]
argument_value
[, ...] ) ];
This form of
OPEN
is usedtoopena cursor variable whosequerywas bound to it whenit was declared.
The cursor cannot be openalready. Alist of actualargument value expressions must appear if andonly
if the cursor was declared to take arguments. These values will be substitutedin the query.
The query plan for a bound cursor is always consideredcacheable; there is no equivalent of
EXECUTE
in thiscase. Notice that
SCROLL
and
NO SCROLL
cannot be specifiedin
OPEN
,as the cursor’s scrolling
behavior was already determined.
Argument values can be passed using either positional or named notation. In positional notation, all
arguments are specified in order. In named notation, each argument’s name is specified using
:=
to
separate it from the argument expression. Similar to calling functions, described in Section 4.3, it is
also allowed to mix positional and named notation.
Examples (these use the cursor declaration examples above):
1062
VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
page, you will find detailed guidance on creating, loading, merge and splitting PDF pages and Files, adding a page into PDF document, deleting unnecessary page
add jpg to pdf preview; adding an image to a pdf file
VB.NET PDF insert text library: insert text into PDF content in vb
Multifunctional Visual Studio .NET PDF SDK library supports adding text content to adobe PDF document in VB.NET WinForms and ASP.NET.
add a picture to a pdf; how to add an image to a pdf file in acrobat
Chapter 40. PL/pgSQL - SQL Procedural Language
OPEN curs2;
OPEN curs3(42);
OPEN curs3(key := 42);
Because variable substitutionis done ona boundcursor’s query, there are reallytwoways to pass val-
ues into the cursor:either with anexplicit argument to
OPEN
,or implicitlybyreferencing a PL/pgSQL
variable in the query. However, only variables declared before the bound cursor was declared will be
substituted into it. In either case the value to be passed is determined at the time of the
OPEN
.For
example, another way to get the same effect as the
curs3
example above is
DECLARE
key integer;
curs4 CURSOR FOR SELECT
*
FROM tenk1 WHERE unique1 = key;
BEGIN
key := 42;
OPEN curs4;
40.7.3. Using Cursors
Once a cursor has been opened, it can be manipulated with the statements described here.
These manipulations need not occur in the same function that opened the cursor to begin with. You
can return a
refcursor
value out of a function and let the caller operate on the cursor. (Internally, a
refcursor
value is simply the string name of a so-called portal containing the active query for the
cursor. This name can be passed around, assigned to other
refcursor
variables, and so on, without
disturbing the portal.)
All portals are implicitly closed at transaction end. Therefore a
refcursor
value is usable to refer-
ence an open cursor only until the end of the transaction.
40.7.3.1.
FETCH
FETCH [
direction
{ FROM | IN } ]
cursor
INTO
target
;
FETCH
retrieves the next row from the cursor into a target, which might be a row variable, a record
variable, or a comma-separated list of simple variables, just like
SELECT INTO
.If there is no next
row, the target is set to NULL(s). As with
SELECT INTO
,the special variable
FOUND
can be checked
to see whether a row was obtained or not.
The
direction
clause can be any of the variants allowed in the SQL FETCH command except the
ones that can fetch more than one row; namely, it can be
NEXT
,
PRIOR
,
FIRST
,
LAST
,
ABSOLUTE
count
,
RELATIVE count
,
FORWARD
,or
BACKWARD
.Omitting
direction
is the same as specify-
ing
NEXT
.
direction
values that require moving backward are likely to fail unless the cursor was
declared or opened with the
SCROLL
option.
cursor
must be the name of a
refcursor
variable that references an open cursor portal.
Examples:
FETCH curs1 INTO rowvar;
FETCH curs2 INTO foo, bar, baz;
1063
C# PDF Annotate Library: Draw, edit PDF annotation, markups in C#.
C#.NET: Add Text Box to PDF Document. Provide users with examples for adding text box to PDF and edit font size and color in text box field in C#.NET program.
how to add an image to a pdf in acrobat; acrobat insert image into pdf
Chapter 40. PL/pgSQL - SQL Procedural Language
FETCH LAST FROM curs3 INTO x, y;
FETCH RELATIVE -2 FROM curs4 INTO x;
40.7.3.2.
MOVE
MOVE [
direction
{ FROM | IN } ]
cursor
;
MOVE
repositions a cursor without retrieving any data.
MOVE
works exactly like the
FETCH
command,
except it only repositions the cursor and does not return the row moved to. As with
SELECT INTO
,
the special variable
FOUND
can be checked to see whether there was a next row to move to.
The
direction
clause can be any of the variants allowed in the SQL FETCH command, namely
NEXT
,
PRIOR
,
FIRST
,
LAST
,
ABSOLUTE count
,
RELATIVE count
,
ALL
,
FORWARD
[
count
|
ALL
],
or
BACKWARD
[
count
|
ALL
]. Omitting
direction
is the same as specifying
NEXT
.
direction
values that require moving backward are likely to fail unless the cursor was declared or opened with
the
SCROLL
option.
Examples:
MOVE curs1;
MOVE LAST FROM curs3;
MOVE RELATIVE -2 FROM curs4;
MOVE FORWARD 2 FROM curs4;
40.7.3.3.
UPDATE/DELETE WHERE CURRENT OF
UPDATE
table
SET ... WHERE CURRENT OF
cursor
;
DELETE FROM
table
WHERE CURRENT OF
cursor
;
When a cursor is positioned on a table row, that row can be updated or deleted using the cursor to
identify the row. There are restrictions on what the cursor’s query can be (in particular, no grouping)
and it’s best to use
FOR UPDATE
in the cursor. For more information see the DECLARE reference
page.
An example:
UPDATE foo SET dataval = myval WHERE CURRENT OF curs1;
40.7.3.4.
CLOSE
CLOSE
cursor
;
CLOSE
closes the portal underlying an open cursor. This can be used to release resources earlier than
end of transaction, or to free up the cursor variable to be opened again.
An example:
CLOSE curs1;
1064
Chapter 40. PL/pgSQL - SQL Procedural Language
40.7.3.5. Returning Cursors
PL/pgSQL functions canreturn cursors tothecaller. This is useful to returnmultiple rows or columns,
especially with very large result sets. To do this, the function opens the cursor and returns the cursor
name to the caller (or simply opens the cursor using a portal name specified by or otherwise known
to the caller). The caller can then fetch rows from the cursor. The cursor can be closed by the caller,
or it will be closed automatically when the transactioncloses.
The portalname used for a cursor can be specified by the programmer or automatically generated. To
specify a portal name, simply assign a string to the
refcursor
variable before opening it. The string
value of the
refcursor
variable will be usedby
OPEN
as the name of the underlyingportal. However,
if the
refcursor
variable is null,
OPEN
automatically generates a name that does not conflict with
any existing portal, and assigns it to the
refcursor
variable.
Note: A bound cursor variable is initialized to the string value representing its name, so that the
portal name is the same as the cursor variable name, unless the programmer overrides it by
assignment before opening the cursor. But an unbound cursor variable defaults to the null value
initially, so it will receive an automatically-generated unique name, unless overridden.
The following example shows one way a cursor name can be supplied by the caller:
CREATE TABLE test (col text);
INSERT INTO test VALUES (’123’);
CREATE FUNCTION reffunc(refcursor) RETURNS refcursor AS ’
BEGIN
OPEN $1 FOR SELECT col FROM test;
RETURN $1;
END;
’ LANGUAGE plpgsql;
BEGIN;
SELECT reffunc(’funccursor’);
FETCH ALL IN funccursor;
COMMIT;
The following example uses automatic cursor name generation:
CREATE FUNCTION reffunc2() RETURNS refcursor AS ’
DECLARE
ref refcursor;
BEGIN
OPEN ref FOR SELECT col FROM test;
RETURN ref;
END;
’ LANGUAGE plpgsql;
-- need to be in a transaction to use cursors.
BEGIN;
SELECT reffunc2();
1065
Chapter 40. PL/pgSQL - SQL Procedural Language
reffunc2
--------------------
<unnamed cursor 1>
(1 row)
FETCH ALL IN "<unnamed cursor 1>";
COMMIT;
The following example shows one way to return multiple cursors from a single function:
CREATE FUNCTION myfunc(refcursor, refcursor) RETURNS SETOF refcursor AS $$
BEGIN
OPEN $1 FOR SELECT
*
FROM table_1;
RETURN NEXT $1;
OPEN $2 FOR SELECT
*
FROM table_2;
RETURN NEXT $2;
END;
$$ LANGUAGE plpgsql;
-- need to be in a transaction to use cursors.
BEGIN;
SELECT
*
FROM myfunc(’a’, ’b’);
FETCH ALL FROM a;
FETCH ALL FROM b;
COMMIT;
40.7.4. Looping Through a Cursor’s Result
There is a variant of the
FOR
statement that allows iterating through the rows returned by a cursor.
The syntax is:
[ <<
label
>> ]
FOR
recordvar
IN
bound_cursorvar
[ ( [
argument_name
:= ]
argument_value
[, ...] ) ] LOOP
statements
END LOOP [
label
];
The cursor variable must have been bound to some query when it was declared, and it cannot be
open already. The
FOR
statement automatically opens the cursor, and it closes the cursor again when
the loop exits. A list of actual argument value expressions must appear if and only if the cursor was
declared to take arguments. These values will be substituted in the query, in just the same way as
during an
OPEN
(see Section 40.7.2.3).
The variable
recordvar
is automatically defined as type
record
andexists only inside theloop (any
existing definition of the variable name is ignored within the loop). Each row returned by the cursor
is successively assigned to this record variable and the loop body is executed.
1066
Chapter 40. PL/pgSQL - SQL Procedural Language
40.8. Errors and Messages
Use the
RAISE
statement to report messages and raise errors.
RAISE [
level
] ’
format
’ [,
expression
[, ... ]] [ USING
option
=
expression
[, ... ] ];
RAISE [
level
]
condition_name
[ USING
option
=
expression
[, ... ] ];
RAISE [
level
] SQLSTATE ’
sqlstate
’ [ USING
option
=
expression
[, ... ] ];
RAISE [
level
] USING
option
=
expression
[, ... ];
RAISE ;
The
level
option specifies the error severity. Allowed levels are
DEBUG
,
LOG
,
INFO
,
NOTICE
,
WARNING
,and
EXCEPTION
,with
EXCEPTION
being the default.
EXCEPTION
raises an error (which
normally aborts the current transaction); the other levels only generate messages of different priority
levels. Whether messages of a particular priority are reported to the client, written to the server log,
or both is controlled by the log_min_messages and client_min_messages configuration variables.
See Chapter 18 for more information.
After
level
if any, youcan write a
format
(which mustbe a simple stringliteral, notan expression).
The formatstringspecifies the error message texttobe reported. The formatstringcan be followed by
optional argument expressions to be inserted into the message. Inside the format string,
%
is replaced
by the string representation of the next optional argument’s value. Write
%%
to emit a literal
%
.
In this example, the value of
v_job_id
will replace the
%
in the string:
RAISE NOTICE ’Calling cs_create_job(%)’, v_job_id;
You can attach additional information to the error report by writing
USING
followed by
option
=
expression
items. Each
expression
can be any string-valued expression. The allowed
option
key words are:
MESSAGE
Sets the error message text. This option can’t beusedin the form of
RAISE
that includes a format
string before
USING
.
DETAIL
Supplies an error detail message.
HINT
Supplies a hint message.
ERRCODE
Specifies the error code (SQLSTATE) to report, either by condition name, as shownin Appendix
A, or directlyas a five-character SQLSTATE code.
COLUMN
CONSTRAINT
DATATYPE
TABLE
SCHEMA
Supplies the name of a related object.
This example will abort the transaction with the given error message and hint:
1067
Documents you may be interested
Documents you may be interested