Comments length?
When posting comments in an AIR help, there's a 500 character limit on those posts. Is there a way to increase/decrease this number?
I'm using RH 9 on a Win 7 64-bit system.
Sorry but the limit is whatever it is, no setting you can change.
See www.grainge.org for RoboHelp and Authoring tips
@petergrainge
Similar Messages
-
BPC 10.0 NW Comment Length
Hi all,
I'm going around in circles here and not finding the cause, so I'm hoping you'll be able to tell me what I'm missing!
We're running BPC 10.0 NW SAPK-80102INCPMBPC and we have some templates that are set up to save more than 1000 characters in each saved Comment. I've created a new Environment and Model but every time I save Comments they are being restricted to 255 characters.
At first I thought it was because I was creating the templates on Excel 2007, but now I'm using Excel 2010 and experiencing the same issue. I've started again creating a brand new template (to ensure that no restrictions are being carried over from a template created in an earlier version of Excel - just to be safe), but the Comments are only saving up to a maximum of 255 characters!
One last thing. The template that does save over 1000 characters is in our Production system, but this is still just a development in our Development system.
Is there a setting somewhere that I'm missing that will make this work correctlt for me in our Development system.
Many thanks in advance.
JohnKHi,
By default system allow you to key in comment length as 255 chars. You can change this length from Administration --> Models
Hope it helps...
regards,
Raju -
I am working on iweb 08, is there a way to limit the length of the comments, when people add them to my blog?
Hi
Having the exact same problem with comments on Blog page - I recently updated iWeb with the software button and IWeb is now showing as .me - since then, the Blog has not been working well - if I visit my site with the .me address, Blog works fine, but when visiting my own domain name the Blog feature of comments is not working.....
No idea how to solve this yet..... -
Selection screen Comment Maximum length 79 ???
Hi,
I have a requirement to write down a report instructions on a report selection screen.
Can we increase the comment length size?? it looks awkward because only half of my screen width is being filled and I have a requirement to write more than 400 characters.
Are there any alternatives?
Regards
VaraIs this Still True, can't we put comment more than 79 characters in single line???
Please respond if any body have any clue !!!
Sas
Is there any clue???
Edited by: saslove sap on Mar 17, 2010 4:21 AM
Edited by: saslove sap on Mar 17, 2010 5:40 AM
Edited by: saslove sap on Mar 17, 2010 8:12 AM
Edited by: saslove sap on Mar 17, 2010 8:21 AM
Edited by: saslove sap on Mar 17, 2010 9:16 AM
Edited by: saslove sap on Mar 17, 2010 10:35 AM
Edited by: saslove sap on Mar 17, 2010 10:46 AM
Edited by: saslove sap on Mar 17, 2010 11:47 AM
Edited by: saslove sap on Mar 18, 2010 6:37 AM -
How can i send an auto reply with form content to sender?
Hai!
I'm new to website building, but i already came a long way
i made a form and i like to send a auto reply with the form content (if that isnt too difficult) to the person who filled it in.
The form i made is in PHP (coding i copied partly from someone from the internet .)
You can see the from at: http://vinddit.nl/vindditnu%20php%20version.php
My PHP coding so far
<?php
// Set email variables
$email_to = '[email protected]';
$email_subject = 'Aanvraag - VINDDIT NU!';
// Set required fields
$required_fields = array('Voornaam','email','Achternaam','Plaats');
// set error messages
$error_messages = array(
'Voornaam' => 'Vul hier uw voornaam in a.u.b.',
'email' => 'Vul hier een geldig email adres in a.u.b.',
'Achternaam' => 'Vul hier uw achternaam in a.u.b.',
'Plaats' => 'Vul hier uw woonplaats in a.u.b.'
// Set form status
$form_complete = FALSE;
// configure validation array
$validation = array();
// check form submittal
if(!empty($_POST)) {
// Sanitise POST array
foreach($_POST as $key => $value) $_POST[$key] = remove_email_injection(trim($value));
// Loop into required fields and make sure they match our needs
foreach($required_fields as $field) {
// the field has been submitted?
if(!array_key_exists($field, $_POST)) array_push($validation, $field);
// check there is information in the field?
if($_POST[$field] == '') array_push($validation, $field);
// validate the email address supplied
if($field == 'email') if(!validate_email_address($_POST[$field])) array_push($validation, $field);
// basic validation result
if(count($validation) == 0) {
// Prepare our content string
$email_content = 'New Website Comment: ' . "\n\n";
// simple email content
foreach($_POST as $key => $value) {
if($key != 'submit') $email_content .= $key . ': ' . $value . "\n";
// if validation passed ok then send the email
mail($email_to, $email_subject, $email_content);
// Update form switch
$form_complete = TRUE;
function validate_email_address($email = FALSE) {
return (preg_match('/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i', $email))? TRUE : FALSE;
function remove_email_injection($field = FALSE) {
return (str_ireplace(array("\r", "\n", "%0a", "%0d", "Content-Type:", "bcc:","to:","cc:"), '', $field));
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Aanvraag formulier</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/mootools/1.3.0/mootools-yui-compressed.js"></script>
<script type="text/javascript" src="validation/validation.js"></script>
<script type="text/javascript">
var nameError = '<?php echo $error_messages['fullname']; ?>';
var emailError = '<?php echo $error_messages['email']; ?>';
var commentError = '<?php echo $error_messages['comment']; ?>';
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
</script>
<style type="text/css">
</style>
</head>
<body onload="MM_preloadImages('icons/x.png')">
<p> </p>
<p>
<?php if($form_complete === FALSE): ?>
</p>
<form action="vindditnu php version.php" method="post" enctype="application/x-www-form-urlencoded" name="Form" id="commentsform">
<h1><img src="icons/vinddit3.gif" width="220" height="80" alt="logo" /></h1>
<h1>Wat zoekt u?:</h1>
<table width="690" border="0">
<tr>
<td>In welke categorie zoekt u?*</td>
<td colspan="3"><select name="Ophalen_verzenden" id="Ophalen_verzenden">
<option selected="selected">Meubels </option>
<option>Witgoed </option>
<option>Woon accesoires </option>
<option>Kleding </option>
<option>Schoenen </option>
<option>Mode accesoires </option>
<option>Speelgoed </option>
<option>Boeken, tijdschriften, papierwaren </option>
<option>Overig </option>
</select></td>
</tr>
<tr>
<td>Kleur:* </td>
<td colspan="3"><select name="kleuren" id="kleuren">
<option>Blauw</option>
<option>Rood</option>
<option>WIt</option>
<option>Zwart</option>
<option>Beige</option>
<option>Bruin</option>
<option>Geel</option>
<option>Oranje</option>
<option>Rood</option>
<option>Metallic (Bijv. Zilver/Goud/Brons/Koper</option>
<option>Meerkleurig</option>
<option selected="selected">Overig/ N.v.t</option>
</select></td>
</tr>
<tr>
<td>Merk: </td>
<td colspan="3"><input name="Merk" type="text" id="Merk5" value="<?php echo isset($_POST['Merk'])? $_POST['Merk'] : ''; ?>" />
<?php if(in_array('Merk', $validation)): ?>
<span class="error"><?php echo $error_messages['Merk']; ?></span>
<?php endif; ?></td>
</tr>
<tr>
<td>Type/Model:</td>
<td colspan="3"><input type="text" name="type" id="type" value="<?php echo isset($_POST['type'])? $_POST['type'] : ''; ?>" />
<?php if(in_array('type', $validation)): ?>
<span class="error"><?php echo $error_messages['type']; ?></span>
<?php endif; ?></td>
</tr>
<tr>
<td>Materiaal: </td>
<td colspan="3"><input name="Materiaal" type="text" id="Materiaal" value="<?php echo isset($_POST['Materiaal'])? $_POST['Materiaal'] : ''; ?>" />
<?php if(in_array('Materiaal', $validation)): ?>
<span class="error"><?php echo $error_messages['Materiaal']; ?></span>
<?php endif; ?></td>
</tr>
<tr>
<td>Maat: </td>
<td colspan="3"><input type="text" name="Maat" id="Maat" value="<?php echo isset($_POST['Maat'])? $_POST['Maat'] : ''; ?>" />
<?php if(in_array('Maat', $validation)): ?>
<span class="error"><?php echo $error_messages['Maat']; ?></span>
<?php endif; ?></td>
</tr>
<tr>
<td>Conditie*:</td>
<td colspan="3"><select name="conditie" id="conditie" >
<option>Zo goed als nieuw</option>
<option>Nieuw</option>
<option>Bebruikt</option>
<option selected="selected">Geen voorkeur </option>
</select></td>
</tr>
<tr>
<td>Ophalen/Verzenden:*</td>
<td colspan="3"><select name="ophalen" id="ophalen">
<option>Ophalen</option>
<option>Verzenden</option>
<option>N.v.t</option>
<option>Geen voorkeur </option>
</select></td>
</tr>
<tr>
<td>Prijs Min:</td>
<td><input name="prijsmin" type="text" id="prijsmin" size="10" value="<?php echo isset($_POST['prijsmin'])? $_POST['prijsmin'] : ''; ?>" />
<?php if(in_array('prijsmin', $validation)): ?>
<span class="error"><?php echo $error_messages['prijsmin']; ?></span>
<?php endif; ?></td>
<td>Prijs Max:</td>
<td><input name="Prijs" type="text" id="Prijs" size="10" value="<?php echo isset($_POST['Prijs'])? $_POST['Prijs'] : ''; ?>" />
<?php if(in_array('Prijs', $validation)): ?>
<span class="error"><?php echo $error_messages['Prijs']; ?></span>
<?php endif; ?></td>
</tr>
</table>
<h1>Opmerkingen:</h1>
<table width="690" border="0">
<tr>
<td height="25">Opmerkingen:</td>
<td rowspan="2"><textarea name="Opmerkingen" cols="67" rows="10" id="Opmerkingen"><?php echo isset($_POST['Opmerkingen'])? $_POST['Opmerkingen'] : ''; ?></textarea>
<?php if(in_array('Opmerkingen', $validation)): ?>
<span class="error"><?php echo $error_messages['Opmerkingen']; ?></span>
<?php endif; ?></td>
</tr>
<tr>
<td height="78"> </td>
</tr>
</table>
<h1>Uw Gegevens:</h1>
<table width="690" border="0">
<tr>
<td>Voornaam/Voorletters*:</td>
<td><input type="text" name="Voornaam" id="Voornaam" class='invul' value="<?php echo isset($_POST['Voornaam'])? $_POST['Voornaam'] : ''; ?>" />
<?php if(in_array('Voornaam', $validation)): ?>
<span class="error"><?php echo $error_messages['Voornaam']; ?></span>
<?php endif; ?></td>
<td>Achternaam:* </td>
<td><input type="text" name="Achternaam" id="Achternaam" class='invul' value="<?php echo isset($_POST['Achternaam'])? $_POST['Achternaam'] : ''; ?>" />
<?php if(in_array('Achternaam', $validation)): ?>
<span class="error"><?php echo $error_messages['Achternaam']; ?></span>
<?php endif; ?></td>
</tr>
<tr>
<td>Straatnaam:</td>
<td><input type="text" name="Straat" id="Straat" class='invul' value="<?php echo isset($_POST['Straat'])? $_POST['Straat'] : ''; ?>" />
<?php if(in_array('Straat', $validation)): ?>
<span class="error"><?php echo $error_messages['Straat']; ?></span>
<?php endif; ?></td>
<td>Huisnummer:</td>
<td><input name="Huisnummer" type="text" id="Huisnummer" class='invul' size="10" value="<?php echo isset($_POST['Huisnummer'])? $_POST['Huisnummer'] : ''; ?>" />
<?php if(in_array('Huisnummer', $validation)): ?>
<span class="error"><?php echo $error_messages['Huisnummer']; ?></span>
<?php endif; ?></td>
</tr>
<tr>
<td>Postcode:</td>
<td><input type="text" name="Postcode" id="Postcode" class='invul' value="<?php echo isset($_POST['Postcode'])? $_POST['Postcode'] : ''; ?>" />
<?php if(in_array('Postcode', $validation)): ?>
<span class="error"><?php echo $error_messages['Postcode']; ?></span>
<?php endif; ?></td>
<td>Plaats:* </td>
<td><input type="text" name="Plaats" id="Plaats" class='invul' value="<?php echo isset($_POST['Plaats'])? $_POST['Plaats'] : ''; ?>" />
<?php if(in_array('Plaats', $validation)): ?>
<span class="error"><?php echo $error_messages['Plaats']; ?></span>
<?php endif; ?></td>
</tr>
<tr>
<td>Email Adres:*</td>
<td colspan="3"><input type="text" name="email" id="email" class='invul' value="<?php echo isset($_POST['email'])? $_POST['email'] : ''; ?>" />
<?php if(in_array('email', $validation)): ?>
<span class="error"><?php echo $error_messages['email']; ?></span>
<?php endif; ?></td>
</tr>
<tr>
<td>Telefoonnummer:</td>
<td colspan="3"><input name="Telefoon" type="text" id="Telefoon" class='invul' value="<?php echo isset($_POST['Telefoon'])? $_POST['Telefoon'] : ''; ?>" />
<?php if(in_array('Telefoon', $validation)): ?>
<span class="error"><?php echo $error_messages['Telefoon']; ?></span>
<?php endif; ?></td>
</tr>
</table>
<p>
<label for="Straat"></label>
<label for="Huisnummer"><br />
</label>
<input type="submit" name="Submit" id="Submit" value="Verstuur" />
<input type="reset" name="Reset" id="Reset" value="Wissen" />
</p>
</form>
<?php else: ?>
<div class="bedankt">
<p>Bedankt voor uw aanvraag!</p>
<p>Wij zullen uw aanvraag zo spoedig mogelijk behandelen. Meestal duurt dit 2 a 3 werkdagen.</p>
<p><img src="icons/vinddit3.gif" width="220" height="80" alt="logo" /></p>
</div>
<p>
<script type='text/javascript'>
setTimeout("ourRedirect()", 5000)
function ourRedirect() {
</script>
<?php endif; ?>
</body>
</html>
and .JS
window.addEvent('domready', function() {
// Get the form
var form = $('comments_form');
// if the form is found...
if (form) {
// obtain error fields
var name = $('fullname');
var email = $('email');
var comment = $('comment');
// Set the default status
var isValid = true;
// input error function for the error messages
var addError = function (field, msg) {
field.addClass('error'); // Add error class to field
var error = field.getParent().getElement('span') || new Element('span', {'class': 'error'}); // add error message if not already placed
error.set('text', msg); // error text msg
error.inject(field, 'after'); // Insert error message after field
// detach error function used to delete any error messages and remove the error class
var removeError = function (field) {
field.removeClass('error'); // Remove error class from form fields
var error = field.getParent().getElement('span'); // find any existing error messages
// destroy if error message
if (error) {
error.destroy();
// insert submit form event
form.addEvent('submit', function (e) {
// Test name length
if (name.get('value').length === 0) {
isValid = false;
addError(name, nameError);
} else {
isValid = true;
removeError(name);
// check email length
if (email.get('value').length === 0) {
isValid = false;
addError(email, emailError);
// check email validity
} else if (!email.get('value').test(/^([a-zA-Z0-9\+_\-]+)(\.[a-zA-Z0-9\+_\-]+)*@([a-zA-Z0-9\-]+\.)+ [a-zA-Z]{2,6}$/)) {
isValid = false;
addError(email, emailError);
} else {
isValid = true;
removeError(email);
// check comment length
if (comment.get('value').length === 0) {
isValid = false;
addError(comment, commentError);
} else {
isValid = true;
removeError(comment);
// If form invalid then stop event happening
if (!isValid) {
e.stop();lisavs12686 wrote:
Whould it also be possible to send the sender the submited data (looking like the filled in form or so)?
not really nessecary but whould be a nice jextra
You can but you would need to send it as an html email which is much more complicated.
What you would do is build a page/table construction like below. You would need to use the php variables to echo out the information in the <td></td> cells (example below).
$reply = $_POST['email'];
$from = '[email protected]';
$replysubject = "Auto-Reply: Website Name";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: $from\r\nReply-to: $reply";
$replymessage = '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Comments from Website</title>
</head>
<body>
<table>
<tr>
<td bgcolor="#ffffff" style="font-family: verdana, arial, helvetica, sans-serif; font-size: 13px; padding: 10px 15px;">Name: </strong>'.$name.'
</td>
</tr>
</table>
</body>
</html>';
mail($reply, $replysubject, $replymessage, $headers); -
Why won't my unzipped and rezipped IDML file open in InDesign?
I'm a developer working on an IDML based project.
My application opens an IDML file, inflates the contents and (for the moment, without making any changes), deflates them again.
The result is a file which:
a) Opens fine in any zip application
b) My code can then reopen without problems.
InDesign, however, throws the following error:
"Cannot open the file "filename.idml". Adobe InDesign may not support the file format, a plug-in that supports the file format may be miussing, or the file may be open in another application."
I have verified that the file is not open in another app, and that no plug ins are involved.
InDesign will open the original IDML file that it exported, so there's no general error.
I assume the issue is with the zip container not being UCF compliant, and I'm trying to diagnose what the problem might be.
My question(s):
Has anyone been through this and do they have any suggestions or guidance?
Is there any way I can get InDesign to tell me in more detail why it cannot open the file?
What are the most likely issues with the container?
I have inspected both the original file and the output file using Winzip, and I append the results of a detailed diagnostic on each below. The only difference I can see is that some files in the original are not compressed (they are simply stored in the zip container), but the UCF specification seems to suggest that a container can contain either compressed or normal files, so I don't see why this should be a problem. Would this cause InDesign to have a problem?
Many thanks in advance for any assistance. Zip file diagnostics follow.
JcFx Eu.
DIAGNOSTICS FOR THE ORIGINAL IDML FILE:
Testing ...
Current Location part 1 offset 35496
Archive: ORIGINAL.zip 35518 bytes 2010-06-29 19:16:58
End central directory record PK0506 (4+18)
==========================================
current location of end-of-central-dir record: 35496 (0x00008aa8) bytes
expected location of end-of-central-dir record: 35496 (0x00008aa8) bytes
based on the size of the central directory of
990 and its relative offset of 34506 bytes
part number of this part (0000): 1
part number of start of central dir (0000): 1
number of entries in central dir in this part: 15
total number of entries in central dir: 15
size of central dir: 990 (0x000003de) bytes
relative offset of central dir: 34506 (0x000086ca) bytes
zipfile comment length: 0
Current Location part 1 offset 34506
Central directory entry PK0102 (4+42): #1
======================================
part number in which file begins (0000): 1
relative offset of local header: 0 (0x00000000) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0800) (bit 15..0): 0000.1000 0000.0000
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (00): none (stored)
file last modified on (0x00003cdd 0x00009a1c): 2010-06-29 19:16:56
32-bit CRC value: 0x898f76cb
compressed size: 43 bytes
uncompressed size: 43 bytes
length of filename: 8 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 34552
filename:mimetype
Current Location part 1 offset 34560
Central directory entry PK0102 (4+42): #2
======================================
part number in which file begins (0000): 1
relative offset of local header: 81 (0x00000051) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1c): 2010-06-29 19:16:56
32-bit CRC value: 0x48e193fb
compressed size: 2516 bytes
uncompressed size: 14146 bytes
length of filename: 13 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 34606
filename:designmap.xml
Current Location part 1 offset 34619
Central directory entry PK0102 (4+42): #3
======================================
part number in which file begins (0000): 1
relative offset of local header: 2640 (0x00000a50) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0xbe470667
compressed size: 167 bytes
uncompressed size: 253 bytes
length of filename: 22 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 34665
filename:META-INF\container.xml
Current Location part 1 offset 34687
Central directory entry PK0102 (4+42): #4
======================================
part number in which file begins (0000): 1
relative offset of local header: 2859 (0x00000b2b) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0xa9a4d00e
compressed size: 6047 bytes
uncompressed size: 29065 bytes
length of filename: 21 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 34733
filename:META-INF\metadata.xml
Current Location part 1 offset 34754
Central directory entry PK0102 (4+42): #5
======================================
part number in which file begins (0000): 1
relative offset of local header: 8957 (0x000022fd) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x7557d85e
compressed size: 1155 bytes
uncompressed size: 7428 bytes
length of filename: 21 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 34800
filename:Resources\Graphic.xml
Current Location part 1 offset 34821
Central directory entry PK0102 (4+42): #6
======================================
part number in which file begins (0000): 1
relative offset of local header: 10163 (0x000027b3) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0xf43a42fe
compressed size: 3449 bytes
uncompressed size: 19673 bytes
length of filename: 19 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 34867
filename:Resources\Fonts.xml
Current Location part 1 offset 34886
Central directory entry PK0102 (4+42): #7
======================================
part number in which file begins (0000): 1
relative offset of local header: 13661 (0x0000355d) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x4accb4c4
compressed size: 4627 bytes
uncompressed size: 29487 bytes
length of filename: 20 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 34932
filename:Resources\Styles.xml
Current Location part 1 offset 34952
Central directory entry PK0102 (4+42): #8
======================================
part number in which file begins (0000): 1
relative offset of local header: 18338 (0x000047a2) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0xd75ae504
compressed size: 10962 bytes
uncompressed size: 69779 bytes
length of filename: 25 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 34998
filename:Resources\Preferences.xml
Current Location part 1 offset 35023
Central directory entry PK0102 (4+42): #9
======================================
part number in which file begins (0000): 1
relative offset of local header: 29355 (0x000072ab) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x65ae6db3
compressed size: 218 bytes
uncompressed size: 302 bytes
length of filename: 12 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 35069
filename:XML\Tags.xml
Current Location part 1 offset 35081
Central directory entry PK0102 (4+42): #10
======================================
part number in which file begins (0000): 1
relative offset of local header: 29615 (0x000073af) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x037dee40
compressed size: 692 bytes
uncompressed size: 2328 bytes
length of filename: 34 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 35127
filename:MasterSpreads\MasterSpread_ubc.xml
Current Location part 1 offset 35161
Central directory entry PK0102 (4+42): #11
======================================
part number in which file begins (0000): 1
relative offset of local header: 30371 (0x000076a3) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x43b1858a
compressed size: 1573 bytes
uncompressed size: 7799 bytes
length of filename: 22 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 35207
filename:Spreads\Spread_ub5.xml
Current Location part 1 offset 35229
Central directory entry PK0102 (4+42): #12
======================================
part number in which file begins (0000): 1
relative offset of local header: 31996 (0x00007cfc) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x0bc7a874
compressed size: 342 bytes
uncompressed size: 606 bytes
length of filename: 20 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 35275
filename:XML\BackingStory.xml
Current Location part 1 offset 35295
Central directory entry PK0102 (4+42): #13
======================================
part number in which file begins (0000): 1
relative offset of local header: 32388 (0x00007e84) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x0c652477
compressed size: 685 bytes
uncompressed size: 3219 bytes
length of filename: 21 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 35341
filename:Stories\Story_uff.xml
Current Location part 1 offset 35362
Central directory entry PK0102 (4+42): #14
======================================
part number in which file begins (0000): 1
relative offset of local header: 33124 (0x00008164) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x59a2cf03
compressed size: 646 bytes
uncompressed size: 3041 bytes
length of filename: 21 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 35408
filename:Stories\Story_ue5.xml
Current Location part 1 offset 35429
Central directory entry PK0102 (4+42): #15
======================================
part number in which file begins (0000): 1
relative offset of local header: 33821 (0x0000841d) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x6fc8a48f
compressed size: 634 bytes
uncompressed size: 2935 bytes
length of filename: 21 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 35475
filename:Stories\Story_ucb.xml
Current Location part 1 offset 0
Local directory entry PK0304 (4+26): #1
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0800) (bit 15..0): 0000.1000 0000.0000
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (00): none (stored)
file last modified on (0x00003cdd 0x00009a1c): 2010-06-29 19:16:56
32-bit CRC value: 0x898f76cb
compressed size: 43 bytes
uncompressed size: 43 bytes
length of filename: 8 characters
length of extra field: 0 bytes
Current Location part 1 offset 30
filename:mimetype
Current Location part 1 offset 38
Testing mimetype OK
Current Location part 1 offset 81
Local directory entry PK0304 (4+26): #2
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1c): 2010-06-29 19:16:56
32-bit CRC value: 0x48e193fb
compressed size: 2516 bytes
uncompressed size: 14146 bytes
length of filename: 13 characters
length of extra field: 0 bytes
Current Location part 1 offset 111
filename:designmap.xml
Current Location part 1 offset 124
Testing designmap.xml OK
Current Location part 1 offset 2640
Local directory entry PK0304 (4+26): #3
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0xbe470667
compressed size: 167 bytes
uncompressed size: 253 bytes
length of filename: 22 characters
length of extra field: 0 bytes
Current Location part 1 offset 2670
filename:META-INF\container.xml
Current Location part 1 offset 2692
Testing META-INF\container.xml OK
Current Location part 1 offset 2859
Local directory entry PK0304 (4+26): #4
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0xa9a4d00e
compressed size: 6047 bytes
uncompressed size: 29065 bytes
length of filename: 21 characters
length of extra field: 0 bytes
Current Location part 1 offset 2889
filename:META-INF\metadata.xml
Current Location part 1 offset 2910
Testing META-INF\metadata.xml OK
Current Location part 1 offset 8957
Local directory entry PK0304 (4+26): #5
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x7557d85e
compressed size: 1155 bytes
uncompressed size: 7428 bytes
length of filename: 21 characters
length of extra field: 0 bytes
Current Location part 1 offset 8987
filename:Resources\Graphic.xml
Current Location part 1 offset 9008
Testing Resources\Graphic.xml OK
Current Location part 1 offset 10163
Local directory entry PK0304 (4+26): #6
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0xf43a42fe
compressed size: 3449 bytes
uncompressed size: 19673 bytes
length of filename: 19 characters
length of extra field: 0 bytes
Current Location part 1 offset 10193
filename:Resources\Fonts.xml
Current Location part 1 offset 10212
Testing Resources\Fonts.xml OK
Current Location part 1 offset 13661
Local directory entry PK0304 (4+26): #7
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x4accb4c4
compressed size: 4627 bytes
uncompressed size: 29487 bytes
length of filename: 20 characters
length of extra field: 0 bytes
Current Location part 1 offset 13691
filename:Resources\Styles.xml
Current Location part 1 offset 13711
Testing Resources\Styles.xml OK
Current Location part 1 offset 18338
Local directory entry PK0304 (4+26): #8
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0xd75ae504
compressed size: 10962 bytes
uncompressed size: 69779 bytes
length of filename: 25 characters
length of extra field: 0 bytes
Current Location part 1 offset 18368
filename:Resources\Preferences.xml
Current Location part 1 offset 18393
Testing Resources\Preferences.xml OK
Current Location part 1 offset 29355
Local directory entry PK0304 (4+26): #9
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x65ae6db3
compressed size: 218 bytes
uncompressed size: 302 bytes
length of filename: 12 characters
length of extra field: 0 bytes
Current Location part 1 offset 29385
filename:XML\Tags.xml
Current Location part 1 offset 29397
Testing XML\Tags.xml OK
Current Location part 1 offset 29615
Local directory entry PK0304 (4+26): #10
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x037dee40
compressed size: 692 bytes
uncompressed size: 2328 bytes
length of filename: 34 characters
length of extra field: 0 bytes
Current Location part 1 offset 29645
filename:MasterSpreads\MasterSpread_ubc.xml
Current Location part 1 offset 29679
Testing MasterSpreads\MasterSpread_ubc.xml OK
Current Location part 1 offset 30371
Local directory entry PK0304 (4+26): #11
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x43b1858a
compressed size: 1573 bytes
uncompressed size: 7799 bytes
length of filename: 22 characters
length of extra field: 0 bytes
Current Location part 1 offset 30401
filename:Spreads\Spread_ub5.xml
Current Location part 1 offset 30423
Testing Spreads\Spread_ub5.xml OK
Current Location part 1 offset 31996
Local directory entry PK0304 (4+26): #12
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x0bc7a874
compressed size: 342 bytes
uncompressed size: 606 bytes
length of filename: 20 characters
length of extra field: 0 bytes
Current Location part 1 offset 32026
filename:XML\BackingStory.xml
Current Location part 1 offset 32046
Testing XML\BackingStory.xml OK
Current Location part 1 offset 32388
Local directory entry PK0304 (4+26): #13
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x0c652477
compressed size: 685 bytes
uncompressed size: 3219 bytes
length of filename: 21 characters
length of extra field: 0 bytes
Current Location part 1 offset 32418
filename:Stories\Story_uff.xml
Current Location part 1 offset 32439
Testing Stories\Story_uff.xml OK
Current Location part 1 offset 33124
Local directory entry PK0304 (4+26): #14
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x59a2cf03
compressed size: 646 bytes
uncompressed size: 3041 bytes
length of filename: 21 characters
length of extra field: 0 bytes
Current Location part 1 offset 33154
filename:Stories\Story_ue5.xml
Current Location part 1 offset 33175
Testing Stories\Story_ue5.xml OK
Current Location part 1 offset 33821
Local directory entry PK0304 (4+26): #15
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0802) (bit 15..0): 0000.1000 0000.0010
file security status (bit 0): not encrypted
extended local header (bit 3): no
compression method (08): deflated
compression sub-type (deflation): maximum
file last modified on (0x00003cdd 0x00009a1d): 2010-06-29 19:16:58
32-bit CRC value: 0x6fc8a48f
compressed size: 634 bytes
uncompressed size: 2935 bytes
length of filename: 21 characters
length of extra field: 0 bytes
Current Location part 1 offset 33851
filename:Stories\Story_ucb.xml
Current Location part 1 offset 33872
Testing Stories\Story_ucb.xml OK
No errors detected in compressed data of ORIGINAL.zip.
DIAGNOSTICS FOR THE REZIPPED IDML FILE:
Testing ...
Current Location part 1 offset 34822
Archive: OUTPUT.zip 34844 bytes 2010-07-21 17:48:46
End central directory record PK0506 (4+18)
==========================================
current location of end-of-central-dir record: 34822 (0x00008806) bytes
expected location of end-of-central-dir record: 34822 (0x00008806) bytes
based on the size of the central directory of
990 and its relative offset of 33832 bytes
part number of this part (0000): 1
part number of start of central dir (0000): 1
number of entries in central dir in this part: 15
total number of entries in central dir: 15
size of central dir: 990 (0x000003de) bytes
relative offset of central dir: 33832 (0x00008428) bytes
zipfile comment length: 0
Current Location part 1 offset 33832
Central directory entry PK0102 (4+42): #1
======================================
part number in which file begins (0000): 1
relative offset of local header: 0 (0x00000000) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0008) (bit 15..0): 0000.0000 0000.1000
file security status (bit 0): not encrypted
extended local header (bit 3): yes
compression method (08): deflated
compression sub-type (deflation): normal
file last modified on (0x00003ce3 0x00008e13): 2010-07-03 17:48:38
32-bit CRC value: 0x898f76cb
compressed size: 44 bytes
uncompressed size: 43 bytes
length of filename: 8 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 33878
filename:mimetype
Current Location part 1 offset 33886
Central directory entry PK0102 (4+42): #2
======================================
part number in which file begins (0000): 1
relative offset of local header: 98 (0x00000062) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0008) (bit 15..0): 0000.0000 0000.1000
file security status (bit 0): not encrypted
extended local header (bit 3): yes
compression method (08): deflated
compression sub-type (deflation): normal
file last modified on (0x00003ce3 0x00008e13): 2010-07-03 17:48:38
32-bit CRC value: 0x65263983
compressed size: 2412 bytes
uncompressed size: 13985 bytes
length of filename: 13 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 33932
filename:designmap.xml
Current Location part 1 offset 33945
Central directory entry PK0102 (4+42): #3
======================================
part number in which file begins (0000): 1
relative offset of local header: 2569 (0x00000a09) bytes
version made by operating system (00): MS-DOS, OS/2, NT FAT
version made by zip software (20): 2.0
operat. system version needed to extract (00): MS-DOS, OS/2, NT FAT
unzip software version needed to extract (20): 2.0
general purpose bit flag (0x0008) (bit 15..0): 0000.0000 0000.1000
file security status (bit 0): not encrypted
extended local header (bit 3): yes
compression method (08): deflated
compression sub-type (deflation): normal
file last modified on (0x00003ce3 0x00008e13): 2010-07-03 17:48:38
32-bit CRC value: 0x817f37ea
compressed size: 132 bytes
uncompressed size: 196 bytes
length of filename: 22 characters
length of extra field: 0 bytes
length of file comment: 0 characters
internal file attributes: 0x0000
apparent file type: binary
external file attributes: 0x00000000
non-MSDOS external file attributes: 0x000000
MS-DOS file attributes (0x00): none
Current Location part 1 offset 33991
filename:META-INF\container.xml
Current Location part 1 offset 34013
Central directory entry PK0102 (4+42): #4
======================================
part number in which file begins (0000): 1How are you zipping it?
In needs to be a "clean" zip...
Also, take a look at app.packageUCF() and app.unpackageUCF()...
Harbs -
Unzip a folder using pl/sql
Hi All,
I am creating zip folder using oracle pl/sql. Now i want to unzip the same folder for taking out the compressed file.
Is it possible to unzip the folder in oracle pl/sql.
Thanks in Advance.
Cheers,
ShanHere's the code
Anton
CREATE OR REPLACE package as_zip
is
type file_list is table of clob;
function get_file_list(
p_dir in varchar2
, p_zip_file in varchar2
, p_encoding in varchar2 := null
return file_list;
function get_file_list(
p_zipped_blob in blob
, p_encoding in varchar2 := null /* Use CP850 for zip files created with a German Winzip to see umlauts, etc */
return file_list;
function get_file(
p_dir in varchar2
, p_zip_file in varchar2
, p_file_name in varchar2
, p_encoding in varchar2 := null
return blob;
function get_file(
p_zipped_blob in blob
, p_file_name in varchar2
, p_encoding in varchar2 := null
return blob;
procedure add1file(
p_zipped_blob in out blob
, p_name in varchar2
, p_content in blob
procedure finish_zip(
p_zipped_blob in out blob
procedure save_zip(
p_zipped_blob in blob
, p_dir in varchar2 := 'MY_DIR'
, p_filename in varchar2 := 'my.zip'
declare
g_zipped_blob blob;
begin
as_zip.add1file( g_zipped_blob, 'test1.txt', utl_raw.cast_to_raw( 'Dit is de laatste test! Waarom wordt dit dan niet gecomprimeerd?' ) );
as_zip.add1file( g_zipped_blob, 'test1234.txt', utl_raw.cast_to_raw( 'En hier staat wat anders' ) );
as_zip.finish_zip( g_zipped_blob );
as_zip.save_zip( g_zipped_blob, 'MY_DIR', 'my.zip' );
end;
declare
t_dir varchar2(100) := 'MY_DIR';
t_zip varchar2(100) := 'my.zip';
zip_files as_zip.file_list;
begin
zip_files := as_zip.get_file_list( t_dir, t_zip );
for i in zip_files.first() .. zip_files.last
loop
dbms_output.put_line( zip_files( i ) );
dbms_output.put_line( utl_raw.cast_to_varchar2( as_zip.get_file( t_dir, t_zip, zip_files( i ) ) ) );
end loop;
end;
end;
CREATE OR REPLACE package body as_zip
is
function raw2num(
p_value in raw
return number
is
begin -- note: FFFFFFFF => -1
return utl_raw.cast_to_binary_integer( p_value
, utl_raw.little_endian
end;
function file2blob(
p_dir in varchar2
, p_file_name in varchar2
return blob
is
file_lob bfile;
file_blob blob;
begin
file_lob := bfilename( p_dir
, p_file_name
dbms_lob.open( file_lob
, dbms_lob.file_readonly
dbms_lob.createtemporary( file_blob
, true
dbms_lob.loadfromfile( file_blob
, file_lob
, dbms_lob.lobmaxsize
dbms_lob.close( file_lob );
return file_blob;
exception
when others
then
if dbms_lob.isopen( file_lob ) = 1
then
dbms_lob.close( file_lob );
end if;
if dbms_lob.istemporary( file_blob ) = 1
then
dbms_lob.freetemporary( file_blob );
end if;
raise;
end;
function raw2varchar2(
p_raw in raw
, p_encoding in varchar2
return varchar2
is
begin
return nvl
( utl_i18n.raw_to_char( p_raw
, p_encoding
, utl_i18n.raw_to_char
( p_raw
, utl_i18n.map_charset( p_encoding
, utl_i18n.generic_context
, utl_i18n.iana_to_oracle
end;
function get_file_list(
p_dir in varchar2
, p_zip_file in varchar2
, p_encoding in varchar2 := null
return file_list
is
begin
return get_file_list( file2blob( p_dir
, p_zip_file
, p_encoding
end;
function get_file_list(
p_zipped_blob in blob
, p_encoding in varchar2 := null
return file_list
is
t_ind integer;
t_hd_ind integer;
t_rv file_list;
begin
t_ind := dbms_lob.getlength( p_zipped_blob ) - 21;
loop
exit when dbms_lob.substr( p_zipped_blob
, 4
, t_ind
) = hextoraw( '504B0506' )
or t_ind < 1;
t_ind := t_ind - 1;
end loop;
if t_ind <= 0
then
return null;
end if;
t_hd_ind := raw2num( dbms_lob.substr( p_zipped_blob
, 4
, t_ind + 16
) ) + 1;
t_rv := file_list( );
t_rv.extend( raw2num( dbms_lob.substr( p_zipped_blob
, 2
, t_ind + 10
for i in 1 .. raw2num( dbms_lob.substr( p_zipped_blob
, 2
, t_ind + 8
loop
t_rv( i ) :=
raw2varchar2
( dbms_lob.substr( p_zipped_blob
, raw2num( dbms_lob.substr( p_zipped_blob
, 2
, t_hd_ind + 28
, t_hd_ind + 46
, p_encoding
t_hd_ind :=
t_hd_ind
+ 46
+ raw2num( dbms_lob.substr( p_zipped_blob
, 2
, t_hd_ind + 28
+ raw2num( dbms_lob.substr( p_zipped_blob
, 2
, t_hd_ind + 30
+ raw2num( dbms_lob.substr( p_zipped_blob
, 2
, t_hd_ind + 32
end loop;
return t_rv;
end;
function get_file(
p_dir in varchar2
, p_zip_file in varchar2
, p_file_name in varchar2
, p_encoding in varchar2 := null
return blob
is
begin
return get_file( file2blob( p_dir
, p_zip_file
, p_file_name
, p_encoding
end;
function get_file(
p_zipped_blob in blob
, p_file_name in varchar2
, p_encoding in varchar2 := null
return blob
is
t_tmp blob;
t_ind integer;
t_hd_ind integer;
t_fl_ind integer;
begin
t_ind := dbms_lob.getlength( p_zipped_blob ) - 21;
loop
exit when dbms_lob.substr( p_zipped_blob
, 4
, t_ind
) = hextoraw( '504B0506' )
or t_ind < 1;
t_ind := t_ind - 1;
end loop;
if t_ind <= 0
then
return null;
end if;
t_hd_ind := raw2num( dbms_lob.substr( p_zipped_blob
, 4
, t_ind + 16
) ) + 1;
for i in 1 .. raw2num( dbms_lob.substr( p_zipped_blob
, 2
, t_ind + 8
loop
if p_file_name =
raw2varchar2
( dbms_lob.substr( p_zipped_blob
, raw2num( dbms_lob.substr( p_zipped_blob
, 2
, t_hd_ind + 28
, t_hd_ind + 46
, p_encoding
then
if dbms_lob.substr( p_zipped_blob
, 2
, t_hd_ind + 10
) = hextoraw( '0800' ) -- deflate
then
t_fl_ind :=
raw2num( dbms_lob.substr( p_zipped_blob
, 4
, t_hd_ind + 42
t_tmp := hextoraw( '1F8B0800000000000003' ); -- gzip header
dbms_lob.copy( t_tmp
, p_zipped_blob
, raw2num( dbms_lob.substr( p_zipped_blob
, 4
, t_fl_ind + 19
, 11
, t_fl_ind
+ 31
+ raw2num( dbms_lob.substr( p_zipped_blob
, 2
, t_fl_ind + 27
+ raw2num( dbms_lob.substr( p_zipped_blob
, 2
, t_fl_ind + 29
dbms_lob.append( t_tmp
, dbms_lob.substr( p_zipped_blob
, 4
, t_fl_ind + 15
dbms_lob.append( t_tmp
, dbms_lob.substr( p_zipped_blob, 4, t_fl_ind + 23 )
return utl_compress.lz_uncompress( t_tmp );
end if;
if dbms_lob.substr( p_zipped_blob
, 2
, t_hd_ind + 10
) =
hextoraw( '0000' )
-- The file is stored (no compression)
then
t_fl_ind :=
raw2num( dbms_lob.substr( p_zipped_blob
, 4
, t_hd_ind + 42
return dbms_lob.substr( p_zipped_blob
, raw2num( dbms_lob.substr( p_zipped_blob
, 4
, t_fl_ind + 19
, t_fl_ind
+ 31
+ raw2num( dbms_lob.substr( p_zipped_blob
, 2
, t_fl_ind + 27
+ raw2num( dbms_lob.substr( p_zipped_blob
, 2
, t_fl_ind + 29
end if;
end if;
t_hd_ind :=
t_hd_ind
+ 46
+ raw2num( dbms_lob.substr( p_zipped_blob
, 2
, t_hd_ind + 28
+ raw2num( dbms_lob.substr( p_zipped_blob
, 2
, t_hd_ind + 30
+ raw2num( dbms_lob.substr( p_zipped_blob
, 2
, t_hd_ind + 32
end loop;
return null;
end;
function little_endian(
p_big in number
, p_bytes in pls_integer := 4
return raw
is
begin
return utl_raw.substr
( utl_raw.cast_from_binary_integer( p_big
, utl_raw.little_endian
, 1
, p_bytes
end;
procedure add1file(
p_zipped_blob in out blob
, p_name in varchar2
, p_content in blob
is
t_now date;
t_blob blob;
t_clen integer;
begin
t_now := sysdate;
t_blob := utl_compress.lz_compress( p_content );
t_clen := dbms_lob.getlength( t_blob );
if p_zipped_blob is null
then
dbms_lob.createtemporary( p_zipped_blob
, true
end if;
dbms_lob.append
( p_zipped_blob
, utl_raw.concat
( hextoraw( '504B0304' ) -- Local file header signature
, hextoraw( '1400' ) -- version 2.0
, hextoraw( '0000' ) -- no General purpose bits
, hextoraw( '0800' ) -- deflate
, little_endian
( to_number( to_char( t_now
, 'ss'
) ) / 2
+ to_number( to_char( t_now
, 'mi'
) ) * 32
+ to_number( to_char( t_now
, 'hh24'
) ) * 2048
, 2
) -- File last modification time
, little_endian
( to_number( to_char( t_now
, 'dd'
+ to_number( to_char( t_now
, 'mm'
) ) * 32
+ ( to_number( to_char( t_now
, 'yyyy'
) ) - 1980 ) * 512
, 2
) -- File last modification date
, dbms_lob.substr( t_blob
, 4
, t_clen - 7
) -- CRC-32
, little_endian( t_clen - 18 ) -- compressed size
, little_endian( dbms_lob.getlength( p_content ) )
-- uncompressed size
, little_endian( length( p_name )
, 2
) -- File name length
, hextoraw( '0000' ) -- Extra field length
, utl_raw.cast_to_raw( p_name ) -- File name
dbms_lob.copy( p_zipped_blob
, t_blob
, t_clen - 18
, dbms_lob.getlength( p_zipped_blob ) + 1
, 11
); -- compressed content
dbms_lob.freetemporary( t_blob );
end;
procedure finish_zip(
p_zipped_blob in out blob
is
t_cnt pls_integer := 0;
t_offs integer;
t_offs_dir_header integer;
t_offs_end_header integer;
t_comment raw( 32767 )
:= utl_raw.cast_to_raw( 'Implementation by Anton Scheffer' );
begin
t_offs_dir_header := dbms_lob.getlength( p_zipped_blob );
t_offs := dbms_lob.instr( p_zipped_blob
, hextoraw( '504B0304' )
, 1
while t_offs > 0
loop
t_cnt := t_cnt + 1;
dbms_lob.append
( p_zipped_blob
, utl_raw.concat
( hextoraw( '504B0102' )
-- Central directory file header signature
, hextoraw( '1400' ) -- version 2.0
, dbms_lob.substr( p_zipped_blob
, 26
, t_offs + 4
, hextoraw( '0000' ) -- File comment length
, hextoraw( '0000' ) -- Disk number where file starts
, hextoraw( '0100' ) -- Internal file attributes
, hextoraw( '2000B681' ) -- External file attributes
, little_endian( t_offs - 1 )
-- Relative offset of local file header
, dbms_lob.substr
( p_zipped_blob
, utl_raw.cast_to_binary_integer
( dbms_lob.substr( p_zipped_blob
, 2
, t_offs + 26
, utl_raw.little_endian
, t_offs + 30
) -- File name
t_offs :=
dbms_lob.instr( p_zipped_blob
, hextoraw( '504B0304' )
, t_offs + 32
end loop;
t_offs_end_header := dbms_lob.getlength( p_zipped_blob );
dbms_lob.append
( p_zipped_blob
, utl_raw.concat
( hextoraw( '504B0506' ) -- End of central directory signature
, hextoraw( '0000' ) -- Number of this disk
, hextoraw( '0000' ) -- Disk where central directory starts
, little_endian
( t_cnt
, 2
) -- Number of central directory records on this disk
, little_endian( t_cnt
, 2
) -- Total number of central directory records
, little_endian( t_offs_end_header - t_offs_dir_header )
-- Size of central directory
, little_endian
( t_offs_dir_header )
-- Relative offset of local file header
, little_endian
( nvl( utl_raw.length( t_comment )
, 0
, 2
) -- ZIP file comment length
, t_comment
end;
procedure save_zip(
p_zipped_blob in blob
, p_dir in varchar2 := 'MY_DIR'
, p_filename in varchar2 := 'my.zip'
is
t_fh utl_file.file_type;
t_len pls_integer := 32767;
begin
t_fh := utl_file.fopen( p_dir
, p_filename
, 'wb'
for i in 0 .. trunc( ( dbms_lob.getlength( p_zipped_blob ) - 1 ) / t_len )
loop
utl_file.put_raw( t_fh
, dbms_lob.substr( p_zipped_blob
, t_len
, i * t_len + 1
end loop;
utl_file.fclose( t_fh );
end;
end;
/ -
Cannot use winzip to unzip the zip file zipped by java.util.zip
Hi all,
I use the followcode to create a zip file, and i downlaod it and try to use winzip to unzip this file but fail. The path is correct and i got the zip file. but it just cannot unzip.
pls help
thanks alot.
Kin
int count = 0;
count = ContentDocuments.size();
for (int i = 0; i < bb; i++) {
System.out.println(filenames[i] + "");
// Create a buffer for reading the files
byte[] buf = new byte[10*1024*1024];
try {
String outFilename = MyDir + "zipfile/" + getContentID2()+".zip";
System.out.println("outFilename = " + outFilename);
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outFilename));
for (int i=0; i<filenames.length; i++) {
FileInputStream in = new FileInputStream(filenames);
out.putNextEntry(new ZipEntry(filenames[i]));
int len;
while ((len = in.read(buf)) != -1) {
out.write(buf, 0, len);
out.closeEntry();
in.close();
out.close();
} catch (IOException e) {
System.err.println("zipprocess " + e.getMessage());I've written a replacement zip file creator class. Not much tested but it seems to work, however I've yet to try it with the version of WINZIP that rejected my previous attempts. Oh, and the stored dates are garbage.
* ZipOutputFile.java
* Created on 25 March 2004, 13:08
package zip;
import java.io.IOException;
import java.nio.ByteBuffer;
* <p>Creates a ZIP archive in a file which WINZIP should be able to read.</p>
* <p>Unfortunately zip archives generated by the standard Java class
* {@link java.util.zip.ZipOutputStream}, while adhering to PKZIPs format specification,
* don't appear to be readable by some versions of WinZip and similar utilities. This is
* probably because they use
* a format specified for writing to a non-seakable stream, where the length and CRC of
* a file is writen to a special block following the data. Since the length of the binary
* date is unknown this makes an archive quite complicated to read, and it looks like
* WinZip hasn't bothered.</p>
* <p>All data is Deflated. Close completes the archive, flush terminates the current entry.</p>
* @see java.util.zip.ZipOutputStream
* @author Malcolm McMahon
public class ZipOutputFile extends java.io.OutputStream {
byte[] oneByte = new byte[1];
java.io.RandomAccessFile archive;
public final static short DEFLATE_METHOD = 8;
public final static short VERSION_CODE = 20;
public final static short MIN_VERSION = 10;
public final static int ENTRY_HEADER_MAGIC = 0x04034b50;
public final static int CATALOG_HEADER_MAGIC = 0x02014b50;
public final static int CATALOG_END_MAGIC = 0x06054b50;
private final static short DISC_NUMBER = 0;
ByteBuffer entryHeader = ByteBuffer.wrap(new byte[30]);
ByteBuffer entryLater = ByteBuffer.wrap(new byte[12]);
java.util.zip.CRC32 crcAcc = new java.util.zip.CRC32();
java.util.zip.Deflater def = new java.util.zip.Deflater(java.util.zip.Deflater.DEFLATED, true);
int totalCompressed;
long MSEPOCH;
byte [] deflateBuf = new byte[2048];
public static final long SECONDS_TO_DAYS = 60 * 60 * 24;
* Entry stores info about each file stored
private class Entry {
long offset; // position of header in file
byte[] name;
long crc;
int compressedSize;
int uncompressedSize;
java.util.Date date;
* Contructor also writes initial header.
* @param fileName Name under which data is stored.
* @param date Date to label the file with
* @TODO get the date stored properly
public Entry(String fileName, java.util.Date date) throws IOException {
name = fileName.getBytes();
this.date = date == null ? new java.util.Date() : date;
entryHeader.position(10);
putDate(entryHeader);
entryHeader.putShort(26, (short)name.length);
offset = archive.getFilePointer();
archive.write(entryHeader.array());
archive.write(name);
catalog.add(this);
crcAcc.reset();
totalCompressed = 0;
def.reset();
* Finish writing entry data. Save the lenghts & crc for catalog
* and go back and fill them in in the entry header.
public void close() throws IOException {
def.finish();
while(!def.finished())
deflate();
entryLater.position(0);
crc = crcAcc.getValue();
compressedSize = totalCompressed;
uncompressedSize = def.getTotalIn();
entryLater.putInt((int)crc);
entryLater.putInt(compressedSize);
entryLater.putInt(uncompressedSize);
long eof = archive.getFilePointer();
archive.seek(offset + 14);
archive.write(entryLater.array());
archive.seek(eof);
* Write the catalog data relevant to this entry. Buffer is
* preloaded with fixed data.
* @param buf Buffer to organise fixed lenght part of header
public void writeCatalog(ByteBuffer buf) throws IOException {
buf.position(12);
putDate(buf);
buf.putInt((int)crc);
buf.putInt(compressedSize);
buf.putInt(uncompressedSize);
buf.putShort((short)name.length);
buf.putShort((short)0); // extra field length
buf.putShort((short)0); // file comment length
buf.putShort(DISC_NUMBER); // disk number
buf.putShort((short)0); // internal attributes
buf.putInt(0); // external file attributes
buf.putInt((int)offset); // file position
archive.write(buf.array());
archive.write(name);
* This writes the entries date in MSDOS format.
* @param buf Where to write it
* @TODO Get this generating sane dates
public void putDate(ByteBuffer buf) {
long msTime = (date.getTime() - MSEPOCH) / 1000;
buf.putShort((short)(msTime % SECONDS_TO_DAYS));
buf.putShort((short)(msTime / SECONDS_TO_DAYS));
private Entry entryInProgress = null; // entry currently being written
private java.util.ArrayList catalog = new java.util.ArrayList(12); // all entries
* Start a new output file.
* @param name The name to store as
* @param date Date - null indicates current time
public java.io.OutputStream openEntry(String name, java.util.Date date) throws IOException{
if(entryInProgress != null)
entryInProgress.close();
entryInProgress = new Entry(name, date);
return this;
* Creates a new instance of ZipOutputFile
* @param fd The file to write to
public ZipOutputFile(java.io.File fd) throws IOException {
this(new java.io.RandomAccessFile(fd, "rw"));
* Create new instance of ZipOutputFile from RandomAccessFile
* @param archive RandomAccessFile
public ZipOutputFile(java.io.RandomAccessFile archive) {
this.archive = archive;
entryHeader.order(java.nio.ByteOrder.LITTLE_ENDIAN); // create fixed fields of header
entryLater.order(java.nio.ByteOrder.LITTLE_ENDIAN);
entryHeader.putInt(ENTRY_HEADER_MAGIC);
entryHeader.putShort(MIN_VERSION);
entryHeader.putShort((short)0); // general purpose flag
entryHeader.putShort(DEFLATE_METHOD);
java.util.Calendar cal = java.util.Calendar.getInstance();
cal.clear();
cal.set(java.util.Calendar.YEAR, 1950);
cal.set(java.util.Calendar.DAY_OF_MONTH, 1);
// def.setStrategy(Deflater.HUFFMAN_ONLY);
MSEPOCH = cal.getTimeInMillis();
* Writes the master catalogue and postamble and closes the archive file.
public void close() throws IOException{
if(entryInProgress != null)
entryInProgress.close();
ByteBuffer catEntry = ByteBuffer.wrap(new byte[46]);
catEntry.order(java.nio.ByteOrder.LITTLE_ENDIAN);
catEntry.putInt(CATALOG_HEADER_MAGIC);
catEntry.putShort(VERSION_CODE);
catEntry.putShort(MIN_VERSION);
catEntry.putShort((short)0);
catEntry.putShort(DEFLATE_METHOD);
long catStart = archive.getFilePointer();
for(java.util.Iterator it = catalog.iterator(); it.hasNext();) {
((Entry)it.next()).writeCatalog(catEntry);
catEntry.position(0);
catEntry.putInt(CATALOG_END_MAGIC);
catEntry.putShort(DISC_NUMBER);
catEntry.putShort(DISC_NUMBER);
catEntry.putShort((short)catalog.size());
catEntry.putShort((short)catalog.size());
catEntry.putInt((int)(archive.getFilePointer() - catStart));
catEntry.putInt((int)catStart);
catEntry.putShort((short)0);
archive.write(catEntry.array(), 0, catEntry.position());
archive.setLength(archive.getFilePointer()); // truncate if old file
archive.close();
def.end();
* Closes entry in progress.
public void flush() throws IOException{
if(entryInProgress == null)
throw new IllegalStateException("Must call openEntry before writing");
entryInProgress.close();
entryInProgress = null;
* Standard write routine. Defined by {@link java.io.OutputStream}.
* Can only be used once openEntry has defined the file.
* @param b Bytes to write
public void write(byte[] b) throws IOException{
if(entryInProgress == null)
throw new IllegalStateException("Must call openEntry before writing");
crcAcc.update(b);
def.setInput(b);
while(!def.needsInput())
deflate();
* Standard write routine. Defined by {@link java.io.OutputStream}.
* Can only be used once openEntry has defined the file.
* @param b Bytes to write
public void write(int b) throws IOException{
oneByte[0] = (byte)b;
crcAcc.update(b);
write(oneByte, 0, 1);
* Standard write routine. Defined by {@link java.io.OutputStream}.
* Can only be used once openEntry has defined the file.
* @param b Bytes to write
* @param off Start offset
* @param len Byte count
public void write(byte[] b, int off, int len) throws IOException{
if(entryInProgress == null)
throw new IllegalStateException("Must call openEntry before writing");
crcAcc.update(b, off, len);
def.setInput(b, off, len);
while(!def.needsInput())
deflate();
* Gets a buffer full of coded data from the deflater and writes it to archive.
private void deflate() throws IOException {
int len = def.deflate(deflateBuf);
totalCompressed += len;
if(len > 0)
archive.write(deflateBuf, 0, len); -
RequestFocus() not working for JTextArea
requestFocus() is not working for JTextArea.
A validation message is displayed and when clicked on 'ok', requestFocus() does not work. Cursor is not shown in the text
area.
Any suggestions/solutions pls?here is the sample code:
public boolean checkData()
String comment = commentArea.getText().trim();
if( comment.length() < MN_COMMENT || comment.length() > MX_COMMENT )
showError(COMMENT_ALERT);
commentArea.requestFocus();
return false;
return true;
Focus is lost. TextArea is in scroll pane. Scroll pane is contanined in a container pane and pane is for JDialog.
RequestFocus() is working for JRE 1.5.0_07. But its not working for JRE 1.5.0_0 and lower versions. -
JTable, how to highlight cells with tooltips?
Hello all!
Mine problem is descriped in the topic - I though about custom cell renderer but I dont have an Idea how to change background for many other cells in other rows and don't change background in whole columns. Any of You could help?Hey thanks for replying.
With code like that:
public class yellowCellRenderer
extends DefaultTableCellRenderer
private int whichRow = 0;
public yellowCellRenderer(int saveToRow)
this.whichRow = saveToRow;
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column)
if(this.whichRow == row){
this.setBackground(Color.YELLOW); // All columns verified were empty - set our background RED
return this;
}and usage:
comments.add(comment);
JTable table = getMainTable();
TableColumnModel colModel = table.getColumnModel();
for(int i=0;i<comment.length;i++){
if(!Main.isStringEmpty((String)comment)){
TableColumn column = colModel.getColumn(i);
column.setCellRenderer(
new yellowCellRenderer(table.getRowCount()-1)
Every each cell in column gets yellow background... What am I doing wrong? -
UTL_COMPRESS Zipping Multiple BLOBs
Hey everyone, I'm having trouble figuring out how to use UTL_COMPRESS.
What I want to do is take several BLOBs from one table, and put them into one zip file. Can anyone show me an example of where this is done?
Here is some sample code of what I have so far:
My table:
CREATE TABLE "FILES"
( "FILE_ID" NUMBER,
"FILE_TYPE" NUMBER,
"FILENAME" VARCHAR2(1000),
"DATE_ADDED" DATE,
"ADDED_BY" VARCHAR2(255),
"FILE_BLOB" BLOB,
/Some sample code:
DECLARE
b_dl_file1 BLOB;
b_dl_file2 BLOB;
b_dl_file3 BLOB;
b_compressed_file BLOB;
BEGIN
select FILE_BLOB
into b_dl_file1
from FILES
where FILE_ID = 64;
select FILE_BLOB
into b_dl_file2
from FILES
where FILE_ID = 65;
select FILE_BLOB
into b_dl_file3
from FILES
where FILE_ID = 66;
b_compressed_file := UTL_COMPRESS.LZ_COMPRESS(b_dl_file1);
END;So what I've posted works fine, it compresses a single file. What I want is to take all three of those blobs (for example) and add them to one zip file. I've looked into using UTL_COMPRESS.LZ_COMPRESS_ADD, but as far as I can see, that only takes RAW data. Will I have to break my BLOBs into RAW strings and then compress those? Will that even work?
Any help would be appreciated!Wow! Thanks! That's exactly what I'm looking for. I'm having some trouble getting this code to run though, I'm recieving the following error:
"ORA-06502: PL/SQL: numeric or value error: invalid LOB locator specified: ORA-22275 "
I've been debugging and it looks like its coming from the add1file procedure.
I modified the code a bit to make it into a package:
CREATE OR REPLACE PACKAGE zip_blobs AS
/*Package written by Anton Scheffer, used with permission*/
PROCEDURE add1file(p_zipped_blob in out blob, p_name in varchar2, p_content in blob);
PROCEDURE finish_zip(p_zipped_blob in out blob);
PROCEDURE save_zip(p_zipped_blob in blob, p_dir in varchar2, p_filename in varchar2);
END zip_blobs;
CREATE OR REPLACE PACKAGE BODY zip_blobs AS
function little_endian( p_big in number, p_bytes in pls_integer := 4 )
return raw
is
begin
return utl_raw.substr( utl_raw.cast_from_binary_integer( p_big, utl_raw.little_endian ), 1, p_bytes );
end;
procedure add1file
( p_zipped_blob in out blob
, p_name in varchar2
, p_content in blob
is
t_now date;
t_blob blob;
t_clen integer;
begin
t_now := sysdate;
t_blob := utl_compress.lz_compress( p_content );
t_clen := dbms_lob.getlength( t_blob );
if p_zipped_blob is null
then
dbms_lob.createtemporary( p_zipped_blob, true );
end if;
dbms_lob.append( p_zipped_blob
, utl_raw.concat( hextoraw( '504B0304' ) -- Local file header signature
, hextoraw( '1400' ) -- version 2.0
, hextoraw( '0000' ) -- no General purpose bits
, hextoraw( '0800' ) -- deflate
, little_endian( to_number( to_char( t_now, 'ss' ) ) / 2
+ to_number( to_char( t_now, 'mi' ) ) * 32
+ to_number( to_char( t_now, 'hh24' ) ) * 2048
, 2
) -- File last modification time
, little_endian( to_number( to_char( t_now, 'dd' ) )
+ to_number( to_char( t_now, 'mm' ) ) * 32
+ ( to_number( to_char( t_now, 'yyyy' ) ) - 1980 ) * 512
, 2
) -- File last modification date
, dbms_lob.substr( t_blob, 4, t_clen - 7 ) -- CRC-32
, little_endian( t_clen - 18 ) -- compressed size
, little_endian( dbms_lob.getlength( p_content ) ) -- uncompressed size
, little_endian( length( p_name ), 2 ) -- File name length
, hextoraw( '0000' ) -- Extra field length
, utl_raw.cast_to_raw( p_name ) -- File name
dbms_lob.append( p_zipped_blob, dbms_lob.substr( t_blob, t_clen - 18, 11 ) ); -- compressed content
dbms_lob.freetemporary( t_blob );
end;
procedure finish_zip( p_zipped_blob in out blob )
is
t_cnt pls_integer := 0;
t_offs integer;
t_offs_dir_header integer;
t_offs_end_header integer;
t_comment raw(32767) := utl_raw.cast_to_raw( 'Implementation by Anton Scheffer' );
begin
t_offs_dir_header := dbms_lob.getlength( p_zipped_blob );
t_offs := dbms_lob.instr( p_zipped_blob, hextoraw( '504B0304' ), 1 );
while t_offs > 0
loop
t_cnt := t_cnt + 1;
dbms_lob.append( p_zipped_blob
, utl_raw.concat( hextoraw( '504B0102' ) -- Central directory file header signature
, hextoraw( '1400' ) -- version 2.0
, dbms_lob.substr( p_zipped_blob, 26, t_offs + 4 )
, hextoraw( '0000' ) -- File comment length
, hextoraw( '0000' ) -- Disk number where file starts
, hextoraw( '0100' ) -- Internal file attributes
, hextoraw( '2000B681' ) -- External file attributes
, little_endian( t_offs - 1 ) -- Relative offset of local file header
, dbms_lob.substr( p_zipped_blob
, utl_raw.cast_to_binary_integer( dbms_lob.substr( p_zipped_blob, 2, t_offs + 26 ), utl_raw.little_endian )
, t_offs + 30
) -- File name
t_offs := dbms_lob.instr( p_zipped_blob, hextoraw( '504B0304' ), t_offs + 32 );
end loop;
t_offs_end_header := dbms_lob.getlength( p_zipped_blob );
dbms_lob.append( p_zipped_blob
, utl_raw.concat( hextoraw( '504B0506' ) -- End of central directory signature
, hextoraw( '0000' ) -- Number of this disk
, hextoraw( '0000' ) -- Disk where central directory starts
, little_endian( t_cnt, 2 ) -- Number of central directory records on this disk
, little_endian( t_cnt, 2 ) -- Total number of central directory records
, little_endian( t_offs_end_header - t_offs_dir_header ) -- Size of central directory
, little_endian( t_offs_dir_header ) -- Relative offset of local file header
, little_endian( nvl( utl_raw.length( t_comment ), 0 ), 2 ) -- ZIP file comment length
, t_comment
end;
procedure save_zip
( p_zipped_blob in blob
, p_dir in varchar2
, p_filename in varchar2
is
t_fh utl_file.file_type;
t_len pls_integer := 32767;
begin
t_fh := utl_file.fopen( p_dir, p_filename, 'wb' );
for i in 0 .. trunc( ( dbms_lob.getlength( p_zipped_blob ) - 1 ) / t_len )
loop
utl_file.put_raw( t_fh, dbms_lob.substr( p_zipped_blob, t_len, i * t_len + 1 ) );
end loop;
utl_file.fclose( t_fh );
end;
END zip_blobs;My code:
DECLARE
b_dl_file1 BLOB;
b_dl_file2 BLOB;
b_dl_file3 BLOB;
b_zipped_blob BLOB;
BEGIN
select FILE_BLOB
into b_dl_file1
from FILES
where FILE_ID = 64;
select FILE_BLOB
into b_dl_file2
from FILES
where FILE_ID = 65;
select FILE_BLOB
into b_dl_file3
from FILES
where FILE_ID = 66;
zip_blobs.add1file(b_zipped_blob, 'test1.bin', b_dl_file1);
zip_blobs.add1file(b_zipped_blob, 'test2.bin', b_dl_file2);
zip_blobs.add1file(b_zipped_blob, 'test3.bin', b_dl_file3);
zip_blobs.finish_zip(b_zipped_blob);
insert into compressed_files(compressed_blob) values(b_zipped_blob);
END;So I'm inserting it into a table, but even when I use save_zip, I get the same error. I tried playing around with freeing p_zipped_blob and not freeing t_blob, but it didn't seem to work, and I'm not seeing where else it could be going wrong. Any more help would be awesome!
Thanks! -
EDIT limit of a column in ALV grid
I want to have an editable column in my ALV grid program.
i am using below code while creating field catalog.
gwa_fieldcat-tabname = text-02. "'GIT_BOM_REP'.
gwa_fieldcat-fieldname = COMMENT. "'Comment'.
gwa_fieldcat-seltext_l = text-058. "'Comment'.
gwa_fieldcat-edit = gc_x.
APPEND gwa_fieldcat TO git_fieldcat.
CLEAR gwa_fieldcat.
I am able to write in the output, but the problem is i can write only upto 10 characters.
Field length for this editable column is 200 and type is C.
Please suggest.
Thanks in Advance,
James.Thanks for your reply.....
I am using this code also:
*Layout to set width.
gwa_layout-colwidth_optimize = gc_x.
gwa_layout-box_fieldname = 'BOX'.
gwa_layout-box_tabname = 'GIT_BOM_REP'.
GIT_BOM_REP-COMMENT length is 200 and typ is C.
this is the 20th column in my ALV report. and i am using REUSE_ALV_GRID_DISPLAY FM.
Regards,
James -
Assertion Error when an action is invoked
We have a form which has multiple input fields as well as some dropdowns.
Example Dropdown 1, Dropdown 2
When you click the value in Dropdown 1, based on it Dropdown 2 is dynamically populated.
It was working fine for us previously. Somehow now when we click on Dropdown 1, it gives the following exception:
Error opening /pageFlowControllers/companyLocationController/CompanyLocationController.jpf.
The source of this error is:
com.bea.portlet.adapter.scopedcontent.ActionLookupFailedException: java.lang.AssertionError
at com.bea.portlet.adapter.scopedcontent.ScopedContentCommonSupport.executeAction(ScopedContentCommonSupport.java:699)
at com.bea.portlet.adapter.scopedcontent.ScopedContentCommonSupport.processActionInternal(ScopedContentCommonSupport.java:144)
at com.bea.portlet.adapter.scopedcontent.PageFlowStubImpl.processAction(PageFlowStubImpl.java:107)
at com.bea.portlet.adapter.NetuiActionHandler.raiseScopedAction(NetuiActionHandler.java:99)
at com.bea.netuix.servlets.controls.content.NetuiContent.raiseScopedAction(NetuiContent.java:180)
at com.bea.netuix.servlets.controls.content.NetuiContent.raiseScopedAction(NetuiContent.java:168)
at com.bea.netuix.servlets.controls.content.NetuiContent.handlePostbackData(NetuiContent.java:222)
at com.bea.netuix.nf.ControlLifecycle$2.visit(ControlLifecycle.java:178)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:351)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:361)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:361)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:361)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:361)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:361)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:361)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:361)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:361)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:361)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:361)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:361)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:361)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:361)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:361)
at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:128)
at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:361)
at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:339)
at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:330)
at com.bea.netuix.nf.Lifecycle.runInbound(Lifecycle.java:162)
at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:137)
at com.bea.netuix.servlets.manager.UIServlet.runLifecycle(UIServlet.java:370)
at com.bea.netuix.servlets.manager.UIServlet.doPost(UIServlet.java:229)
at com.bea.netuix.servlets.manager.UIServlet.service(UIServlet.java:183)
at com.bea.netuix.servlets.manager.SingleFileServlet.service(SingleFileServlet.java:221)
at com.bea.netuix.servlets.manager.PortalServlet.service(PortalServlet.java:594)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.bea.p13n.servlets.PortalServletFilter.doFilter(PortalServletFilter.java:251)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3243)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2003)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1909)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
Caused by: java.lang.AssertionError
at org.apache.beehive.netui.script.el.util.ParseUtils.convertType(ParseUtils.java:185)
at org.apache.beehive.netui.script.el.tokens.ExpressionToken.beanUpdate(ExpressionToken.java:211)
at org.apache.beehive.netui.script.el.tokens.IdentifierToken.write(IdentifierToken.java:96)
at org.apache.beehive.netui.script.el.ExpressionTerm.update(ExpressionTerm.java:165)
at org.apache.beehive.netui.script.el.ParsedExpression.update(ParsedExpression.java:140)
at org.apache.beehive.netui.script.el.util.ParseUtils.update(ParseUtils.java:91)
at org.apache.beehive.netui.script.el.ExpressionEvaluatorImpl.update(ExpressionEvaluatorImpl.java:83)
at org.apache.beehive.netui.pageflow.ProcessPopulate.populate(ProcessPopulate.java:229)
at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processPopulate(PageFlowRequestProcessor.java:327)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processInternal(PageFlowRequestProcessor.java:554)
at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:851)
at org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:630)
at org.apache.beehive.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:157)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at org.apache.beehive.netui.pageflow.PageFlowUtils.strutsLookup(PageFlowUtils.java:1169)
at com.bea.portlet.adapter.scopedcontent.ScopedContentCommonSupport.executeAction(ScopedContentCommonSupport.java:688)
... 49 more
Basically what I can see from the logs is that it is unable to do an action look up. The funny part of it is that on some of the developer machines the code is working fine while in some case it is breaking. The same code was working fine earlier.I tried googling up but unable to find any help on this. Can you please suggest what can be the possible issue (may be some silly mistake causing this to happen)?Its not the same functionality which is working and
failing
(ignore referrer it isnt relevant)
"CompanyAddressPortlet_1_2wlw-select_key:{actionForm.B
BcpPopId}"
is missing from the failing code, probably a code
issue , perhaps your validation method is throwing a
runtime exception
Ensure you test EXACTLY the same thing from both
machines
regards
deepakHi Deepak,
Yes I did see that difference when i checked the diff of both the log files but I am unable to make out what is causing this difference.
1. The same code is executed on different machines. In most of the machines it is failing. However, for some machines it is working.
2. The logs attached in last email were produced testing the same functionality oin both the machines.
3. If it is a code issue, how can the same code when executed on other environment is working.
I am unable to trace it down. Can you please let me know if you can figure out something. I am attaching the JSP which is being executed,.
<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<%@taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="/WEB-INF/tld/custom-translation.tld" prefix="colt"%>
<jsp:useBean id="moduleNameEnum" beanName="com.colt.util.ModuleNameEnum" scope="page"></jsp:useBean>
<script language="JavaScript">
//here you place the ids of every element you want.
var ids=new Array('a1','a2');
function switchid(id){
hideallids();
showdiv(id);
function hideallids(){
//loop through the array and hide each element by id
for (var i=0;i<ids.length;i++){
hidediv(ids);
function hidediv(id) {
//safe function to hide an element with a specified id
if (document.getElementById) { // DOM3 = IE5, NS6
document.getElementById(id).style.display = 'none';
else {
if (document.layers) { // Netscape 4
document.id.display = 'none';
else { // IE 4
document.all.id.style.display = 'none';
function showdiv(id) {
//safe function to show an element with a specified id
if (document.getElementById) { // DOM3 = IE5, NS6
document.getElementById(id).style.display = 'block';
else {
if (document.layers) { // Netscape 4
document.id.display = 'block';
else { // IE 4
document.all.id.style.display = 'block';
function openTemplate(requestid, requestType, fileName)
var strUrl="<%= request.getContextPath()%>/pageFlowControllers/resolveRequest/getUploadedFile.do?requestId=" + requestid + "&requestType=" requestType "&columnName=" +fileName;
popup_window = window.open(strUrl,"newWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,copyhistory=no,resizable=yes");
</script>
<!--************************ CONTENT ****************************-->
<c:if test="${requestScope.errorFlag!=null && requestScope.errorFlag eq 'true'}">
<script language="javascript">
setFlag();
</script>
</c:if>
<div id="gContentSalesArea">
<h1 class="uaPageTitle">
<colt:content key="request_Details">Request Details</colt:content>
<netui:anchor action="exception.goToHelp" popup="true">
<img src="/coltPortalWeb/framework/skins/coltBaseSkin/images/pageHelp_icon.gif" width="15" height="15" alt="${sessionScope.help_icon}" border="0" />
<netui:parameter name="module" value="${pageScope.moduleNameEnum.CREATE_REQUEST.moduleID}"></netui:parameter>
</netui:anchor>
</h1>
<colt:error key="request.bandwidth.required"></colt:error>
<colt:error key="request.currency.required"></colt:error>
<colt:error key="changesSuccessfullySaved"></colt:error>
<colt:error key="saveRequestBeforeSubmit"></colt:error>
<colt:error key="request.comments.length"></colt:error>
<colt:error key="required.bcpFile"></colt:error>
<colt:error key="request.quantity.required"></colt:error>
<colt:error key="request.interfaceField.required"></colt:error>
<colt:error key="request.productGroup.required"></colt:error>
<colt:error key="request.aendAddress.required"></colt:error>
<colt:error key="request.bendAddress.required"></colt:error>
<colt:error key="request.term.required"></colt:error>
<colt:error key="request.apop.required"></colt:error>
<colt:error key="request.bpop.required"></colt:error>
<colt:error key="request.potential.required"></colt:error>
<colt:error key="installAmtAfterDisc.invalid"></colt:error>
<colt:error key="installAmtBeforeDisc.invalid"></colt:error>
<colt:error key="monthlyRentAfterDisc.invalid"></colt:error>
<colt:error key="monthlyRentBeforeDisc.invalid"></colt:error>
<colt:error key="interfaceField.invalid"></colt:error>
<colt:error key="quantity.invalid"></colt:error>
<colt:error key="aendCompanyName.invalid.length"></colt:error>
<colt:error key="bendCompanyName.invalid.length"></colt:error>
<colt:error key="aendCompanyName.invalid"></colt:error>
<colt:error key="bendCompanyName.invalid"></colt:error>
<div class="ReqInfo"><span class="ReqInfobold">
<colt:content key="COMPANY">Company</colt:content>:</span>
<span style="padding:2px;"><c:out value="${sessionScope.addEditRequestVO.opportunityDetails.companyDetails.name}"></c:out></span> |
<span class="ReqInfobold"><colt:content key="companyAddress_OCN">OCN</colt:content>:</span>
<c:out value="${sessionScope.addEditRequestVO.opportunityDetails.companyDetails.xrefOCN}"></c:out> |
<span class="ReqInfobold"> <colt:content key="companyAddress_oppNo">OPP NO</colt:content>:</span>
<c:out value="${sessionScope.addEditRequestVO.opportunityDetails.xrefOpportunityNumber}"></c:out>
<c:if test="${requestScope.update!=null && requestScope.update eq 'true'}"> |
<span class="ReqInfobold"><colt:content key="resolve_request_number">Request number</colt:content>: </span>${pageFlow.requestId}</c:if></div>
<ul id="uaStepNav" class="uaSN1 uaNavDone">
<li class="fstep stepon"><span class="st1"><colt:content key="request_Company_Locations">Company/Locations</colt:content></span></li>
<li class="stepon"><span class="st2"><colt:content key="request_Requests">Requests</colt:content></span></li>
</ul>
<div id="uaStepContent">
<%@ include file="../../jsp/common/selectRequestType.jspf" %>
<netui:form action="saveBuildingConnectivityRequest" enctype="multipart/form-data" method="post">
<c:set var="requestVO" value="${pageFlow.pf_requestDetailsVO.requestVO}" scope="page" />
<c:set var="connectivityVO" value="${pageFlow.pf_requestDetailsVO.connectivityRequestVO}" scope="page" />
<c:set var="opportunityVO" value="${pageFlow.pf_opportunityVO}" scope="page" />
<c:set var="main" value="${pageFlow.pf_Main}" scope="page" />
<div id="dataRequest" class="salesP5">
<div class="salesHeader">
<h2><colt:content key="building_Connectivity_Request_Details">Building Connectivity Request Details</colt:content></h2>
</div>
<div id="salesMiddle1Pane" class="salesP4">
<div class="scrollareacommon">
<div class="grayboxcommon">
<fieldset>
<div>
<div class="bold">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<th width="3%" scope="col"> </th>
<netui:radioButtonGroup datasource="actionForm.mainRadio" defaultValue="1">
<th width="97%" scope="col">
<netui:radioButtonOption styleClass="width20" tagId="mainOption" value="1" onClick="switchid('a1');" disabled="${pageFlow.pf_Main_File}">
<label for="country"><colt:content key="stdBCP_fileUpload">BCP Form</colt:content>
</label>
</netui:radioButtonOption>
</th>
</tr>
</table>
</div>
<c:if test="${pageFlow.pf_File_Show eq 'true' && pageFlow.pf_Form_Show eq 'true'}">
<div id='a1' style="display:block;">
</c:if>
<c:if test="${pageFlow.pf_File_Show eq 'false' && pageFlow.pf_Form_Show eq 'true'}">
<div id='a1' style="display:none;">
</c:if>
<c:if test="${pageFlow.pf_File_Show eq 'true' && pageFlow.pf_Form_Show eq 'false'}">
<div id='a1' style="display:block;">
</c:if>
<c:if test="${pageFlow.pf_File_Show eq 'false' && pageFlow.pf_Form_Show eq 'true'
&& pageFlow.pf_Main_File eq 'true' && pageFlow.pf_Main eq 'false'}">
<div id='a1' style="display:none;">
</c:if>
<div class="addressInput">
<netui:fileUpload tagId="file" dataSource="actionForm.bcpfile" styleClass="file" />
</div>
<c:if test="${connectivityVO.bcpFile != null}">
<div class="download">
<netui:anchor href="javascript:openTemplate('${requestScope.requestID}','${pageFlow.pf_requestType}','${connectivityVO.bcpCreateFileName}Xcreate');">
Download Bcp File
</netui:anchor>
</div>
</c:if>
</div>
<div class="cls"></div>
</fieldset>
</div>
<div>
<div class="aligncentre">
<span class="grey constricty "><colt:content key="stdBCP_OR">OR</colt:content></span>
</div>
</div>
<div class="grayboxcommon">
<fieldset>
<div>
<div class="bold">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<th width="3%" scope="col"></th>
<th width="97%" scope="col">
<netui:radioButtonOption styleClass="width20" tagId="mainOption" value="2" onClick="switchid('a2');" disabled="${pageFlow.pf_Main}">
<label for="country"><colt:content key="stbBCP_FillForm">Fill the form below</colt:content>
</label>
</netui:radioButtonOption>
</th>
</netui:radioButtonGroup>
</tr>
</table>
</div>
<div class="cls"></div>
<c:if test="${pageFlow.pf_File_Show eq 'true' && pageFlow.pf_Form_Show eq 'true'}">
<div id='a2' style="display:none;">
</c:if>
<c:if test="${pageFlow.pf_File_Show eq 'false' && pageFlow.pf_Form_Show eq 'true'}">
<div id='a2' style="display:block;">
</c:if>
<c:if test="${pageFlow.pf_File_Show eq 'true' && pageFlow.pf_Form_Show eq 'false'}">
<div id='a2' style="display:none;">
</c:if>
<c:if test="${pageFlow.pf_File_Show eq 'false' && pageFlow.pf_Form_Show eq 'true' &&
pageFlow.pf_Main eq 'false' && pageFlow.pf_Main_File eq 'true'}">
<div id='a2' style="display:block;">
</c:if>
<div class="productTypeLabel">
<label for="product"><colt:content key="request_productGroup">Product Group</colt:content> *:</label>
</div>
<div class="addressInput">
<netui:select tagId="product" styleClass="producttypedd" dataSource="actionForm.product" onChange="setFlag();submitFormProduct('-1');">
<c:forEach var="productVO" items="${pageFlow.productVOList}">
<netui:selectOption value="${productVO.id}">
<colt:content key="${productVO.translationKey}"></colt:content>
</netui:selectOption>
</c:forEach>
</netui:select>
</div>
<div class="cls"></div>
<div class="productTypeLabel">
<label for="bandwidth"><colt:content key="request_Bandwidth">Bandwidth</colt:content> *:</label>
</div>
<div class="addressInput">
<netui:select tagId="bandwidth" styleClass="producttypedd" dataSource="actionForm.bandwidth" onChange="setFlag()">
<c:forEach var="bandwidthVO" items="${pageFlow.bandwidthVOList}">
<netui:selectOption value="${bandwidthVO.id}">
<colt:content key="${bandwidthVO.translationKey}"></colt:content>
</netui:selectOption>
</c:forEach>
</netui:select></div>
<div class="cls"></div>
<div class="productTypeLabel">
<label for="Contract Terms"><colt:content key="request_Contract_Terms_yrs">Contract Terms(Yrs)</colt:content> *:</label>
</div>
<div class="addressInput">
<netui:select tagId="terms" styleClass="producttypedd" dataSource="actionForm.termOfContract" onChange="setFlag()">
<c:forEach var="termOfContractVO" items="${pageFlow.termOfContractVOList}">
<netui:selectOption value="${termOfContractVO.id}">
<colt:content key="${termOfContractVO.translationKey}"></colt:content>
</netui:selectOption>
</c:forEach>
</netui:select>
</div>
<div class="cls"></div>
<div class="productTypeLabel">
<label for="Currency"><colt:content key="request_Currency">Currency</colt:content> *:</label>
</div>
<div class="addressInput">
<netui:select tagId="currency" styleClass="producttypedd" dataSource="actionForm.currency" onChange="setFlag()">
<c:forEach var="currencyVO" items="${pageFlow.currencyVOList}">
<netui:selectOption value="${currencyVO.code}">
<colt:content key="${currencyVO.translationKey}"></colt:content>
</netui:selectOption>
</c:forEach>
</netui:select>
</div>
<div class="cls"></div>
<div class="productTypeLabel">
<label for="interf"><colt:content key="request_interf">Interface</colt:content> *:</label>
</div>
<div class="addressInput">
<netui:textBox tagId="interf" onChange="setFlag()" styleClass="producttype" dataSource="actionForm.interfaceField" maxlength="50" /></div>
<div class="cls"></div>
<div class="productTypeLabel">
<label for="quantity"><colt:content key="request_quantity">Quantity</colt:content> *:</label>
</div>
<div class="addressInput">
<netui:textBox tagId="quantity" onChange="setFlag()" styleClass="producttype" dataSource="actionForm.quantity" maxlength="10" /></div>
<div class="cls"></div>
<div class="productTypeLabel">
<label for="potential"><colt:content key="request_potential">Potential</colt:content> *:</label>
</div>
<div class="addressInput">
<netui:select tagId="potential" styleClass="producttypedd" dataSource="actionForm.potential" onChange="setFlag()">
<c:forEach var="potentialVO" items="${pageFlow.potentialVOList}">
<netui:selectOption value="${potentialVO.id}">
<colt:content key="${potentialVO.translationKey}"></colt:content>
</netui:selectOption>
</c:forEach>
</netui:select>
</div>
<div class="cls" style="border-bottom:solid 2px #FFFFFF;"> </div>
<div class="cls"></div>
<div class="productTypeLabel">
<label for="address"><colt:content key="request_Address">Address</colt:content>:</label>
</div>
<div class="chooseadd" style="padding-top:3px">
<colt:content key="request_ChooseAddress">(Choose From List)</colt:content>
</div>
<div class="cls"></div>
<netui:radioButtonGroup dataSource="actionForm.radio">
<div>
<div class="productTypeLabel">
<netui:radioButtonOption onChange="setFlag()" styleClass="width20" tagId="AEnd" value="1">
<colt:content key="request_AEndAddress">A End</colt:content> *:
</netui:radioButtonOption>
</div>
<div class="addressInput">
<netui:textBox readonly="true" onChange="setFlag()" styleClass="producttype" tagId="aendAddress" dataSource="actionForm.aendAddress" maxlength="50"></netui:textBox>
<netui:hidden tagId="aendAddressId" dataSource="actionForm.aendAddressId"></netui:hidden>
</div>
<div class="cls"></div>
<div class="productTypeLabel">
<label for="company" style="margin-left:5px"><colt:content key="request_company">Company :</colt:content></label>
</div>
<div class="addressInput">
<netui:textBox tagId="aendCompany" onChange="setFlag()" styleClass="producttype" dataSource="actionForm.aendCompanyName" maxlength="50"/>
</div>
<div class="cls"></div>
<div class="productTypeLabel">
<label for="popid" style="display:block; margin-left:5px"><colt:content key="request_popid">POP ID(Check Xperweb)</colt:content> :</label>
</div>
<div class="addressInput">
<netui:textBox tagId="pop" onChange="setFlag()" styleClass="producttype" dataSource="actionForm.ABcpPop" />
</div>
<div class="cls"></div>
<div class="productTypeLabel">
<label for="pop" style="margin-left:5px"><colt:content key="request_pop">POP</colt:content> *:</label>
</div>
<div class="addressInput">
<netui:select tagId="aendpop" styleClass="producttypedd" dataSource="actionForm.ABcpPopId" onChange="setFlag()">
<c:forEach var="aendPopVO" items="${pageFlow.bcpVOList}">
<netui:selectOption value="${aendPopVO.id}">
<colt:content key="${aendPopVO.translationKey}"></colt:content>
</netui:selectOption>
</c:forEach>
</netui:select>
</div>
</div>
<div class="cls"></div>
<div>
<div class="productTypeLabel">
<netui:radioButtonOption onChange="setFlag()" styleClass="width20" tagId="BEnd" value="2">
<colt:content key="request_BEndAddress">B End</colt:content> *:
</netui:radioButtonOption>
</div>
<div class="addressInput">
<netui:textBox onChange="setFlag()" styleClass="producttype" tagId="bendAddress" dataSource="actionForm.bendAddress" readonly="true"></netui:textBox>
<netui:hidden tagId="bendAddressId" dataSource="actionForm.bendAddressId"></netui:hidden>
</div>
<div class="cls"></div>
<div class="productTypeLabel">
<label for="company" style="margin-left:5px"><colt:content key="request_company">Company :</colt:content></label>
</div>
<div class="addressInput">
<netui:textBox maxlength="50" tagId="aendCompany" onChange="setFlag()" styleClass="producttype" dataSource="actionForm.bendCompanyName" />
</div>
<div class="cls"></div>
<div class="productTypeLabel">
<label for="popid" style="display:block;margin-left:5px"><colt:content key="request_popid">POP ID(Check Xperweb)</colt:content> :</label>
</div>
<div class="addressInput">
<netui:textBox tagId="pop" onChange="setFlag()" styleClass="producttype"dataSource="actionForm.BBcpPop" />
</div>
<div class="cls"></div>
<div class="productTypeLabel">
<label for="pop" style="margin-left:5px"><colt:content key="request_pop">POP</colt:content> *:</label>
</div>
<div class="addressInput">
<netui:select tagId="bendpop" styleClass="producttypedd" dataSource="actionForm.BBcpPopId" onChange="setFlag()">
<c:forEach var="bendPopVO" items="${pageFlow.bcpVOList}">
<netui:selectOption value="${bendPopVO.id}">
<colt:content key="${bendPopVO.translationKey}"></colt:content>
</netui:selectOption>
</c:forEach>
</netui:select>
</div>
<div class="cls"></div>
</div>
<div class="cls"></div>
</netui:radioButtonGroup>
<div class="cls" style="border-bottom:solid 2px #FFFFFF;"> </div>
<div class="cls"></div>
<div class="bold">
<label for="revenue" style="font-size:12px;"><colt:content key="request_revenue">Revenue</colt:content></label>
</div>
<div class="cls"></div>
<div class="cls"></div>
<div class="bold">
<label for="before_discount" style="font-size:11.5px;"><colt:content key="request_beforeDiscount">Before Discount (As per product Price List)</colt:content></label>
</div>
<div class="productTypeLabel">
<label for="befInstallationCharge"><colt:content key="request_installationCharge">Installation Charge</colt:content> :</label>
</div>
<div class="addressInput">
<netui:textBox maxlength="10" tagId="befInstallationCharge" onChange="setFlag()" styleClass="producttype" dataSource="actionForm.inst_amt_before_disc" />
</div>
<div class="cls"></div>
<div class="productTypeLabel">
<label for="befMonRent"><colt:content key="request_monthlyRent">Monthly Rent/PSTN</colt:content> :</label>
</div>
<div class="addressInput">
<netui:textBox maxlength="10" tagId="befMonRent" onChange="setFlag()" styleClass="producttype" dataSource="actionForm.mon_rent_before_disc" />
</div>
<div class="cls"> </div>
<div class="bold">
<label for="after_discount"><colt:content key="request_afterDiscount">After Discount (Average discount applied over contract term)</colt:content></label>
</div>
<div class="cls"></div>
<div class="productTypeLabel">
<label for="aftInstallationCharge"><colt:content key="request_installationCharge">Installation Charge</colt:content> :</label>
</div>
<div class="addressInput">
<netui:textBox maxlength="10" tagId="aftInstallationCharge" onChange="setFlag()" styleClass="producttype" dataSource="actionForm.inst_amt_after_disc" />
</div>
<div class="cls"></div>
<div class="productTypeLabel">
<label for="aefMonRent"><colt:content key="request_monthlyRent">Monthly Rent/PSTN</colt:content> :</label>
</div>
<div class="addressInput">
<netui:textBox maxlength="10" tagId="befMonRent" onChange="setFlag()" styleClass="producttype" dataSource="actionForm.mon_rent_after_disc" />
</div>
<div class="cls"></div>
</div>
</fieldset>
<div>
<img src="/coltPortalWeb/framework/skins/coltBaseSkin/images/spacer.gif" alt="spacer" width="1" height="30" />
</div>
<div class="cls"></div>
</div>
<c:if test="${requestScope.update!=null && requestScope.update eq 'true'}">
<%@ include file="../../jsp/common/comments.jspf" %>
</c:if>
</div>
</div>
<%@ include file="../../jsp/common/selectLocationHRef.jspf" %></div>
<c:if test="${!(requestScope.update!=null && requestScope.update eq 'true')}">
<div class="ReqButtonContainer salesP5">
<div class="uaSelectClearSales saverequest">
<netui:button type="submit" tagId="button2" action="saveBuildingConnectivityRequest">
<colt:content key="request_Save_Request">Save Request</colt:content>
</netui:button>
</div>
</div>
</c:if>
</div>
<div class="clear"></div>
</div>
<c:if test="${requestScope.update!=null && requestScope.update eq 'true'}">
<div id="uaStepButtons">
<div class="RightButtons">
<p>
<netui:button tagId="cancel" styleClass="uaButton" type="submit" action="cancelAction" onClick="javascript:return cancelPopup();">
<colt:content key="resolve_cancel">Cancel</colt:content></netui:button>
<netui:anchor action="saveBuildingConnectivityRequest" formSubmit="true">
<netui:parameter name="update" value="true"></netui:parameter>
<netui:button tagId="save" styleClass="uaButton"><colt:content key="request_I_am_done">I am done</colt:content>
</netui:button>
</netui:anchor>
</p>
</div>
<div class="LeftButtons"></div>
</div>
</c:if>
</netui:form>
<c:if test="${!(requestScope.update!=null && requestScope.update eq 'true')}">
<netui:form tagId="buttonForm" action="finalSubmit">
<div id="uaStepButtons">
<div class="RightButtons">
<p>
<netui:button tagId="cancel" styleClass="uaButton" type="submit" action="cancelAction" onClick="javascript:return cancelPopup();"><colt:content key="request_Cancel_this_opportunity">Cancel this opportunity</colt:content></netui:button>
<netui:button tagId="save" styleClass="uaButton" type="submit" action="finalSubmit" onClick="javascript:return saveBeforeExit('${requestScope.POPUP_FLAG}');"><colt:content key="request_I_am_done">I am done</colt:content></netui:button>
</p>
</div>
<div class="LeftButtons"></div>
</div>
</netui:form>
</c:if>
</div>
</div> -
Hi all,
I have a requremnt in the map.
Source looks like this,
Description (Node) 1-many > It has 2 fields in it namely :
1. Indicator(String) 0-1
2. Comment(String) 1
Now target looks like this
ProductDescription(Node) 1-many > it has just 1 node namely :
1. Comments
Requirement:
Map description to target> productDescription as follows:
1. If(Indicator Doesn't exist ) then map each Description.Comment to ProductDescription.Comment
Ex: Source
<Description><Comment>Red hammer</Comment></Description>
<Description><Comment>Blue hammer</Comment></Description>
then Target is
<ProductDescription><Comments>Red hammer</Comments></ProductDescription>
<ProductDescription><Comments>Blue hammer</Comments></ProductDescription>
2. If(Indicator equals *) then map the Concat the prev Comment along with the current comment into 1 target "Comments"
Ex: Source
<Description><Comment>Red hammer</Comment></Description>
*<Description><Indicator>(astrix ie )</Indicator><Comment>Red pencil</Comment></Description>
then Target is
<ProductDescription><Comments>Red hammer Red pencil</Comments></ProductDescription>
Can anyone help me in what way i have to approach this to achive the map? In this case a UDF is inevitable is it?
Any reply / leads is very much appreciated
Thanks,
Hank
Edited by: hankovak jovani on Sep 30, 2009 4:50 AM if Indicator field is * then it indicator that the sender is sending the current comment in a NEW LINE hence have to concat it with the prev one......comment(context MT_Src)---->SaveComment(UDF)----->ProductDesc
indicator--equalS----------------------------->-if---------------------->Map it to Then in the below mapping(say Label)
sonstant[*]---/ comment--->getPreviousComment--> then
Label---> then
indicator---->exist---->if--------------->comment
comment---> else
declare a global variable using Edit Java section (one of the Functions of the Object Toolbar in Mapping Editor )under global variable
String [ ] comment=new String[20];
create two UDF
SaveCommentUDF
//write your code here
for(int i=0;i<a.length;i++)
comment<i>=a<i>;
result.addValue(a<i>);
GetPreviousCommentUDF
//write your code here
String pre="";
for(int i=0;i<comment.length;i++)
if(a.equals(comment<i>))
pre = comment[i-1];
return pre+a; -
C# Update single row in [my]sql
Hi
We found after our Bugzilla upgrade that many comment records where not upgraded correctly due to special characters.
I have found all the old == good and matching new == bad records
Some of the comments can be up to 64k so I don't want to try to do this as a textual update, rather update the row directly
I am after hints how to do this ?
Thanks
try
adaptor = new OdbcDataAdapter(_query, _mySQL);
resultsTable = new DataTable("Results");
adaptor.Fill(resultsTable);
adaptorNew = new OdbcDataAdapter(_query, _mySQLNew);
resultsTableNew = new DataTable("Results");
adaptorNew.Fill(resultsTableNew);
//Console.WriteLine("Bug {0} has {1} comments", i, resultsTable.Rows.Count);
int rowCount = 0;
foreach (DataRow row in resultsTable.Rows)
DataRow newrow = resultsTableNew.Rows[rowCount];
// This checks the comments ids are the same if (row.ItemArray[1].ToString().Equals(newrow.ItemArray[1].ToString()))
// This checks the comments lengths
if (!row.ItemArray[2].ToString().Equals(newrow.ItemArray[2].ToString()))
Console.WriteLine("At id {0}, length differs {1} != {2}", i, row.ItemArray[2].ToString(), newrow.ItemArray[2].ToString());
// To DO - update new record with old record data
// xxxx.update (newrow"comment.text") with row"comment.text"
else
Console.WriteLine("At id {0}, comment ids do not match", i);
rowCount++;
catch
NB: I tried something like below it did not work
Over is [MY]SQL it works, e.g.
update longdescs set thetext='Test by GBR' where comment_id=625;
HOWEVER for huge text strings, not sure how to handle ' inside the text
// this does not work though NO error is reported object[] rowdata = new object[4];
rowdata[0] = row.ItemArray[0];
rowdata[1] = row.ItemArray[1];
rowdata[2] = row.ItemArray[2];
rowdata[3] = (object)"Test of write"; // row.ItemArray[3];
resultsTableNew.Rows[rowCount].BeginEdit();
resultsTableNew.Rows[rowCount].ItemArray = rowdata;
resultsTableNew.Rows[rowCount].EndEdit();
resultsTableNew.Rows[rowCount].AcceptChanges();
resultsTableNew.AcceptChanges();
And another ps ; No ,matter what ways I use variables @oldtext :oldtext I cant get the var substitution to work below.
Outcomes : No row updated, row updated showing nothing or "@oldtext"
Something like
"UPDATE longdescs SET thetext = 'my test' WHERE comment_id=123"
will work
string updateText = @"UPDATE longdescs SET thetext = @oldtext WHERE comment_id={0}";
_query2 = string.Format(updateText, row.ItemArray[1]);
// Set @newtext
Console.WriteLine("At id {0}={1}, comment id {2}, length differs {3} != {4}", i, row.ItemArray[0].ToString(), row.ItemArray[1].ToString(), row.ItemArray[2].ToString(), newrow.ItemArray[2].ToString());
if (i == 624)
OdbcCommand sqlComm = new OdbcCommand(_query2, _mySQLNew);
sqlComm.Parameters.AddWithValue("@oldtext", "Test by GBR");
int rowsaffected = sqlComm.ExecuteNonQuery();Thanks for the reply. It is not possible to do a sample to show the issue because you need the bugzilla DB. Rather hope this issue rings a bell with someone.
Row state goes from "Modified" to "Unchanged" after the resultsTableNew.Rows[rowCount].AcceptChanges(); line. No errors.
Nb: I added "
Allow User Variables=True;" to the connection string.
I suspect the issue is related to MySQL quirk perhaps ?
I am using a 3.51 ODBC connector.
The direct SQL update "update longdescs set thetext='Test by GBR' where comment_id=625;"
works. Trying to use a var on the right hand side does not.
I expanded the sqlComm object and can see the added parameter in it.
"UPDATE longdescs SET thetext = @oldtext WHERE comment_id=625";
Does not work, i.e. I can't get the var to be used. Text size is usually 1k but can get to 60k in a comment.
>> A manual alternative if someone can suggest how would be fine, as this is a one of fix to 6000 records. i.e.
- clear comment field
- manually add 8K of info (whatever is the OK size) handling any " or ' in the data streams
- repeat addition of data until comment filled up
(context bugzilla)
_mySQL =
newOdbcConnection(@"DRIVER={MySQL
ODBC 3.51 Driver}; SERVER=xxxxx; PORT=3306;
DATABASE=bugs; USER=xxx; PASSWORD=xxx; Allow User Variables=True;
OPTION=0"
_mySQL.Open();
Maybe you are looking for
-
My safari and my app store don't open in yosemite. Can you help me?
my safari and my app store don't open in yosemite. Can you help me?...
-
Do i need to use disks to install Creative Suite 6 Master Collection
Hi there About a year ago I purchased Adobe Creative Suite 6 Master Collection teacher and student. I have not yet installed it on my computer, but my laptop does not have a disk drive. Does anyone know if there is anywhere on the Adobe site where I
-
How can I transfer illustrator's workspaces in illustrator 2014?
I am working on a MacPro and i've updated to Illustrator CC 2014. Now the issue is that Illustrator's CC workspaces, menu commands and keyboard shortcuts are not transferring over to Illustrator CC 2014. I've tried exporting the settings and then imp
-
Has Anyone Used the WD My Book External Drives for Time Machine?
I'm thinking of getting the Western Digitial 1 or 2 TB My Book (Pro Edition 2 or Studio Edition) External Drives for use with 2 MacPros. Has anyone used these and could I use them with Time Machine? Would I have to reformat them for Time Machine? Tha
-
PEAP authentication failed for wireless users
Dears Hello i'm receiving this error when i'm trying to authenticate wireless users using PEAP MSCHAPv2. can anyone please support me. thanks