asp.net pdf viewer control c# : How to make a thumbnail from pdf control software utility azure windows winforms visual studio sg24730116-part1649

Chapter 3. Application development with PHP 
145
3.5  Conclusion
PHP allows rapid Web application development and DB2 9 allows easy 
manipulation and storage of XML data, plus the capability to perform traditional 
relational database operations as well. 
There are simply far too many interesting PHP application development topics to 
discuss in this chapter. We hope that the various references and working 
application examples provided in this chapter have given you some ideas about 
using the framework with DB2 Express-C to develop your next database driven 
Web application. 
As the volume of XML data generated and used continues to grow in the years to 
come, easy interoperability between disparate systems seems closer than ever.   
The XCS will be available to enable developers of all skill levels to quickly and 
easily create the applications that will allow these systems to talk the common 
language of XML.  An IBM DB2 9 implementation of the XCS further combines 
powerful XML storage and XQuery technologies with a world-class relational 
database management system.
Be sure to consult “Related publications” on page 321 for additional reading 
material, and also be sure to download and try the application code discussed in 
this chapter.
How to make a thumbnail from pdf - Draw thumbnail images for PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
pdf thumbnail viewer; pdf preview thumbnail
How to make a thumbnail from pdf - VB.NET PDF Thumbnail Create SDK: Draw thumbnail images for PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
how to create a thumbnail of a pdf document; .pdf printing in thumbnail size
146
DB2 Express-C: The Developer Handbook for XML, PHP, C/C++, Java, and .NET
How to C#: Set Image Thumbnail in C#.NET
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB.NET PowerPoint, VB.NET Tiff, VB.NET Imaging, VB.NET OCR, VB Thumbnail item. Make the ToolBox view show.
pdf files thumbnail preview; pdf thumbnail fix
VB.NET Image: Program for Creating Thumbnail from Documents and
to create thumbnail from multiple document and image formats, such as PDF, TIFF, GIF, BMP When applying it to thumbnail creation, you may make sure that
how to show pdf thumbnails in; how to view pdf thumbnails in
© Copyright IBM Corp. August 2006. All rights reserved.
147
Chapter 4.
Application development 
with C/C++
In this chapter, we discuss:
 How to set up the environment to build a C/C++ application
 The fundamentals of using embedded SQL 
 How to set up the environment to build a CLI application
 The fundamentals of using the Call Level Interface (CLI)
 Using XML
