Cursors open loop (the cursor as a variable name)

Hello

I have a problem:
In my home, I said 200 sliders.
Now, I want to open, extract, and close a loop.
I think of a table containing the names of all of the cursor.

That's what I have (example maybe stupid but just to explain the problem):

DECLARE
v_empno VARCHAR2 (10);
v_empname VARCHAR2 (10);

Cursor c1 IS
SELECT EMPNO '1', 'Adam' EMPNAME
DOUBLE;
Cursor c2 IS
SELECT EMPNO '2', 'John' EMPNAME
DOUBLE;
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO v_empname, v_empno;
OUTPUT WHEN c1% NOTFOUND;
dbms_output.put_line (v_empno |) » '|| v_empname);
END LOOP;
CLOSE c1;

OPEN c2;
LOOP
C2-FETCH INTO v_empname, v_empno;
OUTPUT WHEN c2% NOTFOUND;
dbms_output.put_line (v_empno |) » '|| v_empname);
END LOOP;
CLOSE C2;
END;

And that's what I want to achieve:

DECLARE
v_empno VARCHAR2 (10);
v_empname VARCHAR2 (10);

TYPE cursors_tab IS TABLE OF varchar (5);
t_cursors cursors_tab: = cursors_tab ('c1', 'c2');

Cursor c1 IS
SELECT EMPNO '1', 'Adam' EMPNAME
DOUBLE;
Cursor c2 IS
SELECT EMPNO '2', 'John' EMPNAME
DOUBLE;

BEGIN
for me in t_cursors.first... loop of t_cursors. Last
OPEN: t_cursors (i);
LOOP
FETCH: t_cursors (i) INTO v_empno, v_empname;
EXIT WHEN t_cursors (i) % NOTFOUND;
dbms_output.put_line (v_empno |) » '|| v_empname);
END LOOP;
CLOSE: t_cursors (i);
end loop;
END;

Is this possible? I am trying to solve it, but I'm losing hope ;)
DECLARE
v_empno VARCHAR2(10);
v_empname VARCHAR2(10);

TYPE stmt_tab IS TABLE OF VARCHAR(32767);
t_stmt stmt_tab := stmt_tab(
                            'SELECT ''1'' EMPNO,''Adam'' EMPNAME FROM dual',
                            'SELECT ''2'' EMPNO,''John'' EMPNAME FROM dual'
                           );
t_cur sys_refcursor;
BEGIN
for i in t_stmt.first .. t_stmt.last loop
OPEN t_cur for t_stmt(i);
LOOP
FETCH t_cur INTO v_empno, v_empname;
EXIT WHEN t_cur%NOTFOUND;
dbms_output.put_line (v_empno||' '|| v_empname);
END LOOP;
CLOSE t_cur;
end loop;
END;
/
1 Adam
2 John

PL/SQL procedure successfully completed.

SQL> 

SY.

Tags: Database

