PL/SQL Limit When Dealing with a CLOB?

Greetings,
I am constructing HTML into a CLOB in a PL/SQL routine which I later display in an APEX application. The HTML can get large, because I am constructing a grid over an image, and the grid can have a lot of columns and rows which means there can be a lot of <area shape="rect" HTML lines. I did a search and found that another person had the same problem, because there is a 32K limit with HTML contents. That was very helpful.
Thing is - I have another (maybe similar) issue. The procedure that constructs the HTML gets a numeric error when the number of cells in the grid reach a certain point. I checked and this happens when the CLOB in the procedure gets close to 32K. Sorry, it difficult to know exactly when it fails, but the most I have been able to put into the CLOB is 32,852 characters. Therefore my question - is there in internal limit in PL/SQL (or some other Oracle aspect) that is limited to 32K? The coluimn in the table that contains the HTML is a CLOB and the variable in the PL/SQL that the HTML is parsed into is a CLOB, so I thought I was good to go since the CLOB limit is 4GB. But, it looks like I may be missing something.
We are running Oracle 11i and APEX 4.0.2.00.07. If other system info is needed let me know and I will get that for you.
Also, if it helps. The code from the procedure is copied below. v_html is the variable that holds the HTML. The table column for the HTML is imagemap_html. Both v_html and imagemap_html are defined as CLOB's.
Thanks, Tony
= = = = = = =
create or replace
procedure create_grid (p_action IN VARCHAR2) as
    v_wcount integer := 0;   
    v_wmax integer := 20;
    v_width integer := 720;
    v_w1 integer := 0;
    v_w2 integer := 0;
    v_winc integer := 0;
    v_wstart integer := 0;
    v_wend integer := 0;   
    v_hcount integer := 0;
    v_hmax integer := 10;
    v_height integer := 520;
    v_h1 integer := 0;
    v_h2 integer := 0;
    v_hinc integer := 0;
    v_hstart integer := 0;
    v_hend integer := 0;   
    v_cell_row integer := 0;
    v_cell_col integer := 0;
    v_cell_title varchar2(10) := NULL;
    v_whitespace varchar2(10) := NULL;
    v_url_1 varchar2(100) := NULL;
    v_url_2 varchar2(100) := NULL;
    v_url_3 varchar2(100) := NULL;
    v_brand_id integer := 0;
    v_division_id integer := 0;
    v_plant_id integer := 0;
    v_model_id integer := 0;
    v_acc_group integer := 0;
    v_accessory integer := 0;
    v_acc_grp integer := 0;
    v_acc integer := 0;
    v_station_id integer := 0;
    v_substation_id integer := 0;     
    v_image_id integer := 0;
    v_id integer := 0;  
    v_html clob;
  begin
  v_brand_id := v('P4_BRAND_ID');
  v_division_id :=v('P4_DIVISION_ID');
  v_plant_id := v('P4_PLANT_ID');
  v_model_id := v('P4_MODEL_ID');
  v_acc_group := v('P4_ACC_GROUP');
  v_accessory := v('P4_ACCESSORY');
  v_station_id := v('P4_STATION_ID');
  v_substation_id := v('P4_SUBSTATION_ID');
  v_image_id := v('P4_IMAGES_ID');
  v_wmax := v('P4_COLUMNS');
  v_hmax := v('P4_ROWS');
  v_wstart := v('P4_XSTART');
  v_hstart := v('P4_YSTART');
  v_wend := v('P4_XEND');
  v_hend := v('P4_YEND'); 
  v_whitespace := v('P4_WHITESPACE');
if p_action = 'INSERT' then
-- insert the row now, so that the cell table rows can be inserted with the correct FK 
insert into IM_TEMPLATE_DRAFT
(plant_id, brand_id, division_id, model_id, acc_group, accessory, station_id,
substation_id, image_id)
values
(v_plant_id,v_brand_id,v_division_id,v_model_id,v_acc_group,v_accessory,v_station_id,v_substation_id,v_image_id);
commit;
end if;
-- get the id of the row that was just inserted
select header_id into v_id from  IM_TEMPLATE_DRAFT where
plant_id=v_plant_id and brand_id=v_brand_id and division_id=v_division_id and
model_id=v_model_id and acc_group=v_acc_group and accessory=v_accessory and
station_id=v_station_id and substation_id=v_substation_id and image_id=v_image_id;
-- remove all the cell rows for the draft, they will be created anew
delete from qcis_draft_cells where draft_id = v_id;
  BEGIN
  select pixel_width, pixel_height into v_width, v_height from images
  where images_id = v_image_id;
  EXCEPTION
    WHEN NO_DATA_FOUND THEN
    v_height := 720;
    v_width := 520;
  END;
-- the first part of the href for the image is stored in the keyword table and put into v_url_1 for use later
  BEGIN
  select keyword_value into v_url_1 from qcis_keywords
  where keyword_type = 'Control' and keyword_code = 'URL_PATH';
  EXCEPTION
    WHEN NO_DATA_FOUND THEN
    v_url_1 := 'http://xxx.xxx.com:8000/apex40/f?p=';
  END; 
-- construct the first three lines of the div tag 
  v_html := '<div style="text-align:center; width:'||v_width||'px; margin-left:auto; margin-right:auto;">';
  v_html := v_html || chr(10) || '<img id="ImageMap" src="download_image?p_id='||v_image_id||'" usemap="#ImageMap" border="0" width="'||v_width||'" height="'||v_height||'" alt="" />';
  v_html := v_html || chr(10) || '<map id="_ImageMap" name="ImageMap">';
-- subtract the ending inset amounts from the image dimensions
  v_width := v_width - v_wend;
  v_height := v_height - v_hend;
-- calculate the increment for each cell and subtract the starting inset amounts
  v_winc := floor((v_width - v_wstart) / v_wmax);
  v_hinc := floor((v_height - v_hstart) / v_hmax);
-- there are two main loops, one for the columns, one for the rows
-- one loop is inside the other, which helps to build the cells in logical order and helps with the naming of the cells 
  loop
-- if this is the first row (count = 0) and they have inset values we need to adust the first x y values to something other than zero 
if ((v_wstart != 0) and (v_wcount = 0)) then v_w1 := v_wstart; end if;
if ((v_hstart != 0) and (v_hcount = 0)) then v_h1 := v_hstart; end if;
if ((v_wstart != 0) and (v_wcount = 0)) then v_w2 := v_wstart; end if;
if ((v_hstart != 0) and (v_hcount = 0)) then v_h2 := v_hstart; end if;
v_wcount := v_wcount + 1;
v_w2 := v_w2 + v_winc;
-- checking to see if this is the last row and whether they want the grid to go to the end or have all cells the same size which may leave whitespace
         if (v_wcount = v_wmax) and (v_whitespace = 'Y') then v_w2 := v_width - 2; end if;
  v_cell_row := 0;
  v_cell_col := v_cell_col +1;
         loop
         v_hcount := v_hcount + 1;           
         v_h2 := v_h2 + v_hinc;