4
How to C#: Quick to Start Using XImage.Raster
Make the ToolBox view show. To make the ThumbnailView connect to the ImageView, add the following code to the Form Initialize method.
enable pdf thumbnails in; enable pdf thumbnail preview
How to C#: Create a Winforms Control
Tiff Edit. Image Thumbnail. Image Save. Advanced Save Options. Save Image. Image Viewer. VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel Make the ToolBox view
pdf files thumbnails; generate pdf thumbnail c#
148
DB2 Express-C: The Developer Handbook for XML, PHP, C/C++, Java, and .NET
4.1  Overview
Applications written in the C/C++ programming language can access and 
manipulate data in a DB2 database using embedded SQL or through the DB2 
Call Level Interface (CLI). 
Embedded SQL statements in an application can either be of static or dynamic 
type. If the complete SQL statement and all database objects accessed within 
the statement are known prior to compile time, then it can be written as a static 
SQL statement. Otherwise, if the complete SQL statement or any database 
objects accessed within the statement are not known until runtime, then it must 
be written as a dynamic SQL statement. Using embedded SQL in an application 
requires a precompiler to create its associated package in the database. A 
package is a database object and is needed for processing because it holds the 
optimized form of an SQL statement. 
The DB2 Call Level Interface is an SQL interface that C/C++ applications can 
use to interact with DB2. The interface follows the ISO CLI and Microsoft's Open 
Database Connectivity (ODBC) standard. In addition, it provides some useful 
DB2 Application Programming Interfaces (APIs). Writing C/C++ code to make 
use of the CLI interface is an alternative to using embedded dynamic SQL.
Whether a C/C++ application uses embedded static SQL, embedded dynamic 
SQL, or the CLI interface is dependent on several factors. If database statistics 
do not change much, programs can run faster using embedded static SQL 
because source files are precompiled and SQL statements do not need to be 
prepared at runtime. However, if database statistics change often, programs can 
run faster using embedded dynamic SQL because it uses current database 
statistics during runtime. If the application wants to make use of dynamic SQL 
processing, or the application will run against different database products, then 
using the CLI interface to access DB2 can be the best approach. This is because 
you do not need to precompile CLI applications, and, hence, there are no 
application bind files that need to be bound to the database. Note that it is 
possible for an application to use both embedded static SQL and the CLI 
interface (which runs dynamic SQL) by writing a CLI application with static SQL 
modules. You need to take all these factors into consideration when coding a 
C/C++ application to interact with DB2. 
4.1.1  C/C++ development environment setup
Developing C/C++ applications with the DB2 product family requires the DB2 
Application Development Client (which is part of the DB2 Client in V9) and a 
supported C/C++ compiler. 
VB.NET Image: Codings for Image Filter Processing with .NET Image
If you have a photograph and you want to blur it a little bit to make it obscure, this component SDK will also meet your requirement.
html display pdf thumbnail; pdf reader thumbnails
VB.NET Image: Visual Basic .NET Guide to Draw Text on Image in .
Make sure you have put the sample jpeg image to disk C for successful We are dedicated to provide powerful & profession imaging controls, PDF document, image
pdf thumbnails in; show pdf thumbnails
Chapter 4. Application development with C/C++ 
149
Supported compilers
DB2 Express-C is currently supported on Linux and Windows platforms. At the 
time of writing, the following C/C++ compilers are supported.
Table 4-1   Supported C/C++ Compiler versions
For the latest information about the supported C/C++ compiler versions, refer to 
the DB2 Application Development Web site at:
http://www.ibm.com/software/data/db2/udb/ad/ 
Setting up the C/C++ environment
To set up the C/C++ environment, follow these steps:
1. Check C/C++ compiler
Ensure a supported C/C++ compiler is installed on a DB2 Express-C 
supported platform. Check Table 4-1 for a list of supported compiler versions. 
Refer to the compiler documentation for installation and usage instructions.
2. Check DB2 installation
Ensure the development machine has either DB2 Express-C installed (if the 
database will be accessed locally) or at least the DB2 Application 
Development Client (if accessing the database remotely). This ensures you 
have the necessary precompilers and static libraries to develop C/C++ 
programs. If a DB2 client is installed, ensure that the client machine can 
connect successfully to the remote server. 
3. Check Windows environment (if applicable)
On Windows development machines, ensure that the INCLUDE environment 
variable contains %DB2PATH%\INCLUDE as the first directory ahead of any 
Microsoft Platform SDK include directories. If this is not the case, you can do 
the following:
a. Modify the INCLUDE variable at a command prompt by running the 
command: set INCLUDE=%DB2PATH%\include;%INCLUDE%
Platform
Language
Supported compiler versions
Linux
C
GNU/Linux gcc Versions 2.95.3 and 2.96 
Linux 
C++
GNU/Linux g++ Versions 2.95.3 and 2.96 
Windows
C/C++
Microsoft Visual C++® Version 6.0
Microsoft Visual C++ .NET 
Intel® C++ Compiler for 32-bit applications Version 6 or 
later 
VB.NET Image: How to Generate Freehand Annotation Through VB.NET
This VB.NET annotation library helps you to make annotations with graphics and text line annotation on different images and documents, such as PDF, TIFF, PNG
can't view pdf thumbnails; generate pdf thumbnails
VB.NET TIFF: How to Compress TIFF File in a VB.NET Imaging
transmission. Under this condition, you may need to make the source TIFF file smaller by using proper image compression methods.
enable pdf thumbnails; how to make a thumbnail of a pdf
150
DB2 Express-C: The Developer Handbook for XML, PHP, C/C++, Java, and .NET
b. For development using Visual C++, modify the INCLUDE environment 
variable in the vcvars32.bat file. Move the %INCLUDE% portion to the 
beginning of the list of Visual C++ directories. 
4.2  Building a C/C++ application using embedded SQL
The steps involved in building a C/C++ application with embedded SQL are: 
1. Create C/C++ source files containing programs with embedded SQL 
statements. The extension of a source file is dependent on the platform and 
host language (C or C++). The possible file extensions are discussed in 4.3.2, 
“Precompiler source file extensions” on page 153.
2. Connect to the database, and precompile each source file using the DB2 
PREP or PRECOMPILE command. 
Depending on the file extension, either the C or C++ precompiler is invoked. 
The precompiler generates modified source files containing C/C++ language 
calls for the SQL statements. Depending on the options specified, packages 
corresponding to the embedded SQL statements in the source files can be 
created in the database, or bind files containing information about how to 
create the packages can be produced.
3. Compile the modified source files (and other files without SQL statements) 
using the C compiler. 
4. Using the object files created from the compilation, link the files with DB2 
UDB and C libraries to produce an executable program.
5. If packages were not created at precompile time (or if a different database is 
to be accessed) and bind files were created, the bind files are bound against 
the database.
6. Run the application.
For our example, assume we finished our C inventory program named 
inventory.sqc on a Windows system using Visual C++. To precompile the 
program, we can run the following statement shown in Example 4-1.
Example 4-1   Output from running the PREP command
db2 prep inventory.sqc
LINE    MESSAGES FOR inventory.sqc
-------------------------------------------------------------------
SQL0060W  The "C" precompiler is in progress.
SQL0091W  Precompilation or binding was ended with "0"
errors and "0" warnings.
.NET Imaging SDK | Online Tutorials in C#.NET
imaging SDK & add-ons to make your applications easier & Redact Documents or Images; Create Thumbnail; Generate Barcodes PDF Reader; Encode & Decode JBIG 2 Files;
pdf thumbnails; pdf thumbnail creator
C# Image: How to Add Antique & Vintage Effect to Image, Photo
is widely used in modern photo editors, which can easily make source image are dedicated to provide powerful & profession imaging controls, PDF document, tiff
cannot view pdf thumbnails in; create thumbnail from pdf
Chapter 4. Application development with C/C++ 
151
This will produce a modified source file named inventory.c and a package in the 
database. 
Alternatively, we can create a bind file and later bind the file to manually create a 
package. This is known as 
deferred binding
. We can accomplish this by using 
the BINDFILE option in the PRECOMPILE command.
Example 4-2   Basic statements to create a bind file and package
db2 prep inventory.sqc BINDFILE
db2 bind inventory.bnd
After precompiling, we need to compile the modified source file. We can do this 
on the Windows system by running the command: 
cl -Zi -Od -c -W2 inventory.c
This produces an object file named inventory.obj. We can then create an 
executable file named inventory.exe by running the command:
link -debug -out:inventory.exe inventory.obj db2api.lib
Depending on your compiler and the options you set, the commands for 
compiling and linking will be different. 
4.2.1  Host variables and parameter markers
In a static SQL statement, the complete SQL statement along with the type and 
length of the data requested is known at precompile time. The only missing 
information is the actual data values for the SQL statement. Acting as 
placeholders for the missing data, host variables need to be defined by the 
application to represent the remaining information in the SQL statement. Host 
variables are represented by prefixing a colon (:) in front of the variable name.
For a dynamic SQL statement, parameter markers are represented as a question 
mark (?) for any variable information in an SQL statement. 
4.3  A simple C inventory program using embedded SQL
To illustrate the basic fundamentals of building a C/C++ application, let us 
develop a simple C inventory program for a company to store inventory 
information about its products, and the associated quantity and location of each 
product.
152
DB2 Express-C: The Developer Handbook for XML, PHP, C/C++, Java, and .NET
For simplicity, we work with a single table to manage the inventory for the 
company. You need to create the SAMPLE database provided with DB2 
Express-C for this program, because it will interact with the INVENTORY table. If 
the database does not exist, refer to Chapter 1, “DB2 application development 
overview” on page 1 for steps about how to create the database. 
The application interacts with the user to perform the following operations:
 Enter a new product:
