Fpga: Re-Initialize Block Memory during Execution

Hello,
I am working on a project in labview fpga 2010, using the Spartan 3e board. At the present, I am using a large chunk of block memory in a VI and initialize it using an initialization VI that reads values from a spreadsheet and places them in the memory. It works for the first time, however I want to be able to re-initialize the memory during execution of the VI (i.e. I overwrite all the values in the table, then after a certain time I wish to reset them back to their initial values). Is there any way of accomplishing this on the FPGA without using double the memory and simply writing the changed values in a different location while leaving the originals unharmed? Thanks for your help

I think the approach I would take to solve this would be as follows:
Protect access to the block RAM with helper VIs that provide some level of locking (see http://zone.ni.com/devzone/cda/epd/p/id/6014 for some ideas)
Lock the block RAM when you're about to change it, and the go ahead and push the new values to the FPGA, pull the old values to remember them on the host, or both
Unlock when you've completed updating the RAM contents.
Note that, depending on how large this block RAM is, this approach could be painfully slow (since the Spartan 3E boards don't support DMA, you'll have to create your own mechanism for pushing the data to the device)

Similar Messages

  • How to create a reference in the block diagram during execution?

    Hello,
    I'm doing a program and I would like to create references to objects in execution time, is there a function in labview that allows you to do this?
    Thanks in advance!
    Solved!
    Go to Solution.

    What I want to do is create a generic subvi where I can send a cluster of objects (which number can change). I want the subvi to change a property of those objects (for example, the visibility). If I unbundle the cluster I get objects, not references, and I was wondering if it's possible to obtain a reference from those objects to input to a property node.
    Surely there is a better way to do this, but I'm new in Labview and I haven't found it...
    Thanks

  • FPGA Compilation fails with Xilinx "Block Memory Generator 8.1" configured with a Coefficient File

    Hello All,
    I have a SubVI that uses block memory, which has been created using Xilinx "Block Memory Generator 8.1". I have configured this block memory to be a "Single Port ROM", and I use a coefficient file to initialize the memory contents. In simulation mode, everything works as it should.
    Next, when I try to compile the top-level VI, I get the following error:
    http://www.cs.nyu.edu/~aditya/Compilation_Log_100.txt
    http://www.cs.nyu.edu/~aditya/Dividing (This is the coefficient file)
    Essentially, the compiler is looking at an ill-formed path to find the coefficient file.
    My environment:
    -- LabView 2014 f1 (32 Bit)
    -- FPGA module 2014
    -- RT Module 2014
    -- Xilinx Vivado 2013.4
    -- NI RIO Drivers 14
    -- Development Machine and Conpile Server: Windows 7 Professional, 32GB RAM
    -- Compile Worker running Linux, with Xilinx Compile tools installed
    Is this a bug, or am I doing something wrong? Thanks!
    Best,
    Aditya

    Next, I tried compiling on the windows machine itself. And here is the error that I get. (See attached image).
    Thanks!
    best,
    aditya
    Attachments:
    Capture.PNG ‏18 KB

  • Does anyone know how to display (in LabVIEW) the memory use during execution of an image and data acquisition VI to predict when it is time to cease the acquisition to prevent the program crashing?

    Does anyone know how to display (in LabVIEW) the memory use during execution of an image and data acquisition VI to predict when it is time to cease the acquisition to prevent the program crashing?
    I am acquiring images and data to a buffer on the edge of the while loop, and am finding that the crashing of the program is unpredictable, but almost always due to a memory saturation when the buffers gets too big.
    I have attached the VI.
    Thanks for the help
    Attachments:
    new_control_and_acquisition_program.vi ‏946 KB

    Take a look at this document that discusses how to monitor IMAQ memory usage:
    http://digital.ni.com/public.nsf/websearch/8C6E405861C60DE786256DB400755957
    Hope this helps -
    Julie

  • Initialize block of memory in CIN

    Hello, I am having quite a time trying to initialize a block of memory and then hand a pointer to that memory back to LabVIEW.
    1. I pass an uInt8 Array of 3000 elements (6kB) into my LabVIEW CIN
    2. I prepare a block of memory in the CIN.
    3. I initialize the memory by loading a static table into the block of memory
    4. I WANT to move the initialized memory space into the uInt8 Array, starting at index[0]
    The code below compiles, but when I run the CIN in labview, LV crashes.  
    What am I doing wrong?
    Thank you for any help,
    Victor
    /* Typedefs */
    typedef struct {
        int32 dimSize;
        uInt8 globalData2[1];
        } TD1;
    typedef TD1 **TD1Hdl;
    typedef struct _LANGUAGE_ENTRY
            UCHAR           Language;
            PVOID             pTable;
        } LANGUAGE_ENTRY;
    extern LTABLE LANGUAGE_TABLE
    void *memPtr;
    extern "C"{
    MgErr CINRun(TD1Hdl globalData);
    MgErr CINRun(TD1Hdl globalData)
        uInt16 usSize;
        LANGUAGE_ENTRY MyLanguages[2];
        usSize = 5576; //GlobalDataSize
        memPtr = malloc( usSize );
        memset( memPtr, 0, sizeof(memPtr) );
        MyLanguages[0].Language = ENGLISH;
        MyLanguages[0].pTable = (void*)LTABLE LANGUAGE_TABLE;
        MyLanguages[1].Language = 0;
        MyLanguages[1].pTable = 0;
        Initialize ( MyLanguages, memPtr);
        MoveBlock(memPtr, (*globalData)->globalData2, usSize);
        return noErr;

    Hi Victor,
    I think the reason LabVIEW is crashing is because it isn't happy with the pointer you are giving it or the way you are giving it. I personally am not that familiar with C code, but my suggestion would be to use the malloc function. The LabVIEW help on the Memory Manager (Fundamentals » Calling Code Written in Text-Based Programming Languages » Concepts » CINs » LabVIEW Manager Routines) is a great place to start. It describes the functions to use to pass pointers as parameters and links to the Memory Manager page which talks about Using Pointers for Dynamic Memory Allocation. You could also create the array and specify the memory to use for it rather than the other way around and then move the array there. I hope this helps!
    Stephanie

  • Does anyone know how to display (in LabVIEW) the memory use during execution of an image and data acquisitio​n VI to predict when it is time to cease the acquisitio​n to prevent the program crashing?

    Does anyone know how to display (in LabVIEW) the memory use during execution of an image and data acquisition VI to predict when it is time to cease the acquisition to prevent the program crashing?
    I am acquiring images and data to a buffer on the edge of the while loop, and am finding that the crashing of the program is unpredictable, but almost always due to a memory saturation when the buffers gets too big.
    I have attached the VI.
    Thanks for the help
    Attachments:
    new_control_and_acquisition_program.vi ‏946 KB

    got these vi's off ni site a while ago - see if they help
    Attachments:
    Memory_Monitor.zip ‏132 KB

  • Lire écrire block memory (fpga)

    Bonjour,
    Est-il possible de lire/écrire sumultanément dans un block memory sous labview 2010 fpga ?
    Dans le fichier joint, j'ai l'impression que ma block memory se rempli une fois, puis envoie continuellement ce que je lui ai envoyé la première fois même si je change entre temps le contenu de cette block memory (par l'intermédiaire de la FIFO.
    Merci d'avance.
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    blockmemory.JPG ‏106 KB

    Bon, je me réponds
    C'était bien le noeud de rétroaction qui restait bloqué à sa valeur max. Je l'ai donc changé par un registre à décalage qui se reinitialise à chaque fois que le signal est entièrement généré.

  • Initialization Blocks -- Practical Example.

    I am curious about I topic that I have just recently learned about and would like to post it for discussion.
    Does anyone know of a practical example of the use of an initialization block? Why would one want to use an initialization block? What can be accomplished with an initialization block that you cannot accomplish with a constructor that doesn't accept any parameters?

    Hi Robert,
    Initializers are used in initialization of object and classes. They can also be used to define constants in Interfaces.
    Here I am explaning by corelating the Constructor with Initialization.
    In what order is initialization code executed? What should I put where ?
    Instance variable initialization code can go in three places within a class:
    In an instance variable initializer for a class (or a superclass).
    class C {
    String var = "val";
    In a constructor for a class (or a superclass).
    public C() { var = "val"; }
    In an object initializer block. This is new in Java 1.1; its just like a static initializer block but without the keyword static.
    { var = "val"; }
    The order of evaluation (ignoring out of memory problems) when you say new C() is:
    1.Call a constructor for C's superclass (unless C is Object, in which case it has no superclass). It will always be the no-argument constructor, unless the programmer explicitly coded super(...) as
    the very first statement of the constructor.
    2.Once the super constructor has returned, execute any instance variable initializers and object initializer blocks in textual (left-to-right) order. Don't be confused by the fact that javadoc and
    javap use alphabetical ordering; that's not important here.
    3.Now execute the remainder of the body for the constructor. This can set instance variables or do anything else.
    In general, you have a lot of freedom to choose any of these three forms. My recommendation is to use instance variable initailizers in cases where there is a variable that takes the same value
    regardless of which constructor is used. Use object initializer blocks only when initialization is complex (e.g. it requires a loop) and you don't want to repeat it in multiple constructors. Use a constructor
    for the rest.
    Here's another example:
    Program:
    class A {
    String a1 = ABC.echo(" 1: a1");
    String a2 = ABC.echo(" 2: a2");
    public A() {ABC.echo(" 3: A()");}
    class B extends A {
    String b1 = ABC.echo(" 4: b1");
    String b2;
    public B() {
    ABC.echo(" 5: B()");
    b1 = ABC.echo(" 6: b1 reset");
    a2 = ABC.echo(" 7: a2 reset");
    class C extends B {
    String c1;
    { c1 = ABC.echo(" 8: c1"); }
    String c2;
    String c3 = ABC.echo(" 9: c3");
    public C() {
    ABC.echo("10: C()");
    c2 = ABC.echo("11: c2");
    b2 = ABC.echo("12: b2");
    public class ABC {
    static String echo(String arg) {
    System.out.println(arg);
    return arg;
    public static void main(String[] args) {
    new C();
    Output:
    1: a1
    2: a2
    3: A()
    4: b1
    5: B()
    6: b1 reset
    7: a2 reset
    8: c1
    9: c3
    10: C()
    11: c2
    12: b2
    When should I use constructors, and when should I use other methods?
    The glib answer is to use constructors when you want a new object; that's what the keyword new is for. The infrequent answer is that constructors are often over-used, both in when they are called and
    in how much they have to do. Here are some points to consider
    Modifiers: As we saw in the previous question, one can go overboard in providing too many constructors. It is usually better to minimize the number of constructors, and then provide modifier
    methods, that do the rest of the initialization. If the modifiers return this, then you can create a useful object in one expression; if not, you will need to use a series of statements. Modifiers are
    good because often the changes you want to make during construction are also changes you will want to make later, so why duplicate code between constructors and methods.
    Factories: Often you want to create something that is an instance of some class or interface, but you either don't care exactly which subclass to create, or you want to defer that decision to
    runtime. For example, if you are writing a calculator applet, you might wish that you could call new Number(string), and have this return a Double if string is in floating point format, or a Long if
    string is in integer format. But you can't do that for two reasons: Number is an abstract class, so you can't invoke its constructor directly, and any call to a constructor must return a new instance
    of that class directly, not of a subclass. A method which returns objects like a constructor but that has more freedom in how the object is made (and what type it is) is called a factory. Java has no
    built-in support or conventions for factories, but you will want to invent conventions for using them in your code.
    Caching and Recycling: A constructor must create a new object. But creating a new object is a fairly expensive operation. Just as in the real world, you can avoid costly garbage collection by
    recycling. For example, new Boolean(x) creates a new Boolean, but you should almost always use instead (x ? Boolean.TRUE : Boolean.FALSE), which recycles an existing value rather than
    wastefully creating a new one. Java would have been better off if it advertised a method that did just this, rather than advertising the constructor. Boolean is just one example; you should also
    consider recycling of other immutable classes, including Character, Integer, and perhaps many of your own classes. Below is an example of a recycling factory for Numbers. If I had my choice, I
    would call this Number.make, but of course I can't add methods to the Number class, so it will have to go somewhere else.
    public Number numberFactory(String str) throws NumberFormatException {
    try {
    long l = Long.parseLong(str);
    if (l >= 0 && l < cachedLongs.length) {
    int i = (int)l;
    if (cachedLongs[i] != null) return cachedLongs;
    else return cachedLongs[i] = new Long(str);
    } else {
    return new Long(l);
    } catch (NumberFormatException e) {
    double d = Double.parseDouble(str);
    return d == 0.0 ? ZERO : d == 1.0 ? ONE : new Double(d);
    private Long[] cachedLongs = new Long[100];
    private Double ZERO = new Double(0.0);
    private Double ONE = new Double(1.0);
    We see that new is a useful convention, but that factories and recycling are also useful. Java chose to support only new because it is the simplest possibility, and the Java philosophy is to keep the
    language itself as simple as possible. But that doesn't mean your class libraries need to stick to the lowest denominator. (And it shouldn't have meant that the built-in libraries stuck to it, but alas, they
    did.)
    I have a class with six instance variables, each of which could be initialized or not. Should I write 64 constructors?
    Of course you don't need (26) constructors. Let's say you have a class C defined as follows:
    public class C { int a,b,c,d,e,f; }
    Here are some things you can do for constructors:
    1.Guess at what combinations of variables will likely be wanted, and provide constructors for those combinations. Pro: That's how it's usually done. Con: Difficult to guess correctly; lots of
    redundant code to write.
    2.Define setters that can be cascaded because they return this. That is, define a setter for each instance variable, then use them after a call to the default constructor:
    public C setA(int val) { a = val; return this; }
    new C().setA(1).setC(3).setE(5);
    Pro: This is a reasonably simple and efficient approach. A similar idea is discussed by Bjarne Stroustrop on page 156 of The Design and Evolution of C++. Con: You need to write all the little
    setters, they aren't JavaBean-compliant (since they return this, not void), they don't work if there are interactions between two values.
    3.Use the default constructor for an anonymous sub-class with a non-static initializer:
    new C() {{ a = 1; c = 3; e = 5; }}
    Pro: Very concise; no mess with setters. Con: The instance variables can't be private, you have the overhead of a sub-class, your object won't actually have C as its class (although it will still be an
    instanceof C), it only works if you have accessible instance variables, and many people, including experienced Java programmers, won't understand it. Actually, its quite simple: You are defining a
    new, unnamed (anonymous) subclass of C, with no new methods or variables, but with an initialization block that initializes a, c, and e. Along with defining this class, you are also making an
    instance. When I showed this to Guy Steele, he said "heh, heh! That's pretty cute, all right, but I'm not sure I would advocate widespread use..."
    4.You can switch to a language that directly supports this idiom.. For example, C++ has optional arguments. So you can do this:
    class C {
    public: C(int a=1, int b=2, int c=3, int d=4, int e=5);
    new C(10);
    Common Lisp has keyword arguments as well as optional arguments, so you can do this:
    (defstruct C a b c d e f) ; Defines the class
    (make-C :a 1 :c 3 :e 5) ; Construct an
    instance
    What about class initialization?
    It is important to distinguish class initialization from instance creation. An instance is created when you call a constructor with new. A class C is initialized the first time it is actively used. At that time,
    the initialization code for the class is run, in textual order. There are two kinds of class initialization code: static initializer blocks (static { ... }), and class variable initializers (static String var =
    Active use is defined as the first time you do any one of the following:
    1.Create an instance of C by calling a constructor;
    2.Call a static method that is defined in C (not inherited);
    3.Assign or access a static variable that is declared (not inherited) in C. It does not count if the static variable is initialized with a constant expression (one involving only primitive operators (like +
    or ||), literals, and static final variables), because these are initialized at compile time.
    Here is an example:
    Program:
    class A {
    static String a1 = ABC.echo(" 1: a1");
    static String a2 = ABC.echo(" 2: a2");
    class B extends A {
    static String b1 = ABC.echo(" 3: b1");
    static String b2;
    static {
    ABC.echo(" 4: B()");
    b1 = ABC.echo(" 5: b1 reset");
    a2 = ABC.echo(" 6: a2 reset");
    class C extends B {
    static String c1;
    static { c1 = ABC.echo(" 7: c1"); }
    static String c2;
    static String c3 = ABC.echo(" 8: c3");
    static {
    ABC.echo(" 9: C()");
    c2 = ABC.echo("10: c2");
    b2 = ABC.echo("11: b2");
    public class ABC {
    static String echo(String arg) {
    System.out.println(arg);
    return arg;
    public static void main(String[] args) {
    new C();
    Output:
    1: a1
    2: a2
    3: b1
    4: B()
    5: b1 reset
    6: a2 reset
    7: c1
    8: c3
    9: C()
    10: c2
    11: b2
    I hope the above will help you.
    Thanks
    Bakrudeen

  • Calling of function in initialization block

    Hi,
    Could anyone please tell whether calling of function in initialization block occurs in what manner?
    Please answer by selecting from below options:
    Option 1. SEQUENTIAL (e.g USER 1 & USER 2 concurrently logged in, Now USER 1 calls the function through initialization block first and after completion releases it for USER 2)
    Option 2 THREADING (e.g USER 1 & USER 2 concurrently logged in, Now USER 1 and USER 2 calls the function through initialization block simultaneously)
    Regards,
    Varun
    Edited by: Varun Malhotra on 17-Dec-2009 01:07
    Edited by: Varun Malhotra on 17-Dec-2009 01:57

    Hi Varun,
    Based upon my previous Dashboard Prompt Execution Order, most things in OBIEE happen asynchronously.
    That being said, I would think that your second scenario is the most likely. If both users login at the same time, the function gets called simultaneously (or close to it).
    Hope that helps.
    -Joe

  • How to use session variables in initialization blocks

    Hello,
    I want to use a session variable in a initialization block. Here is what I was doing to see this working
    I created a init block called name_parameter and associated with a variable target named name_parameter_v. The init string for this block is "select 'Hello' from dual".
    i created another init block name_parameter2 and associated with a variable target named name_parameter2_v. The init string is "select :name_parameter_v from dual".
    I have selected name_parameter in the edit execution precedence for name_parameter2.
    The result set is empty. Could you please explain why I am not able to see Hello when i test name_parameter2.
    Thanks.

    to obtain the value contained in a session variable this is the syntax.
    select 'VALUEOF(NQ_SESSION.VARIABLE_NAME)' from dual
    mind the single quotes, they are necessary

  • FPGA dynamic read of memory item

    I am using a flex rio PXIe-7961R/NI-6585.  When I try to complie my code i get
    An internal software error has occurred. Please contact National Instruments technical support at ni.com/support with the following information:
    Error -61175 occurred at
    Possible reason(s):
    LabVIEW FPGA: FPGA FIFO Node not wired with constant FPGA FIFO Name.
    =========================
    LabVIEW FPGA: FPGA FIFO Node not wired with constant FPGA FIFO Name.
    I am trying to read from block memory in a subvi that gets a memory name passed into it.  I get the error in the writeTxFifo vi. The tlmMessageBuilder is the calling the vi.  Any ideas on how to fix this problem?
    Attachments:
    tlmMessageBuilder.vi ‏56 KB
    writeTxFifo.vi ‏41 KB

    I just took another look at the VI you posted.
    The error message you're getting probably has nothing to do with the case structure. The error is a result of using a control as the source of your reference rather than a constant. 
    National Instruments
    FlexRIO Product Support Engineer

  • VI Metric.Dat​aSize Property Error 1000 during execution

    OK, maybe this will be an easy one for someone.  Today I'm attempting to detect an apparent memory leak in a Windows executable on 8.6.1 that, despite my best efforts, is still causing the painfully ambiguous "Not enough memory to complete this operation" dialog to appear.
    This is within an executable, so I thought the best way to tackle this would be to read the "Metric.DataSize" property off of suspect VIs during execution.  I'm getting error 1000, which leads me to believe that I can't read the property while the VI in question is running.  Is there some way around this?  Is there an easier way that I've forgotten?
    I saw a rather old post of a similar nature relating to 7.1, but the recommendation was to use the memory monitor example.  I took a look at that example's code, but they're calling the same property without error handling.
    Thanks a lot,
    Jim

    Hello Marti,
    First of all, thanks for getting back to me.  I did manage to track down the memory leak -- more on that soon enough -- but here are some answers to your questions:
    First, I'd recommend trying to tackle this issue in the original VI.  When you run the VI, do you get the same error?
    If you're asking whether I see the error in the development environment, I haven't, unfortunately.  However, I haven't run the VI for any extended period of time, either.  Also, I don't know if I was clear on this: it's not really an error message in the traditional sense of a code and description.  It's just a plain dialog that appears to be thrown by the runtime engine.
     If not, can you monitor LabVIEW's usage in the Windows Task Manager, and see if it creeps up continuously?
     I hadn't resorted to trying that just yet because I was hoping there was an easier (and more specific) way.  The dialog I had seen was the plain one that the runtime engine seemed to have launched, so I figured it was a pretty safe bet that it was a memory leak.  I could confirm this with task manager, though, if it's helpful.
    If it does not, then you may not have a memory leak but be performing operations or copying large data arrays inadvertently. What is your VI doing?  Are you ensuring to close all references at the end of your code?
    In this case it's a "web viewer" application that receives data from a parent VI via a notifier and displays it for connected browsers.  I'm also scanning some status strings and parsing out relevant information.  I know it's within the web viewer VI because the parent VI hasn't changed and has run for weeks without any issue.  (I only recently added the web viewer)  I am downright paranoid about memory!   I close every reference every time and even use the "in place" structure every time I can.
    Does the VI run for a bit or error out with the memory issue immediately?
    It takes a while; usually an hour or two.
    Please investigate into the original VI so we can continue troubleshooting.  If this is isolated to the executable, it will be a little tougher to debug.  Additionally, if you don't have the original VI, you will need to get it either way so that we can investigate the source of this issue.
    Okay, as I said earlier, I think I've figured it out.  I have a VI that writes to a string indicator by reference.  I had a circular buffer for messages (it used the in place structure, too!) and I was updating the string indicator with the buffer contents.  I'm almost certain that the circular buffer works properly because I've used it before without any issue.  However, I think it had something to do with the manner in which I was updating that string by reference over and over again.  I know, it sounds crazy because I've updated indicators by reference continuously before and had never had an issue.  It's possible that I was also using my circular buffer in a different way than I was before.  I could explain what I did differently to fix the issue, but it would be a couple more paragraphs. (I will if you want!)  For the record, I was definitely closing the reference every time, too.  In any case, I think the issue is solved, but if you're interested in additional information I'll try my best.
    By the way, here's my circular buffer VI.
    Again, Marti, thanks very much for your assistance.
    Regards,
    Jim
    Attachments:
    Circular Buffer (Strings).vi ‏14 KB

  • Initialization block vs constructor

    Dear,
    Inside a class in Java, it is possible to declare a block (between '{ }') and declaring it 'static'. This is a 'initialization block' executed once when the class is loaded = before an object of this class is created.
    But this seems to me very close to the functionality of a class constructor function, except this is runned each time the class is instanciated.
    Can somebody give me good examples illustrating when each of them are needed (separately or together) ?
    Is class loading not occuring at the instanciation time of a class (as constructor execution) ?
    Thanks in advance.

    dcminter wrote:
    The USER_ROLES field can be accessed before the containing class has been instantiated (note that class loading and class instantiation are quite different things). If you put that logic into the constructor, you would get an empty set in those circumstances.Iinstead of using the static initializer block in the containing class
    you can put the initialization into the Set using literals
        public static final Set<String> USER_ROLES = Collections.unmodifiableSet(
            new HashSet<String>(Arrays.asList(new String[]{"USER","OWNER","ADMINISTRATOR"}))
        );or using the instance initializer block of the Set
        public static final Set<String> USER_ROLES = Collections.unmodifiableSet(
            new HashSet<String>(){{
                add("USER");
                add("OWNER");
                add("ADMINISTRATOR");
        );

  • ORA-06502:numeric or value errORA-04088: error during execution of trigger

    I received the following error message while entering a number within the maximum value (i.e. 9,999,999.) allowed in a data entry form which is separate from the base form:
    ORA-06502: PL/SQL: numeric or value error:number precision too large ORA-06512:at "<Owner>.<Trigger>", line 194 ORA-04088: error during execution of trigger "<Owner>.<Trigger>"
    Where <Owner> is the schema name and <Trigger> is the trigger name. The data block of the entry form is based on a database table, and the sum of all values entered (w/ a maximum value of 99,999,999.) is displayed in the base form. A grand total of this sum along w/ other totals on the base form is also displayed w/ a maximum value defined as 999,999,999. I only receive the above error message when the grand total is greater than 99,999,999. If the grand total is less than or equal to 99,999,999, the base form works fine. Why????
    I have verified all the attributes for the database columns and form fields and all seems to be okay, and I am running out of my wits. I am desperately in need of your help in resolving this issue soon because pressure is on...
    Thanks in advance for any/all the help.

    Orchid wrote:
    I received the following error message while entering a number within the maximum value (i.e. 9,999,999.) allowed in a data entry form which is separate from the base form:
    ORA-06502: PL/SQL: numeric or value error:number precision too large ORA-06512:at "<Owner>.<Trigger>", line 194 ORA-04088: error during execution of trigger "<Owner>.<Trigger>"
    Where <Owner> is the schema name and <Trigger> is the trigger name. The data block of the entry form is based on a database table, and the sum of all values entered (w/ a maximum value of 99,999,999.) is displayed in the base form. A grand total of this sum along w/ other totals on the base form is also displayed w/ a maximum value defined as 999,999,999. I only receive the above error message when the grand total is greater than 99,999,999. If the grand total is less than or equal to 99,999,999, the base form works fine. Why????
    I have verified all the attributes for the database columns and form fields and all seems to be okay, and I am running out of my wits. I am desperately in need of your help in resolving this issue soon because pressure is on...
    Thanks in advance for any/all the help.check your associated database column length. It's precision is not able to hold you said value. increase the length by
    ALTER TABLE table_name 
    MODIFY (column_name NUMBER(20) );it's above solution don't work. Then, probably you use variable in the trigger code which hold the vale and it's size is limited. increase it.
    added
    try this
    increase the length of TAB_S_TOT_COST 9 to 18.
    and your problem will solved.
    Hamid
    Edited by: HamidHelal on Feb 13, 2013 10:28 AM

  • Loading initialization block

    I Have 6 initialization block s. my question when ever user is login is all 6 initialization blocks run either sequentially or par alley?
    We are facing some performance problem. (Login user is taking 2 minutes time) . is there any way we can increase performance ?

    Hello User -
    By default, all initialization blocks run in parallel. However, you can set an order if you would like.
    1) In RPD, click "Manage > Variables..."
    2) Click on "Initialization Blocks" to the left
    3) Double click on the block that you would like to run second in your sequence
    4) Click on "Edit Execution Preference"
    5) Click "Add" and choose the initialization block you would like to run BEFORE the current init. block.
    6) Click OK and save
    As far as your performance issues with logging in, do you have any more details? Are you using LDAP? Do you have a lot of users? How powerful are the host machines that house the BI Services?
    I hope this helps, and please award points if you found this useful!
    Regards,
    Jason

Maybe you are looking for

  • Posting here or AskTom about report using xmldb

    Hello, There was a posting here or on the asktom site about using xmldb to build the html for a report in a pl/sql region, I've looked and searched and even asked my buddy google about it and I cannot find the relevant posting if anyone rembers havin

  • Office templates controlled by GPO error

    Hi, we configured our Group Policy to force usage of office templates from specific path (Network). we created shared folder for read to everyone and configuredet policy, its looks working but every time the users try to exit they get popup that ask

  • My ipod 5th generation says " An error occured downloading iOS 7.0" HELPPP

    I'm geting an error that my ipod touch 5th gen cant download the new iOS7! Helllp !!

  • Feet and Inches formula

    Is there an easy formula for converting cell values from Inches to non-decimal Feet & Inches? I can get feet and decimals, but '8.3333' isn't as intuitive for the applications I'm using the spreadsheet for!

  • Unable to choose a file in a package

    Hello everyone I'm developpeing an input interface were the user have to choose a file to import. I can't use the standard package becase i need to make some checks before importation in SSIS. I can't success to send varaible from the modifyPackage i