-- checking to see if this is the last row and whether they want the grid to go to the end or have all cells the same size which may leave whitespace
                if (v_hcount = v_hmax) and (v_whitespace = 'Y') then v_h2 := v_height - 2; end if;
         v_cell_row := v_cell_row + 1;
         -- put it all together and construct the line for the area shape tag
         v_html := v_html || chr(10) || '<area shape="rect" coords="'
         ||v_w1||','||v_h1||','||v_w2||','||v_h2||
         '" href="'||v_url_1|| '" alt="'||v_cell_col||'-'||v_cell_row||'" title="'||v_cell_col||'-'||v_cell_row||'"    />';
         v_cell_title := v_cell_col||'-'||v_cell_row;
            insert into DRAFT_CELLS (DRAFT_ID, CELL_TITLE) values(v_id, v_cell_title);          
         v_h1 := v_h1 + v_hinc;
            exit when v_hcount = v_hmax;
        end loop;
  v_hcount := 0;
  v_h1 := 0;
  v_h2 := 0;
  v_w1 := v_w1 + v_winc;
     exit when v_wcount = v_wmax;     
  end loop;
  v_html := v_html || chr(10) || '</div>';
update IM_TEMPLATE_DRAFT set imagemap_html = v_html
where header_id = v_id;  
END create_grid;Edited by: cloaked on Nov 7, 2011 4:45 AM