– New products need to be entered into the database. For a new product, its 
product ID/barcode, quantity on hand, and location information need to be 
added to the INVENTORY table.
– An error will occur if the product already exists in the database.
 Update quantity/Update location:
– Any changes in the quantity or location of a product need to be reflected in 
the table. 
– An error will occur if the product does not exist in the database.
 Get information about a part:
– The user can query the database for a product to get information about the 
quantity at hand or its location.
– An error will occur if the product does not exist in the database.
4.3.1  The INVENTORY table
The INVENTORY table in the SAMPLE database consists of three columns named 
PID, QUANTITY, and LOCATION. They store the ID/barcode, quantity on hand, 
and the location of a product. The PID column is the unique identifier for a 
product and must be distinct within the table. By default, the INVENTORY table 
in the SAMPLE database is populated with the records shown in Example 4-3.
Example 4-3   Sample data from the INVENTORY table
PID        QUANTITY    LOCATION
---------- ----------- -----------
100-100-01           5 -
100-101-01          25 Store
100-103-01          55 Store
100-201-01          99 Warehouse
Chapter 4. Application development with C/C++ 
153
4.3.2  Precompiler source file extensions
To start off, we need to give the C program the appropriate file extension, which 
the precompiler can recognize. C/C++ precompilers are needed to convert 
embedded SQL statements in each C/C++ source file to DB2 Runtime API calls 
to the DB2 engine. 
Unless otherwise specified by the BINDFILE option, a package is generated in 
the target database during precompile time and is needed for SQL to be 
executed. A 
package
is a database object containing sections, which correspond 
to embedded SQL statements in a source program module. A section contains a 
compiled/optimized SQL statement. 
The precompiler can optionally defer the creation of a package and create a bind 
file, which contains all the information needed to create a package. To create a 
package, the bind file will need to later be manually bound to the database. This 
is known as 
deferred binding
. Deferred binding provides more flexibility because 
applications only need to be precompiled once (without a package being 
created), but can be bound against multiple databases later to create a package 
using the one bind file. This means the same application can access several 
databases, instead of just the one database it was precompiled against.
Once a package is created, optimizer access plans are created for static 
embedded SQL statements from the current database statistics during bind time. 
Dynamic embedded SQL statements will get an access plan created during 
runtime.
Table 4-2 lists the C/C++ source file extensions required by the precompiler, 
along with the file extensions given to the modified source output files.
Table 4-2   Precompiler file extensions
If we name our example C program inventory.sqc, and precompile the program 
once it is finished, this produces a modified source file with the file extension of 
.c. The OUTPUT option can be specified in the PREP/PRECOMPILE command 
to override the name of the modified source file. 
Source file extension 
(input)
Modified source file 
extension (output)
C (Windows/Linux)
.sqc
.c
C++ (Linux)
.sqC
.C
C++ (Windows)
.sqx
.cxx
154
DB2 Express-C: The Developer Handbook for XML, PHP, C/C++, Java, and .NET
4.3.3  Inventory program code template
We start off with a simple code skeleton of the application (see Example 4-5 on 
page 155). This C program prompts the user for an inventory operation and calls 
the appropriate functions to insert (add_product()), update (update_product()), 
or perform queries (query_update()) against the INVENTORY table in the SAMPLE 
database. Applications can be written to contain both static and dynamic 
embedded SQL statements. For demonstration purposes, this application 
contains both types.
Example 4-4   Code template of inventory.sqc
/******************************************************
** Source File Name: inventory.sqc
**
** This simple C program will manage the inventory of
** products for a company.
**
*******************************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void add_product(void);
void update_product(void);
void query_product(void);
main()
{
int option;
while(1){
printf("-------------------------------------------------\n");
printf(" SIMPLE INVENTORY MANAGEMENT SYSTEM \n\n");
printf(" 1. Add New Product                              \n");
printf(" 2. Update Product Info (Quantity or Location)   \n");
printf(" 3. Query Product                                \n");
printf(" 4. Exit                                 \n\n");
printf(" Enter option: ");
scanf("%d", &option);
switch(option) {
case 1:add_product();
break;
case 2:update_product();
Documents you may be interested
Documents you may be interested