Similar Questions

  • Add a variable name?

    I use one for a loop to creat a bunch of identical clips.  I want to join a different sound to each of these clips.  Is it possible to add a variable to the end of another variable name.  (ie. where I = [0,1,2,3,4, etc.] variable [i] = variable1, variable2, variable3, variable4, variable0, etc..)  Here is the part of the code I'm trying to make it work:

    for (var i:Number = 0; i < xmlData.object_count; i++){
    
            //create movie clips
            var boxContainer_mc:boxContainer = new boxContainer();
            addChild(boxContainer_mc);
            boxContainer_mc.x = 325 * i;  // set the number here to the width of the movie clip being repeated
            
            //sound info
            var snd[i]:Sound = new Sound();
            snd[i].load(new URLRequest("creak128.mp3"));
            boxContainer_mc.addEventListener(MouseEvent.CLICK, playSound, false, 0, true);
    
            function playSound(event:MouseEvent):void {
                snd[i].play();
            }
        }
    

    The NDS is what I'm trying to add with the County I.

    If you see this message once, it is one of these url loop for which do not exist.

    and you must never nest named functions and playSound shouldn't be in a loop for.

  • The use of bind variables in dynamic query created for Ref Cursor

    Hello

    I'm in a situation where there is a Ref cursor to which the query is built execution based on a loop. This is why the number of links would be known until the program runs.
    The application is currently using literals instead of bind variables.

    code snippet of the above is
    strSql: = "select * from emp where 1 = 1 and ().

    loop cursor1
    If cond is true then
    strSql = strSql | "ename = ' |" Cursor1.ColumnName;
    end loop;

    Open cursor2 for strSql;

    How to use links in the example above.

    sb92075 wrote:

    user13019948 wrote:
    Hello

    Here is the code I have my trying to change literal-based link to the base.

    What do you mean by "based bind?

    who, what, how determines the values to be 'bound '?

    He's referring to the coding style. He is currently using concatenated literal, and the goal is to change it to use the bindings.

    If I understand this it is known as method 4 dynamic SQL and requires DBMS_SQL. There are examples autour but they vary according to the type of statement being generated - SELECT statements require column lists to be parsed, unlike the INSERT/UPDATE/DELETE.

    This came up recently on my current project and I hit a demo. Here a table of names and values accepted procedure and had to build these in a single WHERE clause along the lines of

    AND t_names(i) = t_values(i)
    

    for an undetermined number of elements in the array. For this demonstration, I used a table that we called "attribute" (don't ask) which has columns including 'attribute_id' and 'name', and I need to build a query along the lines of

    select description from attribute where attribute_id = :b1 and name = :b2
    

    by the way '1012' and 'ISIN' respectively. (I use a table better and after a CREATE statement for her but I have to rush right now, sorry).

    declare
       k_sql_base        constant varchar2(500) := 'select description from attribute';
    
       t_names           constant varchar2_t := varchar2_t('attribute_id',  'name');
       t_values          constant varchar2_t := varchar2_t('1012',          'ISIN');
    
       l_sql             varchar2(500) := k_sql_base;
       l_rows_fetched    integer := 0;
       l_value           varchar2(4000);
    
       l_cursor_handle   integer;
    
    begin
       -- Construct the SQL statement with column names and bind variables e.g.
       -- 'select description from mars.attribute where attribute_id = :b1 and name = :b2'
       for i in t_names.first .. t_names.last loop
          l_sql := l_sql ||
             case i
                when t_names.first then ' where ' else ' and '
             end ||
             t_names(i) || ' = :b' || i;
       end loop;
    
       dbms_output.put_line('SQL statment = ' || l_sql); 
    
       -- Parse the statement we built above (the remaining steps require a parsed cursor):
       l_cursor_handle := dbms_sql.open_cursor;
       dbms_sql.parse(l_cursor_handle, l_sql, dbms_sql.native);
    
       -- Associate the 1st column of output with variable l_value - required for SELECT statements:
       -- (actually the 3rd param here 'column' seems to be only used to get a datatype, in this case we want a string -
       -- dbms_sql.column_value actually extracts the value into a specified variable, which can be different.
       -- All examples in the documentation pass a local variable without further comment, so not entirely clear what this does other than set the output datatype.)
       dbms_sql.define_column(l_cursor_handle, 1, l_value, 4000);
    
       -- Now go through values array binding actual values to :bn variables in the cursor (similar to USING clause of EXECUTE IMMEDIATE)
       for i in t_values.first .. t_values.last loop
          dbms_sql.bind_variable(l_cursor_handle, ':b'||i, t_values(i));
          dbms_output.put_line('Bound :b'||i || ' as ' || t_values(i));
       end loop;
    
       -- Open the cursor and fetch the result (no loop here because we are expecting a single-row result):
       l_rows_fetched := dbms_sql.execute_and_fetch(l_cursor_handle);
    
       -- 'Returns value of the cursor element for a given position in a cursor'
       -- Copy the value of column 1 to variable l_value (has to match
       -- dbms_sql.column_value(l_cursor_handle, 1, l_value);
       dbms_sql.column_value(l_cursor_handle, 1, l_value);
    
       dbms_output.put_line('Result = ''' || l_value || '''');
    
       dbms_sql.close_cursor(l_cursor_handle);
    end;
    

    Hope that helps...

  • Get the bind variables name string SQL or the cursor

    Hello

    Is there way to get of the bind variables name string SQL or the cursor?

    Example of
    DECLARE
      l_sql VARCHAR2(2000);
      desctab DBMS_SQL.DESC_TAB;
      curid   PLS_INTEGER;
    BEGIN
    
      l_sql := 'SELECT * FROM emp WHERE mgr = :X and deptno = :Y';
    
      curid := dbms_sql.open_cursor;
      dbms_sql.parse(curid, l_sql, dbms_sql.NATIVE);
      ....
    END;
    What I mean with the SQL string:
    I love to get using some functions from above code variable l_sql all the bind variable.
    In this case the function should return array where is for example: X and: Y

    Back to bind the cursor variable names, I mean same but rather string I pass number of cursor.

    Y at - it sucks ready function or some may share a code customized for this purpose?

    Thanks

    Kind regards
    Jari

    http://dbswh.webhop.NET/dbswh/f?p=blog:Home:0Regards,

    Published by: jarola December 19, 2011 02:44

    I found there are wwv_flow_utilities.get_binds of the function not documented in APEX packages that do what I want.
    Usage example
    set serveroutput on
    DECLARE
      binds DBMS_SQL.varchar2_table;
    BEGIN
      binds := wwv_flow_utilities.get_binds('select :P1_TEST from dual');
      FOR i IN 1 .. binds.count
      LOOP
        dbms_output.put_line(binds(i));
      END LOOP;
    END;
    /
    
    anonymous block completed
    :P1_TEST
    But I would not use these functions without papers as those who can change or there is no future versions APEX.
    Is there a documented function or the custom function that do the same thing as wwv_flow_utilities.get_binds?

    Some old basic example code of my friends. Also the media getting the bind variable of PL/SQL code blocks anon.

    SQL> create or replace function GetBindVariables( statement varchar2 ) return TStrings is
      2          --// bind variables names are terminated by one the following special chars
      3          SPECIAL_CHAR    constant TStrings := TStrings(' ',')','+','-','>','<','*',',','=',';',CHR(10),CHR(13));
      4
      5          --// max size of a bind var name
      6          MAX_VARSIZE     constant integer := 100;
      7
      8          pos     integer;
      9          pos1    integer;
     10          occur   integer;
     11          varName varchar2(100);
     12          varList TStrings;
     13  begin
     14          varList := new TStrings();
     15
     16          --// looking for the 1st occurance of a bind variable
     17          occur := 1;
     18
     19          loop
     20                  pos := InStr( statement, ':', 1, occur );
     21                  exit when pos = 0;
     22
     23                  varName := SubStr( statement, pos, 100 );
     24
     25                  --// find the terminating char trailing the
     26                  --// bind variable name
     27                  pos1 := Length( varName );
     28                  for i in 1..SPECIAL_CHAR.Count
     29                  loop
     30                          pos := InStr( varName, SPECIAL_CHAR(i) ) - 1;
     31                          if (pos > 0) and (pos < pos1) then
     32                                  pos1 := pos;
     33                          end if;
     34                  end loop;
     35
     36                  --// extract the actual bind var name (without
     37                  --// colon char prefix)
     38                  varName := SubStr( varName, 2, pos1-1 );
     39
     40                  --// maintain a unique list of var names
     41                  if not varName member of varList then
     42                          varList.Extend(1);
     43                          varList( varList.Count ) := varName;
     44                  end if;
     45
     46                  --// look for the next occurance
     47                  occur := occur + 1;
     48          end loop;
     49
     50          return( varList );
     51  end;
     52  /
    
    Function created.
    
    SQL>
    SQL> select
      2          column_value as BIND_VAR
      3  from TABLE(
      4          GetBindVariables('select * from foo where col=:BIND1 and day = to_date(:B2,''yyyy/mm/dd'')')
      5  );
    
    BIND_VAR
    ------------------------------
    BIND1
    B2
    
    SQL> 
    

    PS. just realize this code is case-sensitive, while variable bind is not. Should throw a upper() or lower() by adding the name of the var to the list - never really a problem for me because I'm pretty tense when it use cases correctly in the code. ;-)

    Published by: Billy Verreynne, December 19, 2011 06:19

  • How can I get cursor to open above the text field?

    When to create a form with fields of text of the slider opens in the middle of a text field. (according to the image) How can I get cursor to open above the text field?

    Thanks for any help

    cursor.jpg

    Set the field to be multiline.

  • [ORACLE 9] OPEN for the variable binding USING declaration

    Hello

    I have a loop that retrieves only 1 sheet instead of 7:
    DECLARE
    
     lv_into varchar2(40);
     lv_qry  varchar2(400);
     
     type curtest_ref is ref cursor;
     
     curtest          curtest_ref;
     lv_compteur number(4) := 1;
     
     lv_client_loc   varchar2(100);
     BEGIN
     dbms_output.put_line( 'Début' );
     lv_qry := 'select client_loc from tmp_jbm where client_id = :A ';
     
     open curtest for lv_qry using lv_compteur;                 
     loop
                    fetch curtest into lv_client_loc ;
                    exit when curtest%notfound;
                    dbms_output.put_line( 'ligne: '       || to_char( lv_compteur )
                                       || ' Client Loc: ' || lv_client_loc );
                    lv_compteur := lv_compteur + 1;
                    exit when lv_compteur > 6;
         end loop;
    EXCEPTION
        when others then
                 dbms_output.put_line( 'Erreur exception: ' || sqlerrm );
    END; 
    [/END CODE]
    
    It looks like the cursor only fetches 1 record and then stops.
    
    Many thanks                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

    Bind variables are evaluated when the cursor is opened. Not when extract you the data.
    I don't know why you use dynamic sql, here, you do not need.
    In any case, your code is incorrect.
    Assuming that the client_id is unique, Yes, your fetch fetch one line. When you loop the second time, retrieving a new record for the same statement, then you hit no_data_found.

    ---------
    Sybrand Bakker
    Senior Oracle DBA

  • Why it takes so long to open a connection to a shared variable, the first time?

    Hello

    I have an application to large scale developed with LabVIEW DSC, which covers multiple computers on a LAN.  In one of the VI I open variable connection shared by using the "open Datasocket' VI.  I notice that after restarting my computer and execution of this VI into the source code (I have not tried with an executable file yet) it takes about 20 seconds to get a successful connection to a variable share located on another computer.  The later 'Datasocket Open' claims the same computer to the same shared variable takes much less time, about 100 ms.  I reproduce this with 3 different computer, so the behavior seems to be reproducible, but it's not to do it every time but very often.  This scenario may occur also when I did not open a connection to another computer for awhile.

    Anyone have this experience? Is there something I can do all this to avoid this 20 seconds delay problem? Anyone have an explanation?

    All of my computers running Windows 8.1.  I'm using LabVIEW 2012.  All my firewalls are 'off '.

    Thank you

    Michel

    Here is a picture of my open VI.

    Recently, I did this for another client. You can emulate a timeout (and actually connect faster) by using the function "open in background" and then checking the variable.connected? property.

  • evaluate the variable name in a loop in cs3

    I want to generate names of variables in a loop and assign it a library object.

    e.g. public var missing1_mc:MissingGameObjects;
    public var missing2_mc:MissingGameObjects;
    public var missing3_mc:MissingGameObjects;
    public var missing4_mc:MissingGameObjects;

    Now, in a loop, I want to do the following:

    var ClassReference: Class;
    var missing_obj:String;

    for (var i = 0; i < usedNo.length; i ++) {}
    missing_obj = main_obj + usedNo [i] + '_', '_x ';
    ClassReference is getDefinitionByName (missing_obj) classroom;.
    'lack' + (i + 1) + "_mc" = new ClassReference(); wrong code
    'lack' + (i + 1) + "_mc".setpos (150 100); wrong code
    }

    How could I do that. Any help is appreciated.

    If you try to use the object variable names and classes of the variables, you can use the following (assuming that everything is set):

  • Ensure this soft analysis the use of Bind variables

    Hi Experts,

    I have a request when the query is prepared dynamically in Java code and if I take the query and run it from SQL Navigator, it takes a long time to prepare the statement and then execute it quickly. I think we can use dynamic SQL statements and bind variable to improve performance here. However, I tried to do a PDS to check my understanding. I created 2 procedures

    1. mode of operation
    CREATE OR REPLACE PROCEDURE sp_static
    (id IN NUMBER, 
     name in VARCHAR2)
    IS 
    TYPE r_curs_type is REF CURSOR;
    C1 r_curs_type;
    BEGIN
    
    OPEN C1
    FOR
    SELECT * FROM TABLE WHERE columname = id
    
    CLOSE C1;
    
    END;
    2. mode of operation
    CREATE PROCEDURE sp_dyanmic
    (id IN NUMBER, 
     name in VARCHAR2)
    IS 
    TYPE r_curs_type is REF CURSOR;
    C1 r_curs_type;
    BEGIN
    
    OPEN C1 FOR 'SELECT * FROM TABLE WHERE columnanme = :U1' 
    USING ID;
    
    CLOSE C1;
    END;
    To my amazement, there is no difference in the duration of execution of these procedures when I ran the with multiple entries.

    Please note-
    1. I have not access to trace files :-(
    2. I want to just make sure there will be improved performance before starting the real work, given that some efforts provided by moving the logic of all its activities inside and the use of bind variables.

    If you can suggest a strategy to ensure performance gains, it will be extremely useful...

    Thanks in advance!
    Concerning

    Hello

    (1) it's true, procedure 1 also uses a variable binding
    (2) you seem to be confused about the very basic concepts here

    Dynamic SQL is something like this:

    create or replace FUNCTION f (l_table_name VARCHAR2) RETURN NUMBER
    IS
      l_result NUMBER;
    BEGIN
      EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ' || l_table_name  INTO l_result;
      return l_result;
    END;
    

    In this example, since you do not know the name of the table to the execution table, everything you can
    is dynamic SQL. As you can see, neither of your two procedures is like that.

    Dynamic SQL is used when you do not know what columns you want to select, or who
    etc. to the execution table. You can also use dynamic SQL statements to force analysis. You can not use
    to avoid parsing, binding or not binding.

    Best regards
    Nikolai

  • How to perform a function and return the result in a variable of liaison

    Hello

    I'm trying to calculate the sum of the salaries of all persons with a particular using a function JOB_ID TOTAL_INCOME (v_job_id).

    create or replace function total_income
    + (v_job_id in VARCHAR2) +.
    Number IS BACK
    v_total number (6);

    cursor get_sal is
    Select the pay of employees
    where job_id = v_job_id;
    BEGIN
    v_total: = 0;
    for emp in get_sal
    loop
    v_total: = v_total emp.salary; +.
    end loop;

    dbms_output.put_line (' Total salary ' | v_job_id |' is: ' | v_total);
    Return v_total;
    END;

    Now I woud like to perform this function and assign the value returned in a variable binding test_sal

    test_sal variable number (6)
    SELECT total_income ('AD_VP') in: test_sal FROM DUAL;
    dbms_output.put_line (' Sal Total :'||: test_sal);

    This returns the errors below:

    SELECT total_income ('AD_VP') in: test_sal FROM DUAL
    *+
    Error on line 0
    ORA-01036: illegal variable name/number

    dbms_output.put_line (' Sal Total :'||: test_sal);
    Error on line 3
    ORA-00900: invalid SQL statement

    Could someone help me what could be the problem? Thanks for your time...

    Hi Kiran and welcome to the forum,

    You mix SQL and PL/SQL

    It's the way in which SQL:

    SQL> SELECT total_income('AD_VP') FROM DUAL;
    
    TOTAL_INCOME('AD_VP')
    ---------------------
                      123
    1 row selected.
    

    It comes to PL/SQL in SQL * more

    SQL> variable test_sal number
    SQL> execute :test_sal := total_income('AD_VP')
    PL/SQL procedure successfully completed.
    SQL> exec dbms_output.put_line('Total Sal:'||:test_sal)
    Total Sal:123
    PL/SQL procedure successfully completed
    

    Concerning
    Peter

  • Why all the emails Outlook express opens at the far right of the screen?

    Why all the emails Outlook express opens at the far right of the screen? I have to take the cursor to the top right of the computer screen, then click to maximize the file so that it opens to the normal size and location. Does not try to 'change' the file to the normal position. Thank you

    Any window that you want to resize all the time must be the last closed window.

    Take the corners of the window and drag it to the format full screen. Do not use to expand. Close all other windows first via the taskbar and the latter. Windows will remember the size of the last closed window the next time that you open the program.

  • Office randomly freezes, can't open all the desktop icons

    Original title: desktop windows 7

    Windows 7 64-bit. Office randomly freezes cannot open all the icons of the Office dies just.

    I need to restart the pc to make it work again thanks for any help you guys can come up with.

    Jim.

    Jim

    In Windows 7, use Ctrl + Shift + Esc instead of Ctrl + Alt + Delete. It lets you in the Manager of tasks more quickly. Select Task Manager, performance, resource monitor tab and tab memory. What are the numbers for reserved equipment, in use, modification, sleep and free?

    Is your Windows 7 32-bit or 64-bit? The amount of RAM is installed?

    Restart your computer and wait 30 minutes for the system to operate before you download information. When the review much, not Event Viewer log files all problems show in the period immediately after the computer has booted.

    Please provide a copy of your system information file. Type the system information in the search box above the Start button and press the ENTER key (alternative is select Start, all programs, accessories, System Tools, system information). Select file, Export and give the file a name noting where it is located. Not to place the cursor in the body of the report before exporting the file. The system creates a new information file system each time system information is available. You must allow a minute or two before the file is completely filled before exporting a copy. Please download the file to your OneDrive, to share with everyone and post a link here. Normal mode preferred report. Please say if the report was obtained in safe mode. If the report is in one language other than English, please indicate the language.

    Please download and share with everyone a new copy of your log System of your event viewer on your disc one and post a link here. It allows to avoid confusion if you delete all previous copies of the log files of your OneDrive.

    To access the system, log, select Start, Control Panel, administrative tools, Event Viewer, in the list on the left of the window, expand Windows logs and select System. Place the cursor on the system, select the Action in the Menu and record all events like (the evtx default file type) and give a name to the file. Do not offer not filtered files. Do not place the cursor in the list of reports before selecting the Action from the menu. Do not clear the logs so that you have a persistent problem.

    For assistance OneDrive see paragraph 9.3:
    http://www.gerryscomputertips.co.UK/MicrosoftCommunity1.htm

  • Help. Window opens on the Firefox browser that says Application JavaScript and according to what he says 101. There is an OK bitton. When I click on OK, place just the window again and again.

    Help. Window opens on the Firefox browser that says Application JavaScript and according to what he says 101. There is an OK bitton. When I click on OK, place back the window. Then once again hit OK and box disappears when I move my mouse the same Monte box again. I even called Apple support. They tried things; got me well maybe some ting setbold textin Firefox preferences. It started right after the installation of update of Mac at the close. Any help, please. My browser is completely blocked (obviously) in this loop! [email protected] jason

    Hello

    Please check if this happens in Safe Mode.

    Extensions of the issues

    Troubleshooting Extensions and themes

    Uninstalling the modules

    Uninstalling toolbars

    Safe mode disables the installed Extensionsand themes (appearance) in (Alt + T) Tools > Add-ons. Hardware acceleration is also temporarily disabled - manual setting is Tools > Options > Advanced > general > use hardware acceleration when available. Options > Advanced. All these parameters/additional custom modules can also be individually or collectively disabled/enabled/changed to normal mode of Firefox to check if an extension, theme or hardware acceleration is causing issues.

  • How to set the value of a variable in automator?

    I'm totally new to automator I found a post that I try to reuse

    to Re: copy multiple files from TextEdit in one Word file

    I want to open a series of html files in a folder and convert in a TextEdit rtf file.

    However, I am unable to automator find out how set the value of a variable such that it appears in this post

    I looked at every command in library without a lot of fortune

    Any help?

    Thank you

    Dan

    Its in Utilities.

    In Automator, use the search box:

  • Causing problems of custom data type to deploy the shared target RT variable

    I seem to have some difficulty in using a shared variable published network created from a customized data type when it is deployed as an executable on a target of cRIO RT.  I'll start by describing why I think that this is the rub.  I created my RT VI in the LabVIEW (LV 2012) development environment and everything works fine.  This VI is quite simple, because these were quickly devolved into an exercise in debugging.  The RT VI begins by simply flashing the LED to a couple of times and then starts a loop simple acquisition to read some values out of the material using the analytical engine (while still flashing the LED of the user).  After reading the material, the values are grouped in a cluster and written in a shared variable published to the network defined by a custom control type def.  The custom control contains five floats double precision.  If it's important, the RT cRIO system hosts the shared variable in this case.

    So I have that deploy in the development environment, and everything works fine.  The LED flashes merrily along, telling me that the program runs correctly.  Running a VI host who reads the shared network has published variable gives the desired result.  Everything is good.

    Now, I want the cRIO system to run this simple program by itself at startup.  I build, set it as start VI, deploy it, and then restart the cRIO target.  The LED never flashing... the VI doesn't seem to work.  I'll spare you the major part of the work of debugging and access to the end.  I basically "diagram Disabled" various sections of the code up to the VI began to run correctly in an executable file.  I kept reducing the size of the disabled code until something has been disabled: the writing in the shared variable for the custom data type.

    So, I guess my question is this: are custom data types defined by type def would be personalized orders authorized executables to RT?  I read through the cRIO Developers Guide, my book of development in real time course of NOR and the white paper using shared Variables and I see nothing that forbids it.  I know that there are things not allowed in the executable files that are allowed in the development environment (property nodes façade, dialogue live, operating system specific calls, etc.), but no mention of the shared variable type custom data.  Any ideas as to why my VI is running in the development environment, but does not update unless I have delete the entry on the published network variable shared?

    Thank you in advance for your help!

    You must disconnect the data types of variables and then recompile. You can find it useful to keep on disk, a copy of the original lvlib.

    Don't know if this is a bug or not. It was suggested by someone in the forum that putting the ctl files in the right position (the disk? in the draft?) would allow the rtexe start; I did a quick check and it didn't work then I dropped the tests more far.

Maybe you are looking for