For "Application Express 4.2.1.00.08" i created such good solution.
I downloaded freeware plugin "Enkitec Clob Load Plug-in Version: 1.0.0 - APEX Version: 4.2.0" from there:
http://www.enkitec.com/products/plugins/clob-load/help
Then i followed plugin installation steps and created a APEX page where i added an item of type "Rich Text Editor".
I found the plugin crashes when my database CLOB field is empty, also crashed when i tried to save down empty value to database.
I changed Plugin code a little, and now everything works as needed, i can save down larga data, and also empty data.
1. In Apex open plugin "Enkitec CLOB Load".
2. Navigate to "Source-->PL/SQL Code" where is text area with plugin source code.
3. there you have such code:
FUNCTION enkitec_clob_load_render (
   p_dynamic_action IN APEX_PLUGIN.T_DYNAMIC_ACTION,
   p_plugin         IN APEX_PLUGIN.T_PLUGIN
   RETURN APEX_PLUGIN.T_DYNAMIC_ACTION_RENDER_RESULT
IS
   l_retval           APEX_PLUGIN.T_DYNAMIC_ACTION_RENDER_RESULT;
   l_show_modal       VARCHAR2(1) := p_plugin.attribute_01;
   l_dialog_title     VARCHAR2(4000) := NVL(p_plugin.attribute_02, 'Please wait...');
   l_loading_img_type VARCHAR2(30) := p_plugin.attribute_03;
   l_loading_img_c    VARCHAR2(4000) := p_plugin.attribute_04;
   l_action           VARCHAR2(10) := NVL(p_dynamic_action.attribute_01, 'RENDER');
   l_change_only      VARCHAR2(1) := NVL(p_dynamic_action.attribute_06, 'Y');
   l_make_blocking    VARCHAR2(1) := NVL(p_dynamic_action.attribute_07, 'Y');
   l_loading_img_src  VARCHAR2(32767);
   l_crlf             VARCHAR2(2) := CHR(13)||CHR(10);
   l_js_function      VARCHAR2(32767);
   l_onload_code      VARCHAR2(32767);
BEGIN
   IF apex_application.g_debug
   THEN
      apex_plugin_util.debug_dynamic_action(
         p_plugin         => p_plugin,
         p_dynamic_action => p_dynamic_action
   END IF;
   IF l_loading_img_type = 'DEFAULT'
   THEN
      l_loading_img_src := p_plugin.file_prefix || 'enkitec-loading.gif';
   ELSE
      l_loading_img_src := REPLACE(l_loading_img_c, '#IMAGE_PREFIX#', apex_application.g_image_prefix);
      l_loading_img_src := REPLACE(l_loading_img_src, '#PLUGIN_PREFIX#', p_plugin.file_prefix);
   END IF;
   apex_css.add(
      p_css => '.clob-load-dialog .ui-dialog-titlebar-close {display: none;}',
      p_key => 'clob-load-hide-modal-close'
   apex_javascript.add_library(
      p_name      => 'enkitec-clob-load.min',
      p_directory => p_plugin.file_prefix,
      p_version   => NULL
   l_onload_code :=
      'apex.jQuery(document).clob_load({'|| l_crlf ||
      '   showModal: "' || l_show_modal ||'",'|| l_crlf ||
      '   dialogTitle: "' || l_dialog_title ||'",'|| l_crlf ||
      '   loadingImageSrc: "' || l_loading_img_src ||'",'|| l_crlf ||
      '   pluginFilePrefix: "' || p_plugin.file_prefix || '",' || l_crlf ||
      '   apexImagePrefix: "' || apex_application.g_image_prefix || ',"' || l_crlf ||
   apex_javascript.add_onload_code(
      p_code => l_onload_code
   IF l_action = 'RENDER'
   THEN
      l_js_function :=
         'function(){'|| l_crlf ||
         '   apex.jQuery(document).clob_load("renderClob", {' || l_crlf ||
         '      $elmt: this.affectedElements.eq(0),' || l_crlf ||
         '      ajaxIdentifier: "' || apex_plugin.get_ajax_identifier() || '"' || l_crlf ||
         '   });'|| l_crlf ||
   ELSE
      l_js_function :=
         'function(){'|| l_crlf ||
         '   apex.jQuery(document).clob_load("submitClob", {' || l_crlf ||
         '      $elmt: this.affectedElements.eq(0),' || l_crlf ||
         '      ajaxIdentifier: "' || apex_plugin.get_ajax_identifier() || '",' || l_crlf ||
         '      changeOnly: "' || l_change_only || '",' || l_crlf ||
         '      makeBlocking: "' || l_make_blocking || '"' || l_crlf ||
         '   });'|| l_crlf ||
   END IF;
   l_retval.javascript_function := l_js_function;
   RETURN l_retval;
END enkitec_clob_load_render;
FUNCTION enkitec_clob_load_ajax (
   p_dynamic_action IN APEX_PLUGIN.T_DYNAMIC_ACTION,
   p_plugin         IN APEX_PLUGIN.T_PLUGIN
    RETURN APEX_PLUGIN.T_DYNAMIC_ACTION_AJAX_RESULT
IS
   l_retval                   APEX_PLUGIN.T_DYNAMIC_ACTION_AJAX_RESULT;
   l_ajax_function            VARCHAR2(32767) := apex_application.g_x01;
   l_source                   VARCHAR2(20) := NVL(p_dynamic_action.attribute_02, 'COLLECTION');
   l_render_collection_name   VARCHAR2(255) := p_dynamic_action.attribute_03;
   l_query                    VARCHAR2(32767) := p_dynamic_action.attribute_04;
   l_submit_collection_name   VARCHAR2(255) := p_dynamic_action.attribute_05;
   l_column_value_list        APEX_PLUGIN_UTIL.T_COLUMN_VALUE_LIST2;    
   l_clob_text                CLOB := EMPTY_CLOB();
   l_token                    VARCHAR2(32000);
   l_chunk_size               NUMBER := 4000;
BEGIN
   IF l_ajax_function = 'RENDER_CLOB'
   THEN
      IF l_source = 'COLLECTION'
      THEN
         IF apex_collection.collection_exists(l_render_collection_name)
         THEN
            SELECT clob001
            INTO l_clob_text
            FROM apex_collections
            WHERE collection_name = l_render_collection_name
               AND seq_id = 1;
         END IF;
      ELSE --must be SQL_QUERY
         BEGIN
            l_column_value_list := apex_plugin_util.get_data2(
               p_sql_statement  => l_query,
               p_min_columns    => 1,
               p_max_columns    => 1,
               p_component_name => p_dynamic_action.action,
               p_first_row      => 1,
               p_max_rows       => 1
         EXCEPTION
            WHEN NO_DATA_FOUND
            THEN
               NULL;
         END;
         IF l_column_value_list.exists(1)
            AND l_column_value_list(1).value_list.exists(1)
         THEN
            l_clob_text := l_column_value_list(1).value_list(1).clob_value;
         END IF;
      END IF;
      FOR i IN 0 .. FLOOR(LENGTH(l_clob_text)/l_chunk_size)
      LOOP 
         sys.htp.prn(substr(l_clob_text, i * l_chunk_size + 1, l_chunk_size)); 
      END LOOP;
   ELSE --must be SUBMIT_CLOB
      dbms_lob.createtemporary(l_clob_text, false, dbms_lob.session);
      FOR i IN 1..apex_application.g_f01.count
      LOOP
         l_token := wwv_flow.g_f01(i);
         dbms_lob.writeappend(l_clob_text, length(l_token), l_token);
      END LOOP;
      apex_collection.create_or_truncate_collection(
         p_collection_name => l_submit_collection_name
      apex_collection.add_member(
         p_collection_name => l_submit_collection_name,
         p_clob001         => l_clob_text
   END IF;
   RETURN l_retval;
END enkitec_clob_load_ajax;4. Change this code to this code:
FUNCTION enkitec_clob_load_render (
   p_dynamic_action IN APEX_PLUGIN.T_DYNAMIC_ACTION,
   p_plugin         IN APEX_PLUGIN.T_PLUGIN
   RETURN APEX_PLUGIN.T_DYNAMIC_ACTION_RENDER_RESULT
IS
   l_retval           APEX_PLUGIN.T_DYNAMIC_ACTION_RENDER_RESULT;
   l_show_modal       VARCHAR2(1) := p_plugin.attribute_01;
   l_dialog_title     VARCHAR2(4000) := NVL(p_plugin.attribute_02, 'Please wait...');
   l_loading_img_type VARCHAR2(30) := p_plugin.attribute_03;
   l_loading_img_c    VARCHAR2(4000) := p_plugin.attribute_04;
   l_action           VARCHAR2(10) := NVL(p_dynamic_action.attribute_01, 'RENDER');
   l_change_only      VARCHAR2(1) := NVL(p_dynamic_action.attribute_06, 'Y');
   l_make_blocking    VARCHAR2(1) := NVL(p_dynamic_action.attribute_07, 'Y');
   l_loading_img_src  VARCHAR2(32767);
   l_crlf             VARCHAR2(2) := CHR(13)||CHR(10);
   l_js_function      VARCHAR2(32767);
   l_onload_code      VARCHAR2(32767);
BEGIN
   IF apex_application.g_debug
   THEN
      apex_plugin_util.debug_dynamic_action(
         p_plugin         => p_plugin,
         p_dynamic_action => p_dynamic_action
   END IF;
   IF l_loading_img_type = 'DEFAULT'
   THEN
      l_loading_img_src := p_plugin.file_prefix || 'enkitec-loading.gif';
   ELSE
      l_loading_img_src := REPLACE(l_loading_img_c, '#IMAGE_PREFIX#', apex_application.g_image_prefix);
      l_loading_img_src := REPLACE(l_loading_img_src, '#PLUGIN_PREFIX#', p_plugin.file_prefix);
   END IF;
   apex_css.add(
      p_css => '.clob-load-dialog .ui-dialog-titlebar-close {display: none;}',
      p_key => 'clob-load-hide-modal-close'
   apex_javascript.add_library(
      p_name      => 'enkitec-clob-load.min',
      p_directory => p_plugin.file_prefix,
      p_version   => NULL
   l_onload_code :=
      'apex.jQuery(document).clob_load({'|| l_crlf ||
      '   showModal: "' || l_show_modal ||'",'|| l_crlf ||
      '   dialogTitle: "' || l_dialog_title ||'",'|| l_crlf ||
      '   loadingImageSrc: "' || l_loading_img_src ||'",'|| l_crlf ||
      '   pluginFilePrefix: "' || p_plugin.file_prefix || '",' || l_crlf ||
      '   apexImagePrefix: "' || apex_application.g_image_prefix || ',"' || l_crlf ||
   apex_javascript.add_onload_code(
      p_code => l_onload_code
   IF l_action = 'RENDER'
   THEN
      l_js_function :=
         'function(){'|| l_crlf ||
         '   apex.jQuery(document).clob_load("renderClob", {' || l_crlf ||
         '      $elmt: this.affectedElements.eq(0),' || l_crlf ||
         '      ajaxIdentifier: "' || apex_plugin.get_ajax_identifier() || '"' || l_crlf ||
         '   });'|| l_crlf ||
   ELSE
      l_js_function :=
         'function(){'|| l_crlf ||
         '   apex.jQuery(document).clob_load("submitClob", {' || l_crlf ||
         '      $elmt: this.affectedElements.eq(0),' || l_crlf ||
         '      ajaxIdentifier: "' || apex_plugin.get_ajax_identifier() || '",' || l_crlf ||
         '      changeOnly: "' || l_change_only || '",' || l_crlf ||
         '      makeBlocking: "' || l_make_blocking || '"' || l_crlf ||
         '   });'|| l_crlf ||
   END IF;
   l_retval.javascript_function := l_js_function;
   RETURN l_retval;
END enkitec_clob_load_render;
FUNCTION enkitec_clob_load_ajax (
   p_dynamic_action IN APEX_PLUGIN.T_DYNAMIC_ACTION,
   p_plugin         IN APEX_PLUGIN.T_PLUGIN
    RETURN APEX_PLUGIN.T_DYNAMIC_ACTION_AJAX_RESULT
IS
   l_retval                   APEX_PLUGIN.T_DYNAMIC_ACTION_AJAX_RESULT;
   l_ajax_function            VARCHAR2(32767) := apex_application.g_x01;
   l_source                   VARCHAR2(20) := NVL(p_dynamic_action.attribute_02, 'COLLECTION');
   l_render_collection_name   VARCHAR2(255) := p_dynamic_action.attribute_03;
   l_query                    VARCHAR2(32767) := p_dynamic_action.attribute_04;
   l_submit_collection_name   VARCHAR2(255) := p_dynamic_action.attribute_05;
   l_column_value_list        APEX_PLUGIN_UTIL.T_COLUMN_VALUE_LIST2;    
   l_clob_text                CLOB := EMPTY_CLOB();
   l_token                    VARCHAR2(32000);
   l_chunk_size               NUMBER := 4000;
BEGIN
   IF l_ajax_function = 'RENDER_CLOB'
   THEN
      IF l_source = 'COLLECTION'
      THEN
         IF apex_collection.collection_exists(l_render_collection_name)
         THEN
            SELECT clob001
            INTO l_clob_text
            FROM apex_collections
            WHERE collection_name = l_render_collection_name
               AND seq_id = 1;
         END IF;
      ELSE --must be SQL_QUERY
         BEGIN
            l_column_value_list := apex_plugin_util.get_data2(
               p_sql_statement  => l_query,
               p_min_columns    => 1,
               p_max_columns    => 1,
               p_component_name => p_dynamic_action.action,
               p_first_row      => 1,
               p_max_rows       => 1
         EXCEPTION
            WHEN NO_DATA_FOUND
            THEN
               NULL;
         END;
         IF l_column_value_list.exists(1)
            AND l_column_value_list(1).value_list.exists(1)
         THEN
            l_clob_text := l_column_value_list(1).value_list(1).clob_value;
         END IF;
      END IF;
      FOR i IN 0 .. FLOOR(NVL(LENGTH(l_clob_text)/l_chunk_size,0))
      LOOP 
         sys.htp.prn(substr(l_clob_text, i * l_chunk_size + 1, l_chunk_size)); 
      END LOOP;
   ELSE --must be SUBMIT_CLOB
      dbms_lob.createtemporary(l_clob_text, false, dbms_lob.session);
      FOR i IN 1..apex_application.g_f01.count
      LOOP
         l_token := wwv_flow.g_f01(i);
         if NVL(length(l_token),0) > 0 Then
            dbms_lob.writeappend(l_clob_text, length(l_token), l_token);
         end if;
      END LOOP;
      apex_collection.create_or_truncate_collection(
         p_collection_name => l_submit_collection_name
      apex_collection.add_member(
         p_collection_name => l_submit_collection_name,
         p_clob001         => l_clob_text
   END IF;
   RETURN l_retval;
END enkitec_clob_load_ajax;5. As you see only 2 places of plugin had to be fixed, when you compare previous 2 steps:
FOR i IN 0 .. FLOOR(LENGTH(l_clob_text)/l_chunk_size)
      LOOP 
         sys.htp.prn(substr(l_clob_text, i * l_chunk_size + 1, l_chunk_size)); 
      END LOOP;-->
FOR i IN 0 .. FLOOR(NVL(LENGTH(l_clob_text)/l_chunk_size,0))
      LOOP 
         sys.htp.prn(substr(l_clob_text, i * l_chunk_size + 1, l_chunk_size)); 
      END LOOP;And
FOR i IN 1..apex_application.g_f01.count
      LOOP
         l_token := wwv_flow.g_f01(i);
         dbms_lob.writeappend(l_clob_text, length(l_token), l_token);
      END LOOP;-->
FOR i IN 1..apex_application.g_f01.count
      LOOP
         l_token := wwv_flow.g_f01(i);
         if NVL(length(l_token),0) > 0 Then
            dbms_lob.writeappend(l_clob_text, length(l_token), l_token);
         end if;
      END LOOP;This way seems to be best way to handle APEX CLOBS today, using that plugin, and a little fix.

Similar Messages

  • How to get around a performance issue when dealing with a lot of data

    Hello All,
    This is an academic question really, I'm not sure what I'm going to do with my issue, but I have some options.  I was wondering if anyone would like to throw in their two cents on what they would do.
    I have a report, the users want to see all agreements and all conditions related to the updating of rebates and the affected invoices. From a technical perspective ENT6038-KONV-KONP-KONA-KNA1.  THese are the tables I have to hit.  The problem is that when they retroactively update rebate conditions they can hit thousands of invoices, which blossoms out to thousands of conditions...you see the problem. I simply have too much data to grab, it times out.
    I've tried everything around the code.  If you have a better way to get price conditions and agreement numbers off of thousands of invoices, please let me know what that is.
    I have a couple of options.
    1) Use shared memory to preload the data for the report.  This would work, but I'm not going to know what data is needed to be loaded until report run time. They put in a date. I simply can't preload everything. I don't like this option much. 
    2) Write a function module to do this work. When the user clicks on the button to get this particular data, it will launch the FM in background and e-mail them the results. As you know, the background job won't time out. So far this is my favored option.
    Any other ideas?
    Oh...nope, BI is not an option, we don't have it. I know, I'm not happy about it. We do have a data warehouse, but the prospect of working with that group makes me whince.

    My two cents - firstly totally agree with Derick that its probably a good idea to go back to the business and justify their requirement in regards to reporting and "whether any user can meaningfully process all those results in an aggregate". But having dealt with customers across industries over a long period of time, it would probably be bit fanciful to expect them to change their requirements too much as in my experience neither do they understand (too much) technology nor they want to hear about technical limitations for a system etc. They want what they want if possible yesterday!
    So, about dealing with performance issues within ABAP, I'm sure you must be already using efficient programming techniques like using Hash internal tables with Unique Keys, accessing rows of the table using Field-Symbols and all that but what I was going to suggest to you is probably look at using [Extracts|http://help.sap.com/saphelp_nw04/helpdata/en/9f/db9ed135c111d1829f0000e829fbfe/content.htm]. I've had to deal with this couple of times in the past when dealing with massive amount of data and I found it to be very efficient in regards to performance. A good point to remember when using Extracts that, I quote from SAP Help, "The size of an extract dataset is, in principle, unlimited. Extracts larger than 500KB are stored in operating system files. The practical size of an extract is up to 2GB, as long as there is enough space in the filesystem."
    Hope this helps,
    Cheers,
    Sougata.

  • LTFS is slow when dealing with many files

    Working with LTFS on Windows 7 64, I find find that it slows down significantly when dealing with many files (>1500)
    From the behaviour, I suspect that it has to do with the number of file handles.
    Some LTFS vendors have a copy utility that deals very well with this situation.
    I could not find anything like that for HP.
    Does it exist? Is there an open source solution?
    Thank you,
    - Bartels

    Can someone from the Experts please respond?
    Your LTFS solution is in certain situations much slower than the competitors; the difference is a huge factor three..
    I would really like to know if there is a solution or not. Either way.
    - Bartels

  • Premiere Pro 2.0 slows when dealing with larger video files

    I'm having issues with Premiere Pro 2.0 slowing to a crawl and taking 60-90 seconds to come back to life when dealing with larger .avi's (8+ mins). When I try to play a clip on the timeline, drag the slider over said clip, or play from a title into said clip on the timeline, Premiere hangs. The clips on question are all rendered, and the peak file has been generated for each different clip has well. This is a new problem; the last time I was working with a larger clip (45+ mins, captured from a Hi-8 cam), I had no problems. Now, I experience this slow down with all longer clips, although I've only dealt with footage captured from a Hi-8 cam and also a mini-DV cam. This problem has made Premiere nearly unusable. I'm desperate at this point.
    System:
    CPU: P4 HT 2.4ghz
    Ram: 2x 1gb DDR
    Video: ATI Radeon 9000 Series
    Scratch Disk: 250gb WD My Book - USB 2.0 (I suspect this might be part of the problem)
    OS: XP Pro SP2
    I'm not on my machine right now, and I can definitely provide more information if needed.
    Thanks in advance.

    Aside from some other issues, I found that USB was just not suited for editing to/from, and on a much faster machine, that you list.
    FW-400 was only slightly better. It took FW-800, before I could actually use the externals for anything more than storage, i.e. no editing, just archiving.
    eSATA would be even better/faster.
    Please see Harm's ARTICLES on hardware, before you begin investing.
    Good luck,
    Hunt
    [Edit] Oops, I see that Harm DID link to his articles. Missed that. Still, it is worth mentioning again.
    Also, as an aside, PrPro 2.0 has no problem on my workstation when working with several 2 hour DV-AVI's, even when these are edited to/from FW-800 externals.
    Message was edited by: the_wine_snob - [Edit]

  • Anyone ever seen an eventoracle.cpp line 370 error when dealing with an ActiveX control?

    I'm dealing with an ActiveX control in LabView 7.0 that allows me to input video / audio from a USB webcamera. The ActiveX control also allows for the playback of the AVI files that are recorded from the webcam. During playback, I occasionally get a eventoracle.cpp @ line 370 error that is hard to diagnose and hard to reproduce. Any ideas? I do have the ability to move to LabView 7.1.1 if needed, but I have not tried that yet.
    Chris Davis

    hi there
    you can adjust the user event data type to your needs. for example you can add a string "source" to the events data. additionally you can pass the "user parameter" to the callback vi to specify its location. see attachment below.....
    Best regards
    chris
    CL(A)Dly bending G-Force with LabVIEW
    famous last words: "oh my god, it is full of stars!"
    Attachments:
    MSCOMCTL_Toolbar_EventSource_LV7.1.llb ‏102 KB

  • Anyone else get screwed by a sales rep when dealing with changing to the edge plan?  I just got screwed and want to know if anyone else has had issues.

    I am looking to change service after dealing with an idiot at my local store that totally misrepresented the plan and is costing me more than ever to have phone service. 

    Me and my fiance were both conned into the edge plan after the idiot rep
    lied to us about not saving money by merging our accounts.   Then we find
    out that we can't merge because of the edge plan we have.  I am writing
    letters and posting messages to find or if this has happened you anyone
    else.   No one has been able to help us so my main focus us to inform as
    many people as possible about what happened
    On Aug 15, 2014 9:20 PM, "Verizon Wireless Customer Support" <

  • InDesign Crashes When Dealing with Table

    Hi Folks,
    I'm running a 2012 MacBook Pro, OSX 10.8.4, and InDesign CS6 8.0.1
    I have a document I've been working on for the better part of 1.5 years now (a physics book, lots of pictures, diagrams, equations, etc.)  This morning it was working fine.
    A few hours later, there is one specific table at the end of a chapter on page 199 that appears corrupted.  All the data in the table magically disappeared.  Now, when I try to edit the table, delete the table, export the file, anything, everything stops and crashes the moment the table comes into play.
    I first tried just deleting the table.  Causes InDesign to crash.
    Then I tried exporting the file to IDML.  Causes InDesign to crash.
    I've tried deleting preferences... still causes InDesign to crash.
    I can export to PDF still.
    The only issue appears to be with the file (and that particular table). Editing other files, or other tables in the document, still works fine.
    Any ideas?  I'm happy to erase the problem content and continue, but I can't afford to throw the entire document away and start over...  and anytime I try to delete the table, edit the table, etc, the whole thing crashes.
    Here's the start of one of the crash reports:
    Process:         Adobe InDesign CS6 [702]
    Path:            /Applications/Adobe InDesign CS6/Adobe InDesign CS6.app/Contents/MacOS/Adobe InDesign CS6
    Identifier:      com.adobe.InDesign
    Version:         8.0.1.406 (8010)
    Code Type:       X86 (Native)
    Parent Process:  launchd [221]
    User ID:         501
    Date/Time:       2013-07-10 11:39:58.199 -0400
    OS Version:      Mac OS X 10.8.4 (12E55)
    Report Version:  10
    Crashed Thread:  31
    Exception Type:  EXC_BAD_ACCESS (SIGBUS)
    Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000000
    VM Regions Near 0:
    --> __PAGEZERO             0000000000000000-0000000000001000 [    4K] ---/--- SM=NUL  /Applications/Adobe InDesign CS6/Adobe InDesign CS6.app/Contents/MacOS/Adobe InDesign CS6
        __TEXT                 0000000000001000-0000000000005000 [   16K] r-x/rwx SM=COW  /Applications/Adobe InDesign CS6/Adobe InDesign CS6.app/Contents/MacOS/Adobe InDesign CS6
    Thread 0:: Dispatch queue: com.apple.main-thread
    0   libsystem_kernel.dylib                  0x976467d2 mach_msg_trap + 10
    1   libsystem_kernel.dylib                  0x97645cb0 mach_msg + 68
    2   com.apple.CoreFoundation                0x942ddf79 __CFRunLoopServiceMachPort + 185
    3   com.apple.CoreFoundation                0x942e395f __CFRunLoopRun + 1247
    4   com.apple.CoreFoundation                0x942e301a CFRunLoopRunSpecific + 378
    5   com.apple.CoreFoundation                0x942e2e8b CFRunLoopRunInMode + 123
    6   com.apple.HIToolbox                     0x976b6f5a RunCurrentEventLoopInMode + 242
    7   com.apple.HIToolbox                     0x976b6cc9 ReceiveNextEventCommon + 374
    8   com.apple.HIToolbox                     0x9781c15c ReceiveNextEvent + 79
    9   com.adobe.InDesign.AppFramework          0x15825af8 0x15817000 + 60152
    10  com.adobe.InDesign.AppFramework          0x15844329 GetPlugIn + 12009
    11  com.adobe.InDesign                      0x00001ec5 main + 341
    12  com.adobe.InDesign                      0x00001d55 start + 53
    Thread 1:: Dispatch queue: com.apple.libdispatch-manager
    0   libsystem_kernel.dylib                  0x976499ae kevent + 10
    1   libdispatch.dylib                       0x9a4dec71 _dispatch_mgr_invoke + 993
    2   libdispatch.dylib                       0x9a4de7a9 _dispatch_mgr_thread + 53
    Thread 2:
    0   libsystem_kernel.dylib                  0x976488e2 __psynch_cvwait + 10
    1   libsystem_c.dylib                       0x97a762e9 _pthread_cond_wait + 938
    2   libsystem_c.dylib                       0x97a76572 pthread_cond_timedwait_relative_np + 47
    3   com.apple.CoreServices.CarbonCore          0x997596ad TSWaitOnConditionTimedRelative + 177
    4   com.apple.CoreServices.CarbonCore          0x996a5acb MPWaitOnQueue + 261
    5   PMRuntime.dylib                         0x005b9581 SetVSizeBaseline(unsigned long) + 1473
    6   com.apple.CoreServices.CarbonCore          0x9972ca7b PrivateMPEntryPoint + 68
    7   libsystem_c.dylib                       0x97a715b7 _pthread_start + 344
    8   libsystem_c.dylib                       0x97a5bd4e thread_start + 34

    Thanks.  Here's thread 31:
    Thread 31 Crashed:
    0   PublicLib.dylib                         0x0180f746 WideString::Append(WideString const&) + 12
    1   com.adobe.InDesign.Text                 0x1b4efb2e GetPlugIn + 3615726
    2   com.adobe.InDesign.Text                 0x1b4f1def GetPlugIn + 3624623
    3   com.adobe.InDesign.Text                 0x1b434398 GetPlugIn + 2847832
    4   com.adobe.InDesign.Text                 0x1b434e4f GetPlugIn + 2850575
    5   PublicLib.dylib                         0x017ec171 CScriptProvider::AccessPropertyOnObjects(IDType<ScriptID_tag>, IScriptRequestData*, adobe::version_1::vector<InterfacePtr<IScript>, adobe::version_1::capture_allocator<InterfacePtr<IScript> > > const&) + 337
    6   com.adobe.InDesign.Scripting            0x1a33a69f GetPlugIn + 154479
    7   com.adobe.InDesign.Scripting            0x1a33b35a GetPlugIn + 157738
    8   com.adobe.InDesign.Scripting            0x1a338361 GetPlugIn + 145457
    9   com.adobe.InDesign.INXCore              0x1822c38f GetPlugIn + 8687
    10  PublicLib.dylib                         0x0193da93 CScriptDOMElement::FetchValue(IDType<ScriptID_tag>, DOMAttributeValue&) + 107
    11  PublicLib.dylib                         0x0193f22e CScriptDOMElement::GetAttribute(IDType<ScriptID_tag>, DOMAttributeValue&) + 442
    12  PublicLib.dylib                         0x017b5f28 CTextScriptDOMElement::CTextScriptDOMElement(IPMUnknown*) + 25134
    13  PublicLib.dylib                         0x017ad257 CTextScriptDOMElement::CollectTextChildren() + 135
    14  PublicLib.dylib                         0x017af165 CTextScriptDOMElement::CollectExpandedChildElements(K2Vector<InterfacePtr<IDOMElement>, K2Allocator<InterfacePtr<IDOMElement> > >&) + 127
    15  com.adobe.InDesign.INXCore              0x1825cdd8 GetPlugIn + 207928
    16  PublicLib.dylib                         0x01941089 CScriptDOMElement::GetChildElements(K2Vector<InterfacePtr<IDOMElement>, K2Allocator<InterfacePtr<IDOMElement> > >&) + 59
    17  com.adobe.InDesign.INXCore              0x1826d161 GetPlugIn + 274369
    18  com.adobe.InDesign.INXCore              0x1826a4a6 GetPlugIn + 262918
    19  com.adobe.InDesign.INXCore              0x1826d1de GetPlugIn + 274494
    20  com.adobe.InDesign.INXCore              0x1826a39f GetPlugIn + 262655
    21  com.adobe.InDesign.INXCore              0x1826d1de GetPlugIn + 274494
    22  com.adobe.InDesign.INXCore              0x1826a39f GetPlugIn + 262655
    23  com.adobe.InDesign.INXCore              0x1826d1de GetPlugIn + 274494
    24  com.adobe.InDesign.INXCore              0x1826a4a6 GetPlugIn + 262918
    25  com.adobe.InDesign.INXCore              0x1826d1de GetPlugIn + 274494
    26  com.adobe.InDesign.INXCore              0x1826a4c9 GetPlugIn + 262953
    27  com.adobe.InDesign.INXCore              0x1826d1de GetPlugIn + 274494
    28  com.adobe.InDesign.INXCore              0x1826e105 GetPlugIn + 278373
    29  com.adobe.InDesign.INXCore              0x18268530 GetPlugIn + 254864
    30  com.adobe.InDesign.INXCore              0x1826727f GetPlugIn + 250079
    31  com.adobe.InDesign.SaveBack             0x11cd49b3 GetPlugIn + 27539
    32  com.adobe.InDesign.SaveBack             0x11cd4141 GetPlugIn + 25377
    33  com.adobe.InDesign.SaveBack             0x11cd6227 GetPlugIn + 33799
    34  com.adobe.InDesign.AppFramework          0x15911749 GetPlugIn + 852745
    35  com.adobe.InDesign.AppFramework          0x15912ca6 GetPlugIn + 858214
    36  com.adobe.InDesign.AppFramework          0x15913804 GetPlugIn + 861124
    37  com.adobe.InDesign.AppFramework          0x159143c5 GetPlugIn + 864133
    38  com.adobe.InDesign.AppFramework          0x1591598e GetPlugIn + 869710
    39  com.adobe.InDesign.AppFramework          0x159159fa GetPlugIn + 869818
    40  com.adobe.InDesign.AppFramework          0x15915a66 GetPlugIn + 869926
    41  com.adobe.boost_threads.framework          0x01c6840d thread_proxy + 141
    42  libsystem_c.dylib                       0x97a715b7 _pthread_start + 344
    43  libsystem_c.dylib                       0x97a5bd4e thread_start + 34
    Tried what you recommended.  Worked right up to the File>Export and Choose IDML, then it crashed again.  Thanks for the idea, though!

  • What is the best solution when dealing with user settings

    We have a webapp, when a user logs in, all the user en application settings are read (only once) from the database and stored in a session bean (for quick access).
    But when some application setting is changed, I want to tell all the session beans that they need to reload the settings.
    Is there a good solution for this?
    Thanks in advance.

    There are several ways to do this:
    1) Put a timestamp on the application settings tables whenever they are changed. At the beginning of each request, send a small query just for this timestamp and compare it to a timestamp for when the session was created. If it is newer then the session then force a full refresh of the session data, otherwise keep using pre-loaded session data. This keeps normal operation quick since the SQL needed for the intial test is simple and quick, but will get the user the new information they need when they need it.
    2) Collect your sessions into an external collection stored inside application scope. Have a trigger that when the application settings change, the session objects are iterated through and updated. This way the settings may be updated without the user making a request - and the updates may be time-invisible to the user. But you could get into situations where you are updating settings at the same time you are reading settings, so you will need to synchronize your access.
    3) Don't put application settings in the session. The session should be for user settings only. The application scope (Servlet Context) should be used to store the application settings. As such, when application level changes to the DB are made, the application-level object is reloaded. You only have one copy in memory, it updates just once, no need to iterate through sessions, and users who use the application settings are using the most recent copy.

  • How to access the MDX application from SQL server when working with OBIEE?

    Hi,
    I am new to MS SQL Server 2005. We have developed the OLAP Cubes on SQL Server Business Intelligence Development Studio with its integration with Oracle Business Intelligence Enterprise Edition (OBIEE).
    The backend query is in MDX language. Now if I need to run that query I need to access the MDX Application, rite?
    So need to know how to connect to MDX application.
    Regards,

    Administration Tool: File - Import - "from multidimensional". There you choose "Provider Type" = "Analysis Server 2005". You specify the URL, user name and password. Then you can import MSAS cubes just like Essbase ones.
    Cheers

  • I Wish for a little more IQ in AME when dealing with TIFF Sequences !!!

    1)
    I drop a movie into AME (let us assume a .MOV) called MVI_7899.MOV which I want to convert to a TIFF sequence.
    So far so good.
    I set my parameters etc and choose an output destination.
    I click render
    Let us assume that my .MOV has 1800 frames.
    AME names my new movie as follows
    MVI_78990000
    thru to
    MVI_78991800
    Any other app that I have ever been working with would have the chops to add an "_" (Underscore) character BEFORE adding the sequence number.
    I SURE would wish for such in AME>>>>> If NOT already possible.
    2)
    Also, I think there should be a preference called "Automatically Create Folder for Image Sequences"
    This would create a folder with the name of MOV file and put all the sequences inside of it. THat would SAVE time. LOTS.
    3)
    Also, I think it would be fair to assume that anyone dropping a MOVIE into AME does NOT wish to create ONE tiff image from that whole movie but a TIFF Sequence. Choosing Adobes TIFF presets will NOT tick the "Export as Sequence"Parameter
    4) Last but not least
    Why on earth is it not possible to drag n drop a tiff sequence folder onto AME. I have to double-click in the source name view and then navigate to the sequence I want to import.
    5) Ok LAST wish
    When having navigated to a TIFF sequence I cant believe I have to check - Import as sequence - This parameter, in book, should be ticked by default.
    At least I know of NO ONE.. Wanting to convert ONE single tiff frame to H264..
    Perhaps the guys that make this app could consult a little with folks working with image sequences ;-)
    Afterall, if you have a RAID0 system - movies converted to image sequences are going to beat the performance of ANY codec available on the planet currently.
    Thanks for reading and for an otherwise great intuitive app !

    Hi,
    Thanks for the great feedback.  All of these issues are superb feature requests.  Would you mind filling out the feature request form for each one of these?  Sending feedback that way ensures that it gets routed and filed appropriately.  The forum here is a great place for discussing the issues, the feature request form is the best way get it in front of the right people's eyes.
    FWIW, several of these issues are already logged internally, and are on the long list of improvements for the next version of AME.
    Specific responses to each of your requests:
    1) Yep.  After Effects does this.  AME should, too.
    2) You're preaching to the choir here.  I'd love to see AME and AE both adopt this feature.
    3) I get frustrated by this, too.  Export As Sequence is not enabled by default for any of the still formats except DPX.  Definitely want to fix this.
    4) AME isn't quite smart enough to distinguish a folder of individual TIFF files from a folder containing a TIFF sequence.  Same reason that you can't use sequence files as a source in a Watch Folder.  Definitely something we want to fix.
    5) Yep.  After Effects does this.  AME should, too.
    Again, thanks for the helpful feedback.  It is appreciated.
    -=TimK
    -=Adobe After Effects and Adobe Media Encoder QE

  • Honestly, where is one to begin when dealing with MVC

    Ok, I come mainly from a web / media development background. For the past 3 years i have been developing in Java and Jsp. The question I have is why adopt things like Struts if you can create a very simple jsp based web application following the MVC? I was asked to look into various standards that are out there to gauge which is best and thus far I can not tell. People praise and bash the various ways that are available. The only way I can see to choose a way to follow is to actually implement one and then another and then another to weight the pros and cons.
    So, I am asking all of you that have used Struts, Stripes or any other idea out there for your input.
    The goal as explained to me from the so called tech-lead is they want to put in place something quick (to be defined of course).
    So the way I see it is like this.
    Something that can be fully understood in a matter of an hour or two of reading of it.
    Would like to be able to Implement it in the same day as well.
    Yes Im being a bit vague but in general I am unaware of which path to take being that for things that I hear to be robust are difficult to pick up in a short amount of time. Example being Struts, getting it to work is one thing knowing it and being able to use and understand it is another thing.
    I'm almost tempted in just going back to the days of old and just laying out my own MVC structure but being directed to compare products when not actually using them is another story.

    The motivation is that a framework helps you automate the basics, so you can spend more time on the "important" things.
    Things like
    - Validation/conversion
    - prompting the user when validation conversion fails
    - controlling screenflow from A to B to C
    - error handling
    - probably a lot more
    Struts has been around for a while now. While it is still solid, it is not the best out there.
    It was groundbreaking at the time, but has its issues.
    People have learned from Struts and developed other frameworks which address those issues.
    Different frameworks have different advantages/disadvantages. It depends on what you are building.
    Issues come up when you want to do that is something "outside the box" of the standard framework that pushes the limits.
    For a small web application, sure you can do it without a whole lot of structure.
    Once you get into a medium sized one, it IS useful to have the module structure provided by something like struts.
    So my advice would be define the requirements that you have for developing web applications.
    Do you need Ajax support?
    Do you need search pages, next 10/previous 10 interface?
    Is it for basic maintenance screens with dataentry/validation?
    How large an application are we talking about? 10 pages? 20 pages? 500 pages?
    To my mind there is nothing so important as understanding the underlying mechanism of HTTP. The request parameters, attributes, get/post etc etc. Once you have a grasp of those, it becomes easier to visualise how the frameworks build on that to do their job.

  • InDesign shuts down when dealing with Arabic

    The program shuts down after approximatelly 30 seconds as soon as I start playing with the font - changing to Simplified Arabic etc.
    The same problem occurs on two seperate computers, where CS was installed  - work computer where I'm using a purchased version and home computer where I have a trial version installed.
    I didn't seem to have this problem until I downloaded a script for RTL.
    Now I have donwloaded the Arabic version of CS6 with an in-build RTL option and the problem is still present.
    English materials work fine.

    Um. This post is full of guesses.
    I am going to guess that under Edit -> Preferences -> Clipboard Handling you have "All Information" instead of "Text Only." Is my guess correct?  Because copy/pasting RTL stuff from Excel has been problematic for me in the past when Excel's native styling made it into InDesign.
    I would furthermore guess that:
    1) it worked before because the RTL text flow was turned on in Word, and that info carried across on the clipboard, but
    2) now when you try to turn on RTL text flow in InDesign it's freaking out on "Left to Right" versus "Default direction" properties
    So my final guess would be that a change in workflow will end the crashes. It's a long shot, but I would suggest that you either
    1) Only File -> Place documents, never copy/paste
    or
    2) Change the Clipboard Handling settings to Text Only, and continute using your copy/paste workflow. But the text will always flow in the wrong direction until you apply one of the RTL paragraph direction scripts.
    I'd strongly sugggest that you abandon the habit of copy/pasting complex-script text. It's a disaster, really. Most of my complex-script workflows tend towards trying to strip as much Word garbage off of text as I possibly can, all the way down to raw Unicode text when I can do so, and then placing those stripped-down files into Word.
    When I can't do that (when I need to preserve some parts of Word formatting), one trick that I've used in the past is to have character styles called "Overt LTR" and "Overt RTL" in Word when I needed English words in the middle of Arabic paragraphs, and vice versa. This is necessary because InDesign has a setting that I don't think Word has: "Default Direction." So in a mixed paragraph, it will try to apply LTR to Latin script and RTL to Arabic script. This causes problems of all kinds, especially when you have mixed numerals (e.g. phone numbers in Arabic numerals, but all other numbers in Hindi numerals).
    But since Word and InDesign handle complex and RTL scripts quite differently, there will always be some pre-InDesign hygiene necessary, and some significant cleanup within InDesign once the text is in.

  • Bluetooth does not work correctly with Flash when dealing with audio

    I have a stereo that uses bluetooth. I am on a Mac.
    Everything works with bluetooth (iTunes, Quicktime) except flash.
    When I play a flash video, or listen to songs using a flash player,
    no sound is playing through the remote (bluetooth) speakers.

    Ditto - I get the same issue with a bluetooth headset. If I
    download the flash video to my mac and play it using VLC it works
    fine, however the flash player chokes on it. Any ideas?

  • Dynamiclinkmediaserver has encountered an error. message when dealing with any video in LR5, anyone have any suggestions?

    /DynamicLinkMediaServer701/releases/2013.03/shared/adobe/MediaCore/ASL/Foundation/Make/Mac /../../Src/DirectoryRegistry.cpp-283 is my error code.
    I get it ANYTIME I try to import any videos ( I work in MOV )
    ANYONE have any fracking suggestions?? Talk about frustrating!!!!!

    silverboxmedia wrote:
    ANYONE have any fracking suggestions??
    I don't know how to fix the problem in a proper fashion, which probably involves tweaking the video subsystem of your computer, since Lr is essentially tapping it for all that is video (assuming the mov files really should be importable, but aren't).
    That said, a possible work-around for the mean time is to use a a script called
    'Import Any Video'
    free by me downloadable here:
    http://www.robcole.com/Rob/ProductsAndServices/MiscLrScripts
    it transcodes mov files into mp4 format which Lr tends to be happier with - dunno if it'll work for you.
    Good luck,
    Rob

  • BUG in DB XML? (when dealing with modules, user-defined functions)

    Hi,
    this post can be related to Different results for the semantically the same queries but here examples are even simpler.
    I have the module with one user-defined function:
    module namespace tnt = "http://tntbase.mathweb.org/ns";
    declare function tnt:filter-path($docs as document-node()*, $path as xs:string) as document-node()*{
      $docs[dbxml:metadata('tnt:path') = $path]
    };Then I have a query:
    import module namespace tnt = 'http://tntbase.mathweb.org/ns'  at 'file:/path/to/module/user-func.xq';
    (: this variable is IMPORTANT in the query:)
    declare variable $len := 3;
    (: here goes the same function as in the module, but with different name :)
    declare function tnt:filter-path2($docs as document-node()*, $path as xs:string) as document-node()*{
      $docs[dbxml:metadata('tnt:path') = $path]
    (:the query itself :)
    tnt:filter-path(collection("xml_content.dbxml"), substring("a:/doc.xml", $len)) If I execute the query I get *0* results, if I use function tnt:filter-path2 (instead of module's tnt:filter-path) then I get the expected *1* result.
    Also I experimented a bit with a query and got the following observations (independent from each other):
    1) If I substitute $len by value *3* or *3.0*, then I get right results in both cases, i.e. if the query itself looks:
    tnt:filter-path(collection("xml_content.dbxml"), substring("a:/doc.xml", 3)) 2) If I change the module's function so that it uses value comparison instead of general comparison, then I get the right results in both cases as well:
    module namespace tnt = "http://tntbase.mathweb.org/ns";
    declare function tnt:filter-path($docs as document-node()*, $path as xs:string) as document-node()*{
      $docs[dbxml:metadata('tnt:path') eq $path]
    };Please, help me out! I'm pretty sure it's a problem of DB XML and I'm struggling with it for a long time in this or that shape.
    Thanks a lot in advance,
    Vyacheslav

    I upgraded from 2.5.13 to 2.5.16 and the bug disappeared. The reason why I didn't do it before was that I hadn't seen any relevant for me fixes in the release notes of 2.5.16 comparing to 2.4.13 (Actually I already have had two patches for two relevant issues in the 2.5.13 version)
    Sorry for the false alarm.
    Vyacheslav

Maybe you are looking for