| Preface |
|
xxiii | |
| Acknowledgments |
|
xxvii | |
| About the Authors |
|
xxix | |
|
|
|
|
On Your Marks ... Get Set ... Go!!! An Introduction to the Apache Derby and IBM Cloudscape Community |
|
|
1 | (24) |
|
|
|
1 | (4) |
|
If You're Not the Kind of Person Who Reads Introduction Chapters... |
|
|
3 | (2) |
|
Let Me Get This Straight, Apache Derby Is IBM Cloudscape? |
|
|
5 | (2) |
|
Development of the Apache Derby Database---Who Can Contribute and How? |
|
|
7 | (2) |
|
How Can IBM Sell a Product for Profit and Contribute the Same Product to the Open Source Community? |
|
|
9 | (1) |
|
How an Open Source Database Like Apache Derby Can Help |
|
|
10 | (2) |
|
Open Source Software from a Business Perspective |
|
|
10 | (1) |
|
Open Source Software from a Technical Perspective |
|
|
11 | (1) |
|
Why the Need for a Local Data Store? |
|
|
12 | (1) |
|
Why Use a Relational Database? |
|
|
13 | (2) |
|
How the Apache Derby Platform Can Help Your Business |
|
|
15 | (2) |
|
A High-Level View of the Apache Derby Database |
|
|
17 | (4) |
|
Details on SQL Support in Apache Derby and IBM Cloudscape |
|
|
19 | (2) |
|
The Apache Derby Components |
|
|
21 | (2) |
|
The Apache Derby Database Engine |
|
|
21 | (1) |
|
Apache Derby Network Server |
|
|
21 | (1) |
|
ij---The Apache Derby JDBC Scripting Tool |
|
|
22 | (1) |
|
Developing Apache Derby Applications |
|
|
23 | (2) |
|
|
|
|
Deployment Options for Apache Derby Databases |
|
|
25 | (12) |
|
Using the Embedded Framework for Apache Derby Applications |
|
|
25 | (7) |
|
Examples of the Embedded Framework for Apache Derby Applications |
|
|
27 | (4) |
|
Some Final Comments About the Embedded Framework for Apache Derby Applications |
|
|
31 | (1) |
|
Using the Server Framework for Apache Derby Applications |
|
|
32 | (5) |
|
Examples of the Server Framework for Apache Derby Applications |
|
|
33 | (4) |
|
|
|
37 | (12) |
|
|
|
37 | (1) |
|
|
|
37 | (8) |
|
Creating an Apache Derby Database |
|
|
39 | (2) |
|
Deleting an Apache Derby Database |
|
|
41 | (1) |
|
|
|
41 | (1) |
|
Additional Database Connection Options |
|
|
42 | (1) |
|
|
|
43 | (1) |
|
|
|
43 | (2) |
|
|
|
45 | (1) |
|
|
|
45 | (3) |
|
|
|
46 | (1) |
|
|
|
46 | (1) |
|
|
|
46 | (1) |
|
|
|
47 | (1) |
|
|
|
47 | (1) |
|
|
|
47 | (1) |
|
|
|
48 | (1) |
|
|
|
48 | (1) |
|
Installing Apache Derby and IBM Cloudscape on Windows |
|
|
49 | (26) |
|
Migration from Previous Versions of Cloudscape |
|
|
50 | (1) |
|
|
|
50 | (5) |
|
The Java Runtime Environment |
|
|
51 | (1) |
|
J Who? How Do I Set It Up? How Do I Know I've Got One? |
|
|
51 | (1) |
|
Checking the Version of the JRE on Your System |
|
|
52 | (1) |
|
Setting the PATH Environment Variable |
|
|
52 | (3) |
|
Using the Windows Installer to Install IBM Cloudscape on Windows---Attention Developers! |
|
|
55 | (8) |
|
IBM Cloudscape for Windows Installer Prerequisites |
|
|
57 | (1) |
|
Performing the Windows Installation |
|
|
57 | (5) |
|
Post-Installation Tasks for Graphical Installation Programs |
|
|
62 | (1) |
|
Installing Apache Derby or IBM Cloudscape on Windows Manually |
|
|
63 | (4) |
|
Creating and Setting the CLOUDSCAPE_INSTALL Environment Variable |
|
|
64 | (1) |
|
Setting the CLASSPATH Environment Variable |
|
|
65 | (2) |
|
Verifying the Installation |
|
|
67 | (3) |
|
Verifying a Database Installation |
|
|
67 | (1) |
|
Verifying a Network Server Installation |
|
|
68 | (2) |
|
Troubleshooting an Installation |
|
|
70 | (2) |
|
Odds and Ends About Your Installation |
|
|
72 | (3) |
|
|
|
72 | (3) |
|
Installing Apache Derby and IBM Cloudscape on Linux |
|
|
75 | (26) |
|
Migration from Previous Versions of Cloudscape |
|
|
76 | (1) |
|
|
|
76 | (5) |
|
The Java Runtime Environment |
|
|
77 | (1) |
|
J Who? How Do I Set It Up? How Do I Know I've Got One? |
|
|
77 | (1) |
|
Checking the Version of the JRE on Your System |
|
|
78 | (1) |
|
Setting the PATH Environment Variable |
|
|
78 | (3) |
|
Using the Linux Installer to Install IBM Cloudscape on Linux---Attention Developers! |
|
|
81 | (9) |
|
IBM Cloudscape for Linux Installer Prerequisites |
|
|
82 | (1) |
|
Performing the Linux Installation |
|
|
83 | (7) |
|
Post-Installation Tasks for Graphical Installation Programs |
|
|
90 | (1) |
|
Installing Apache Derby or IBM Cloudscape on Linux Manually |
|
|
90 | (3) |
|
Creating and Setting the CLOUDSCAPE_INSTALL Environment Variable |
|
|
90 | (1) |
|
Setting the CLASSPATH Environment Variable |
|
|
91 | (2) |
|
Verifying the Installation |
|
|
93 | (3) |
|
Verifying a Database Installation |
|
|
93 | (1) |
|
Verifying a Network Server Installation |
|
|
93 | (3) |
|
Troubleshooting an Installation |
|
|
96 | (2) |
|
Odds and Ends About Your Installation |
|
|
98 | (3) |
|
|
|
98 | (3) |
|
Managing an Apache Derby Database |
|
|
101 | (20) |
|
Disaster Prevention and Recovery |
|
|
101 | (4) |
|
|
|
101 | (1) |
|
Online Backup with Read Access (Built-in Copy) |
|
|
102 | (1) |
|
Online Backup with Read Access (Native Copy) |
|
|
103 | (1) |
|
|
|
104 | (1) |
|
Restoring a Database from a Backup Image |
|
|
105 | (1) |
|
|
|
105 | (7) |
|
|
|
106 | (1) |
|
Importing Data into a Table |
|
|
107 | (1) |
|
Importing Data into a Subset of Columns in a Table |
|
|
108 | (1) |
|
|
|
109 | (1) |
|
Exporting Data from a Single Table |
|
|
109 | (1) |
|
Exporting Data from the Results of a SELECT Statement |
|
|
110 | (2) |
|
Database Maintenance and Tuning |
|
|
112 | (7) |
|
Checking Database Consistency |
|
|
112 | (1) |
|
Investigating Performance Issues with Database Statistics |
|
|
113 | (1) |
|
Gathering Runtime Statistics |
|
|
113 | (2) |
|
Adding Timing to Runtime Statistics |
|
|
115 | (4) |
|
|
|
119 | (1) |
|
|
|
119 | (2) |
|
|
|
121 | (14) |
|
|
|
121 | (1) |
|
|
|
121 | (2) |
|
|
|
123 | (3) |
|
|
|
125 | (1) |
|
|
|
126 | (1) |
|
|
|
126 | (6) |
|
|
|
127 | (1) |
|
LDAP Directory Service Authentication |
|
|
128 | (1) |
|
User-Defined Authentication |
|
|
129 | (1) |
|
|
|
130 | (1) |
|
|
|
130 | (1) |
|
|
|
131 | (1) |
|
|
|
132 | (1) |
|
|
|
132 | (2) |
|
|
|
133 | (1) |
|
|
|
133 | (1) |
|
|
|
134 | (1) |
|
|
|
135 | (98) |
|
|
|
135 | (1) |
|
Your Momma Loves Drama Database |
|
|
136 | (1) |
|
Data Definition Language (DDL) |
|
|
137 | (5) |
|
|
|
139 | (1) |
|
|
|
139 | (1) |
|
|
|
139 | (1) |
|
|
|
140 | (1) |
|
|
|
140 | (1) |
|
|
|
140 | (1) |
|
|
|
141 | (1) |
|
|
|
141 | (1) |
|
|
|
141 | (1) |
|
Decimal (Decimal/Numeric) |
|
|
142 | (1) |
|
Single-Precision Floating-Point (Real/Float) |
|
|
142 | (1) |
|
Double-Precision Floating-Point (Double/Float) |
|
|
142 | (1) |
|
|
|
142 | (2) |
|
Fixed-Length Character String (Char) |
|
|
143 | (1) |
|
Varying-Length Character String (Varchar) |
|
|
143 | (1) |
|
Varying-Length Long Character String (Long Varchar) |
|
|
143 | (1) |
|
Character String Considerations |
|
|
143 | (1) |
|
|
|
144 | (1) |
|
|
|
144 | (1) |
|
Character Large Object (CLOB) |
|
|
145 | (1) |
|
Binary Large Object (BLOB) |
|
|
145 | (1) |
|
|
|
145 | (2) |
|
|
|
146 | (1) |
|
|
|
146 | (1) |
|
Timestamp String (Timestamp) |
|
|
147 | (1) |
|
|
|
147 | (1) |
|
Sample Table Create Statements |
|
|
147 | (1) |
|
Additional Data Type Modifiers |
|
|
148 | (5) |
|
|
|
149 | (1) |
|
|
|
149 | (2) |
|
|
|
151 | (2) |
|
Identity_Val_Local Function |
|
|
153 | (1) |
|
|
|
153 | (2) |
|
|
|
155 | (1) |
|
Adding a Column to a Table |
|
|
155 | (1) |
|
Adding a Constraint to a Table |
|
|
155 | (1) |
|
Dropping an Existing Constraint on a Table |
|
|
156 | (1) |
|
Altering the Size of a Varchar Column |
|
|
156 | (1) |
|
Overriding Row-Level Locking |
|
|
156 | (1) |
|
|
|
156 | (1) |
|
|
|
156 | (1) |
|
|
|
157 | (1) |
|
|
|
157 | (4) |
|
|
|
158 | (2) |
|
|
|
160 | (1) |
|
|
|
161 | (1) |
|
|
|
161 | (2) |
|
|
|
162 | (1) |
|
Modifying Check Constraints |
|
|
162 | (1) |
|
|
|
163 | (2) |
|
|
|
165 | (2) |
|
|
|
166 | (1) |
|
|
|
167 | (1) |
|
|
|
167 | (1) |
|
|
|
167 | (3) |
|
Unique Index and Non-Unique Index |
|
|
167 | (1) |
|
Referential Integrity and Indexes |
|
|
168 | (1) |
|
|
|
168 | (1) |
|
General Indexing Guidelines |
|
|
168 | (1) |
|
|
|
169 | (1) |
|
|
|
169 | (1) |
|
|
|
169 | (1) |
|
|
|
170 | (43) |
|
Retrieving an Entire Table |
|
|
170 | (1) |
|
Projecting Columns from a Table |
|
|
171 | (1) |
|
Changing the Order of the Columns |
|
|
172 | (1) |
|
Restricting the Rows That Are Returned from a Table |
|
|
173 | (1) |
|
Restricting Rows Using Multiple Conditions |
|
|
173 | (1) |
|
Searching for String Patterns |
|
|
174 | (1) |
|
Searching for Data in Ranges |
|
|
175 | (1) |
|
Searching for a Set of Values |
|
|
176 | (1) |
|
Searching for Null Values |
|
|
176 | (1) |
|
Searching for Negative Conditions |
|
|
177 | (1) |
|
Selecting Columns from Multiple Tables |
|
|
178 | (1) |
|
|
|
179 | (2) |
|
|
|
181 | (2) |
|
|
|
183 | (1) |
|
|
|
184 | (2) |
|
|
|
186 | (1) |
|
|
|
186 | (1) |
|
|
|
187 | (2) |
|
|
|
189 | (2) |
|
|
|
191 | (1) |
|
|
|
191 | (2) |
|
|
|
193 | (1) |
|
|
|
194 | (1) |
|
Restricting Results with Column Functions |
|
|
195 | (1) |
|
|
|
196 | (2) |
|
|
|
198 | (4) |
|
|
|
202 | (2) |
|
|
|
204 | (1) |
|
|
|
205 | (1) |
|
|
|
206 | (3) |
|
|
|
209 | (3) |
|
|
|
212 | (1) |
|
|
|
213 | (8) |
|
|
|
213 | (2) |
|
Inserting Data into Specific Columns |
|
|
215 | (1) |
|
|
|
215 | (1) |
|
Inserting a Set of Values |
|
|
216 | (1) |
|
|
|
217 | (2) |
|
|
|
219 | (2) |
|
|
|
221 | (11) |
|
|
|
221 | (2) |
|
|
|
223 | (1) |
|
|
|
224 | (1) |
|
|
|
225 | (1) |
|
|
|
225 | (1) |
|
Trigger Example---Updating Other Tables |
|
|
226 | (2) |
|
Trigger Example---Changing Inserted Values |
|
|
228 | (1) |
|
|
|
229 | (1) |
|
|
|
230 | (1) |
|
|
|
231 | (1) |
|
|
|
232 | (1) |
|
|
|
|
Developing Apache Derby Applications with JDBC |
|
|
233 | (74) |
|
|
|
233 | (1) |
|
|
|
234 | (1) |
|
|
|
235 | (1) |
|
Using Embedded JDBC Drivers |
|
|
236 | (1) |
|
IBM DB2 JDBC Universal Driver for Derby |
|
|
237 | (1) |
|
Establishing a Database Connection |
|
|
238 | (2) |
|
Connecting with DB2 JDBC Drivers |
|
|
240 | (4) |
|
|
|
240 | (1) |
|
|
|
241 | (1) |
|
|
|
241 | (1) |
|
|
|
241 | (1) |
|
Universal Driver Attributes |
|
|
241 | (3) |
|
|
|
244 | (2) |
|
resultSetType and resultSetCurrency |
|
|
244 | (1) |
|
|
|
245 | (1) |
|
Additional Statement Options |
|
|
245 | (1) |
|
|
|
246 | (2) |
|
|
|
248 | (3) |
|
|
|
248 | (1) |
|
|
|
249 | (1) |
|
|
|
249 | (1) |
|
|
|
250 | (1) |
|
SQLWarnings Versus SQLExceptions |
|
|
251 | (1) |
|
|
|
252 | (6) |
|
|
|
258 | (6) |
|
|
|
259 | (1) |
|
|
|
260 | (1) |
|
|
|
260 | (2) |
|
|
|
262 | (1) |
|
getBlob() and getClob() Usage |
|
|
262 | (2) |
|
Dynamically Determining Result Sets |
|
|
264 | (4) |
|
|
|
268 | (4) |
|
AUTOCOMMIT, COMMITs, and ROLLBACKs |
|
|
272 | (1) |
|
|
|
273 | (1) |
|
Using Result Sets to Modify Data |
|
|
274 | (4) |
|
|
|
278 | (1) |
|
Inserting and Updating Large Objects |
|
|
279 | (2) |
|
|
|
281 | (7) |
|
Creating a Stored Procedure |
|
|
281 | (1) |
|
Defining a Stored Procedure |
|
|
281 | (1) |
|
Calling a Stored Procedure |
|
|
282 | (2) |
|
|
|
284 | (3) |
|
Trapping Errors in Stored Procedures and Functions |
|
|
287 | (1) |
|
|
|
288 | (1) |
|
|
|
288 | (11) |
|
|
|
291 | (1) |
|
|
|
292 | (1) |
|
Using SQL Within a User-Defined Function |
|
|
293 | (6) |
|
|
|
299 | (3) |
|
|
|
302 | (3) |
|
|
|
302 | (1) |
|
|
|
302 | (1) |
|
|
|
302 | (1) |
|
|
|
303 | (1) |
|
Choosing an Isolation Level |
|
|
303 | (1) |
|
Changing an Application's Isolation Level |
|
|
303 | (1) |
|
|
|
304 | (1) |
|
|
|
304 | (1) |
|
|
|
305 | (2) |
|
Developing Apache Derby Applications with Perl, PHP, Python, and ODBC |
|
|
307 | (8) |
|
Communicating with an Apache Derby Network Server |
|
|
307 | (1) |
|
Distributed Relational Database Architecture (DRDA) |
|
|
307 | (1) |
|
Call Level Interface (CLI) |
|
|
307 | (1) |
|
Open Database Connectivity (ODBC) |
|
|
308 | (1) |
|
|
|
308 | (1) |
|
Installing the DB2 Runtime Client |
|
|
308 | (3) |
|
|
|
309 | (1) |
|
Windows Operating Systems |
|
|
310 | (1) |
|
Cataloging Apache Derby Network Servers |
|
|
311 | (1) |
|
Cataloging Apache Derby Databases |
|
|
311 | (1) |
|
|
|
312 | (1) |
|
|
|
313 | (1) |
|
|
|
313 | (2) |
|
|
|
|
``Your Momma Loves Drama'' in JDBC |
|
|
315 | (42) |
|
|
|
315 | (1) |
|
Your Momma Loves Drama Database |
|
|
316 | (8) |
|
|
|
317 | (1) |
|
|
|
318 | (2) |
|
|
|
320 | (2) |
|
|
|
322 | (1) |
|
|
|
323 | (1) |
|
|
|
323 | (1) |
|
The Your Momma Loves Drama Application |
|
|
324 | (1) |
|
|
|
325 | (1) |
|
Installing the YMLD Application |
|
|
326 | (1) |
|
|
|
326 | (1) |
|
Connecting to the YMLD System |
|
|
327 | (2) |
|
Current Performances at the Theater |
|
|
329 | (5) |
|
|
|
334 | (1) |
|
|
|
334 | (1) |
|
|
|
335 | (1) |
|
Purchase Tickets by Performance |
|
|
336 | (15) |
|
|
|
336 | (3) |
|
|
|
339 | (1) |
|
|
|
340 | (3) |
|
|
|
343 | (1) |
|
|
|
344 | (2) |
|
|
|
346 | (3) |
|
Finalizing the Transaction |
|
|
349 | (2) |
|
|
|
351 | (4) |
|
|
|
355 | (1) |
|
|
|
355 | (2) |
|
``Your Momma Loves Drama'' in Windows |
|
|
357 | (34) |
|
|
|
357 | (1) |
|
The Your Momma Loves Drama Application |
|
|
357 | (1) |
|
|
|
358 | (1) |
|
Installing the YMLD Application |
|
|
359 | (1) |
|
|
|
360 | (1) |
|
Connecting to the YMLD System |
|
|
360 | (4) |
|
|
|
363 | (1) |
|
|
|
363 | (1) |
|
|
|
364 | (1) |
|
Current Performances at the Theater |
|
|
364 | (3) |
|
|
|
367 | (1) |
|
|
|
368 | (1) |
|
|
|
369 | (1) |
|
Purchase Tickets by Performance |
|
|
370 | (16) |
|
|
|
370 | (3) |
|
|
|
373 | (1) |
|
|
|
374 | (2) |
|
|
|
376 | (2) |
|
|
|
378 | (4) |
|
|
|
382 | (2) |
|
Finalizing the Transaction |
|
|
384 | (2) |
|
|
|
386 | (4) |
|
|
|
390 | (1) |
|
|
|
390 | (1) |
|
``Your Momma Loves Drama'' in PHP |
|
|
391 | (48) |
|
|
|
391 | (3) |
|
|
|
391 | (1) |
|
Most Appropriate Uses for This Language |
|
|
392 | (1) |
|
|
|
393 | (1) |
|
Performance Characteristics |
|
|
393 | (1) |
|
Popular Editing Environments |
|
|
393 | (1) |
|
Learning the PHP Language |
|
|
394 | (13) |
|
|
|
394 | (1) |
|
|
|
394 | (1) |
|
|
|
394 | (1) |
|
|
|
395 | (1) |
|
|
|
395 | (1) |
|
|
|
395 | (1) |
|
|
|
396 | (1) |
|
|
|
396 | (1) |
|
|
|
397 | (2) |
|
|
|
399 | (1) |
|
|
|
399 | (1) |
|
|
|
400 | (1) |
|
|
|
401 | (1) |
|
|
|
401 | (1) |
|
|
|
402 | (2) |
|
|
|
404 | (1) |
|
|
|
404 | (1) |
|
|
|
404 | (2) |
|
Including Libraries of PHP Code |
|
|
406 | (1) |
|
Installing and Configuring PHP |
|
|
407 | (4) |
|
|
|
408 | (1) |
|
|
|
409 | (1) |
|
Installing PHP on Windows |
|
|
410 | (1) |
|
|
|
410 | (1) |
|
|
|
410 | (1) |
|
|
|
410 | (1) |
|
Creating Apache Derby Applications with PHP |
|
|
411 | (15) |
|
Running PHP Scripts from the Command Line |
|
|
411 | (1) |
|
Connecting to an Apache Derby Database |
|
|
412 | (1) |
|
|
|
412 | (1) |
|
Disconnecting from a Database |
|
|
413 | (1) |
|
|
|
413 | (1) |
|
|
|
413 | (1) |
|
Executing a Single Statement |
|
|
414 | (1) |
|
Issuing SQL Statements with Placeholders |
|
|
414 | (1) |
|
Reissuing the Same SQL Statement with Different Parameters |
|
|
414 | (2) |
|
|
|
416 | (1) |
|
Calling Stored Procedures |
|
|
417 | (4) |
|
|
|
421 | (1) |
|
Explicitly Committing and Rolling Back Transactions |
|
|
422 | (1) |
|
|
|
423 | (1) |
|
|
|
424 | (1) |
|
Large Objects: BLOBs and CLOBs |
|
|
424 | (2) |
|
|
|
426 | (1) |
|
|
|
426 | (1) |
|
Handling POST and GET Variables |
|
|
426 | (4) |
|
Checking User Input for Tainted Values |
|
|
430 | (1) |
|
Input-Filtering Functions |
|
|
431 | (1) |
|
|
|
432 | (3) |
|
Customizing Web Sites with Sessions |
|
|
435 | (2) |
|
|
|
437 | (2) |
|
``Your Momma Loves Drama'' in Perl |
|
|
439 | (34) |
|
|
|
439 | (2) |
|
|
|
439 | (1) |
|
Most Appropriate Uses for This Language |
|
|
440 | (1) |
|
|
|
440 | (1) |
|
|
|
440 | (1) |
|
Performance Characteristics |
|
|
441 | (1) |
|
Popular Editing Environments |
|
|
441 | (1) |
|
Installing and Configuring Perl |
|
|
441 | (3) |
|
|
|
442 | (1) |
|
Configuring Perl on Linux |
|
|
442 | (1) |
|
Installing Perl on Windows |
|
|
443 | (1) |
|
|
|
443 | (1) |
|
|
|
443 | (1) |
|
|
|
443 | (1) |
|
Creating Apache Derby Applications with Perl |
|
|
444 | (28) |
|
|
|
444 | (1) |
|
Running Perl Scripts from the Command Line |
|
|
445 | (1) |
|
Connecting to an Apache Derby Database |
|
|
445 | (1) |
|
|
|
445 | (1) |
|
Disconnecting from a Database |
|
|
446 | (1) |
|
|
|
446 | (1) |
|
|
|
447 | (1) |
|
Executing a Single Statement Immediately |
|
|
447 | (1) |
|
Preparing Statements for Reuse |
|
|
447 | (3) |
|
|
|
450 | (1) |
|
Calling Stored Procedures |
|
|
451 | (3) |
|
|
|
454 | (1) |
|
Explicitly Committing and Rolling Back Transactions |
|
|
454 | (1) |
|
|
|
455 | (1) |
|
|
|
455 | (1) |
|
Large Objects: BLOBs and CLOBs |
|
|
456 | (2) |
|
|
|
458 | (1) |
|
|
|
459 | (1) |
|
Handling POST and GET Variables |
|
|
459 | (3) |
|
Checking User Input for Tainted Values |
|
|
462 | (1) |
|
|
|
462 | (4) |
|
Customizing Web Sites with Sessions |
|
|
466 | (1) |
|
|
|
467 | (5) |
|
|
|
472 | (1) |
|
``Your Momma Loves Drama'' in Python |
|
|
473 | (46) |
|
|
|
473 | (2) |
|
What Makes Python Unique? |
|
|
473 | (1) |
|
Most Appropriate Uses for This Language |
|
|
474 | (1) |
|
|
|
474 | (1) |
|
|
|
474 | (1) |
|
Performance Characteristics |
|
|
474 | (1) |
|
Popular Editing Environments |
|
|
475 | (1) |
|
Learning the Python Language |
|
|
475 | (12) |
|
|
|
475 | (1) |
|
|
|
475 | (1) |
|
|
|
476 | (1) |
|
|
|
476 | (1) |
|
|
|
476 | (1) |
|
|
|
477 | (1) |
|
|
|
478 | (1) |
|
|
|
479 | (1) |
|
|
|
480 | (1) |
|
|
|
481 | (1) |
|
|
|
481 | (1) |
|
|
|
482 | (1) |
|
|
|
482 | (1) |
|
pass, break, and continue |
|
|
483 | (1) |
|
|
|
483 | (1) |
|
|
|
484 | (2) |
|
|
|
486 | (1) |
|
Installing and Configuring Python |
|
|
487 | (2) |
|
Installing Python on Linux |
|
|
487 | (1) |
|
Configuring Python on Linux |
|
|
488 | (1) |
|
Installing Python on Windows |
|
|
488 | (1) |
|
|
|
489 | (1) |
|
|
|
489 | (1) |
|
|
|
489 | (1) |
|
Creating Apache Derby Applications with Python |
|
|
489 | (29) |
|
|
|
489 | (1) |
|
Running Python Scripts from the Command Line |
|
|
490 | (1) |
|
Connecting to an Apache Derby Database |
|
|
490 | (1) |
|
|
|
490 | (1) |
|
Disconnecting from a Database |
|
|
491 | (1) |
|
|
|
491 | (1) |
|
|
|
492 | (1) |
|
Executing a Single Statement |
|
|
492 | (1) |
|
Issuing SQL Statements with Placeholders |
|
|
492 | (1) |
|
Reissuing the Same SQL Statement with Different Parameters |
|
|
493 | (1) |
|
|
|
494 | (1) |
|
Calling Stored Procedures |
|
|
495 | (4) |
|
|
|
499 | (1) |
|
Explicitly Committing and Rolling Back Transactions |
|
|
500 | (1) |
|
|
|
500 | (1) |
|
|
|
501 | (1) |
|
Large Objects: BLOBs and CLOBs |
|
|
501 | (2) |
|
|
|
503 | (1) |
|
|
|
503 | (1) |
|
|
|
504 | (1) |
|
Handling POST and GET Variables |
|
|
504 | (3) |
|
Checking User Input for Tainted Values |
|
|
507 | (1) |
|
|
|
508 | (3) |
|
Customizing Web Sites with Sessions |
|
|
511 | (1) |
|
|
|
512 | (6) |
|
|
|
518 | (1) |
|
|
|
|
Appendix A Web Site Contents |
|
|
519 | (2) |
|
|
|
519 | (1) |
|
|
|
519 | (1) |
|
|
|
520 | (1) |
|
Appendix B Apache Derby and IBM Cloudscape Resources |
|
|
521 | (4) |
|
|
|
521 | (1) |
|
|
|
521 | (1) |
|
Getting to Know the IBM Cloudscape and Apache Derby Databases |
|
|
522 | (1) |
|
|
|
523 | (1) |
|
Newsgroups and Mailing Lists |
|
|
523 | (2) |
|
Appendix C Troubleshooting Hints and Tips |
|
|
525 | (12) |
|
|
|
525 | (1) |
|
|
|
525 | (1) |
|
Performing a Graphical Installation and Saving Disk Space |
|
|
525 | (1) |
|
Setting Environment Variables on Linux |
|
|
525 | (1) |
|
Setting Environment Variables on Windows |
|
|
526 | (1) |
|
If You're Installing the Apache Derby Code on a Linux System Using the 2.6 Kernel |
|
|
526 | (1) |
|
Choosing a Target Directory for the Apache Derby Installation |
|
|
526 | (1) |
|
If You Can't Start Your Apache Derby Database |
|
|
526 | (1) |
|
If You Can't Connect to Your Apache Derby Database |
|
|
526 | (1) |
|
|
|
526 | (1) |
|
|
|
527 | (1) |
|
|
|
527 | (1) |
|
|
|
527 | (1) |
|
Booting Encrypted Databases |
|
|
527 | (1) |
|
|
|
528 | (1) |
|
|
|
528 | (1) |
|
|
|
528 | (1) |
|
|
|
528 | (1) |
|
|
|
528 | (1) |
|
Creating an Apache Derby Database |
|
|
529 | (1) |
|
|
|
529 | (1) |
|
Deleting an Apache Derby Database |
|
|
529 | (1) |
|
Special Characters in the Apache Derby Properties File |
|
|
529 | (1) |
|
|
|
529 | (3) |
|
Ensure That Your Environment Variables Are Properly Set |
|
|
529 | (1) |
|
Use Declared Tables for Temporary Storage |
|
|
530 | (1) |
|
Select the Right Data Types |
|
|
530 | (1) |
|
|
|
530 | (1) |
|
|
|
530 | (1) |
|
|
|
531 | (1) |
|
|
|
531 | (1) |
|
|
|
531 | (1) |
|
General Indexing Guidelines |
|
|
531 | (1) |
|
Searching for Null Values |
|
|
531 | (1) |
|
Use Parentheses in Expressions |
|
|
532 | (1) |
|
|
|
532 | (1) |
|
|
|
532 | (1) |
|
|
|
532 | (1) |
|
JDBC Application Development |
|
|
532 | (3) |
|
Using Embedded JDBC Drivers |
|
|
532 | (1) |
|
IBM DB2 JDBC Universal Driver for Apache Derby |
|
|
532 | (1) |
|
Apache Derby Network Servers |
|
|
533 | (1) |
|
Universal Driver Attributes |
|
|
533 | (1) |
|
Accessing Result Sets in a Random Order |
|
|
533 | (1) |
|
|
|
533 | (1) |
|
|
|
533 | (1) |
|
|
|
533 | (1) |
|
SQLWarnings Versus SQLExceptions |
|
|
534 | (1) |
|
|
|
534 | (1) |
|
|
|
534 | (1) |
|
|
|
534 | (1) |
|
Inserting and Updating Large Objects |
|
|
534 | (1) |
|
|
|
535 | (1) |
|
Connecting to a Database from a Stored Procedure |
|
|
535 | (1) |
|
|
|
535 | (2) |
| Index |
|
537 | |