RE: (forte-users) (Fwd) ODBC & Dynamically Choosing aDatabase Ve ndor

The error you are getting is saying that the data source is not correctly
specified. Make sure the data source(or the name of the ODBC driver you
created) is correctly specified in your code.
ka
-----Original Message-----
From: Duncan Kinnear [mailto:[email protected]]
Sent: Sunday, December 19, 1999 6:26 PM
To: [email protected]
Subject: (forte-users) (Fwd) ODBC & Dynamically Choosing a Database
Vendor
I am trying to dynamically create a DBSession to connect to the
Microsft SQL Server ODBC Driver on a Forte Server Node.
I have tested the ODBC connection on the Local Machine and it works fine.
I have connected to the SQL Server on that machine with a Static
DBSession Object and that works fine.
I have used the same code to create a DBSession to Informix on Unix
and that worked fine.
The error I get is a converted ODBC one:
SYSTEM ERROR: Attempt to load partition named TestWinProject_cl0_Part1
failed.
Class: qqsp_ResourceException
Error #: [1001, 4]
Detected at: qqrt_ForteExecAgent::LoadPartition at 2
Error Time: Mon Dec 20 12:05:37
Distributed method called: qqrt_ForteExecAgentProxy.LoadPartition!7
(object name Unnamed) from partition "Node Manager", (partitionId =
40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11c, taskId =
[40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11c.38]) in application
"System
Manager", pid 250 on node ALLY in environment testenv
Exception occurred (remotely) on partition "Forte_Executor",
(partitionId
= 40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e, taskId =
[40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e.22]) in application
"TestWinProject_cl0", pid 235 on node ALLY in environment TestEnv.
SYSTEM ERROR: Failed to create service object TestDataProject.TestService.
Class: qqsp_ResourceException
Last TOOL statement: method TestServiceMgr.
Error Time: Mon Dec 20 12:05:37
Exception occurred (remotely) on partition "Forte_Executor",
(partitionId
= 40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e, taskId =
[40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e.22]) in application
"TestWinProject_cl0", pid 235 on node ALLY in environment TestEnv.
USER ERROR: (This error was converted)
Failed to connect to database: ForteSQLServer , username: justin .
[Microsoft][ODBC Driver Manager] Data source name not found and no
default
driver specified
Class: qqdb_RemoteAccessException with ReasonCode:
DB_ER_DBMSCONNECTION
DBMS SQLSTATE: IM002
Class: qqsp_ErrorDescriptor
Detected at: qqdb_OdbcVendorInfo::DoSQLConnect at 10
Last TOOL statement: method ServiceMgr.SetDBSession
Error Time: Mon Dec 20 12:05:37
Exception occurred (remotely) on partition "Forte_Executor",
(partitionId
= 40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e, taskId =
[40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e.22]) in application
"TestWinProject_cl0", pid 235 on node ALLY in environment TestEnv.
Versions:
SQL SERVER 6.5
ODBC Driver SQL Server 2.65.0240
ODBC Manager 3.0.28.22
NT 4 sp4
Forte 3.0.J.1
The code I'm using is almost identical to that given in the "Dynamically
Choosing a Database Vendor" section of the "Making a Database
Connection" chapter of the "Accessing Databases" manual.
Any suggestions would be greatly appreciated
Thanks in advance.
Cheers,
Duncan Kinnear,
McCarthy and Associates, Email:
[email protected]
PO Box 764, McLean Towers, Phone: +64 6 834 3360
Shakespeare Road, Napier, New Zealand. Fax: +64 6 834 3369
Providing Integrated Software to the Meat Processing Industry for over 10
years
For the archives, go to: http://lists.sageit.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: [email protected]

Similar Messages

  • (Fwd) ODBC & Dynamically Choosing a DatabaseVendor

    I am trying to dynamically create a DBSession to connect to the
    Microsft SQL Server ODBC Driver on a Forte Server Node.
    I have tested the ODBC connection on the Local Machine and it works fine.
    I have connected to the SQL Server on that machine with a Static
    DBSession Object and that works fine.
    I have used the same code to create a DBSession to Informix on Unix
    and that worked fine.
    The error I get is a converted ODBC one:
    SYSTEM ERROR: Attempt to load partition named TestWinProject_cl0_Part1 failed.
    Class: qqsp_ResourceException
    Error #: [1001, 4]
    Detected at: qqrt_ForteExecAgent::LoadPartition at 2
    Error Time: Mon Dec 20 12:05:37
    Distributed method called: qqrt_ForteExecAgentProxy.LoadPartition!7
    (object name Unnamed) from partition "Node Manager", (partitionId =
    40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11c, taskId =
    [40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11c.38]) in application "System
    Manager", pid 250 on node ALLY in environment testenv
    Exception occurred (remotely) on partition "Forte_Executor", (partitionId
    = 40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e, taskId =
    [40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e.22]) in application
    "TestWinProject_cl0", pid 235 on node ALLY in environment TestEnv.
    SYSTEM ERROR: Failed to create service object TestDataProject.TestService.
    Class: qqsp_ResourceException
    Last TOOL statement: method TestServiceMgr.
    Error Time: Mon Dec 20 12:05:37
    Exception occurred (remotely) on partition "Forte_Executor", (partitionId
    = 40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e, taskId =
    [40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e.22]) in application
    "TestWinProject_cl0", pid 235 on node ALLY in environment TestEnv.
    USER ERROR: (This error was converted)
    Failed to connect to database: ForteSQLServer , username: justin .
    [Microsoft][ODBC Driver Manager] Data source name not found and no default
    driver specified
    Class: qqdb_RemoteAccessException with ReasonCode: DB_ER_DBMSCONNECTION
    DBMS SQLSTATE: IM002
    Class: qqsp_ErrorDescriptor
    Detected at: qqdb_OdbcVendorInfo::DoSQLConnect at 10
    Last TOOL statement: method ServiceMgr.SetDBSession
    Error Time: Mon Dec 20 12:05:37
    Exception occurred (remotely) on partition "Forte_Executor", (partitionId
    = 40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e, taskId =
    [40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e.22]) in application
    "TestWinProject_cl0", pid 235 on node ALLY in environment TestEnv.
    Versions:
    SQL SERVER 6.5
    ODBC Driver SQL Server 2.65.0240
    ODBC Manager 3.0.28.22
    NT 4 sp4
    Forte 3.0.J.1
    The code I'm using is almost identical to that given in the "Dynamically
    Choosing a Database Vendor" section of the "Making a Database
    Connection" chapter of the "Accessing Databases" manual.
    Any suggestions would be greatly appreciated
    Thanks in advance.
    Cheers,
    Duncan Kinnear,
    McCarthy and Associates, Email: [email protected]
    PO Box 764, McLean Towers, Phone: +64 6 834 3360
    Shakespeare Road, Napier, New Zealand. Fax: +64 6 834 3369
    Providing Integrated Software to the Meat Processing Industry for over 10 years

  • Re: (forte-users) Session management for page builder(fwd)

    Jaco,
    Hope this helps,
    John
    John Soper, Information Systems Development, ITS, The University of Melbourne
    email: j.soperits.unimelb.edu.au >>>> Tel: 9344 5612---------- Forwarded message ----------
    Date: Mon, 10 Jan 2000 16:34:31 +1100
    From: Lyle Winton <L.Wintonits.unimelb.edu.au>
    To: John Soper <j.soperits.unimelb.edu.au>
    Subject: Re: (forte-users) Session management for page builder (fwd)
    Why not construct an intermediate page after the
    login page that has SESSION_UNSPECIFIED and
    a refresh META tag. The page can then refresh
    to either the login failed or login succeeded pages
    depending on how the login went! Looks like...
    1) Login page (SESSION_UNSPECIFIED)
    2A) Refresh page (SESSION_UNSPECIFIED)
    < HTML >
    < HEAD >
    < META http-equiv="refresh"
    content="0;URL=<a href=
    "http://www.blah.com/forte.cgi?PageName=3">http://www.blah.com/forte.cgi?PageName=3</a>" >
    < /HEAD >
    < BODY >
    Login succeeded. Please wait...
    < /BODY >
    < /HTML >
    2B) Refresh page (SESSION_UNSPECIFIED)
    < HTML >
    < BODY >
    Login failed.
    < /BODY >
    < /HTML >
    3) We're finally in. (SESSION_REQUIRED)
    I'm not sure if this works on internet exploder.
    Lyle.
    John Soper wrote:
    Lyle,
    (Post from forte mailing group)
    Does this make sense to you?
    John
    John Soper, Information Systems Development, ITS, The University of Melbourne
    email: j.soperits.unimelb.edu.au >>>> Tel: 9344 5612---------- Forwarded message ----------
    Date: Thu, 30 Dec 1999 07:54:24 +0200
    From: "Jaco Erasmus (home)" <jacoerasmweb.co.za>
    To: kamranaminyahoo.com
    Subject: (forte-users) Session management for page builder
    Hi everybody,
    We have a lot of legacy code making use of the page builder service to
    produce web pages. These pages were originally written without session
    management. I'm now busy adding session management to them, but there is
    one problem with this approach and I will appreciate if someone can shed
    some light on it. Here it is:
    Page one is submitted.
    Some validation (authentication) takes place and depending on the outcome,
    either page 2A (SESSION_REQUIRED) or 2B (error page with
    SESSION_UNSPECIFIED) must be displayed. In order to implement this, I
    needed a place to make a decision. The way I've done it, is to pass a
    'virtual page' (SESSION_UNSPECIFIED) to the page builder service. The
    validation is done here and request.PageName is then replaced with the
    PageName of pages 2A or 2B. The HandleRequest() method is then called
    again. The problem is that the ValidateSession() method does not get
    invoked again, thus allowing 2A through without a session. How do I make
    sure that the ValidateSession() method get invoked again?
    The approach making use of templates look to me as if it has all the means
    to do this (redirect tag), but I don't want to rewrite everything if I
    don't have to. Is there a way that a pagebuilder page can be specified by
    the redirect tag? This will definitely help, but so far I've only managed
    to call templates from the redirect tag.
    Is the template approach better suited for session management? It is
    definetely better documented...
    Regards.
    Jaco
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.sageit.com

    Hi,
    i hope this helps
    http://help.sap.com/saphelp_nw70/helpdata/EN/7e/aa610cc1dd8f4388b1df02fc362f0f/frameset.htm
    http://help.sap.com/saphelp_nw70/helpdata/EN/69/c250754ba111d189750000e8322d00/frameset.htm
    regards,
    Anil.

  • RE: (forte-users) dynamic select & maxrowsparameter

    I thing this code should help:
    ** Accepts command string for dynamic query and **
    ** an empty array of BC to which the results **
    ** should be appended. Returns the filled BC **
    ** array. **
    l_dynamicStatement : DBStatementHandle;
    l_inputDescriptor : DBDataSet;
    l_outputDescriptor : DBDataSet;
    l_outputData : DBDataSet;
    l_intStatementType : integer;
    l_intRowType : integer;
    l_intNumRows : integer;
    l_intRowCount : integer = 0;
    l_result : BusinessClass = new;
    BEGIN
    -- Prepare SQL statement for query given command string
    l_dynamicStatement = self.GetDBSession().Prepare(
    commandString = p_strSql,
    inputDataSet = l_inputDescriptor,
    cmdType = l_intStatementType);
    -- Open Cursor
    l_intRowType = GetDBSession().OpenCursor(
    statementHandle = l_dynamicStatement,
    inputDataSet = l_inputDescriptor,
    resultDataSet = l_outputDescriptor);
    -- Fetch first row
    l_intNumrows = GetDBSession().FetchCursor(
    statementHandle = l_dynamicStatement,
    resultDataSet = l_outputData);
    WHILE l_intNumRows > 0 DO -- If prev fetch returned a row
    -- Increment count of rows fetched
    l_intRowCount = l_intRowCount + 1;
    -- Check for excessive number of rows retrieved
    -- Then it checks if you want to throw a exception or
    -- just exit and return the result set.
    IF l_introwCount > p_intMaxRow THEN
    IF p_bThrowExcept THEN
    -- Shut the cursor down and remove prepared
    statement
    GetDBSession().CloseCursor(l_dynamicStatement);
    GetDBSession().RemoveStatement(l_dynamicStatement);
    // Raise exception
    -- Have to put code
    ELSE
    EXIT;
    END IF;
    END IF;
    -- Parse result from DBDataSet to subclass
    -- of BusinessClass
    l_result = parseResult(l_outputData);
    // Add row to array
    p_aryBC.AppendRow(l_result.Clone(deep=TRUE));
    // Fetch next row
    l_intNumrows = GetDBSession().FetchCursor(
    statementHandle = l_dynamicStatement,
    resultDataSet = l_outputData);
    END WHILE;
    -- Shut the cursor down and remove prepared statement
    GetDBSession().CloseCursor(l_dynamicStatement);
    GetDBSession().RemoveStatement(l_dynamicStatement);
    EXCEPTION
    when e: GenericException do
    GetDBSession().CloseCursor(l_dynamicStatement);
    GetDBSession().RemoveStatement(l_dynamicStatement);
    raise e;
    END;
    return p_aryBC;
    ka
    Kamran Amin
    Framework, Inc.
    303 South Broadway
    Tarrytown, NY 10591
    (914) 631-2322x121
    [email protected]
    http://www.frameworkinc.com/
    -----Original Message-----
    From: Matthew Middleton [mailto:[email protected]]
    Sent: Thursday, December 09, 1999 11:15 PM
    To: Will Chris
    Cc: [email protected]
    Subject: RE: (forte-users) dynamic select & maxrows parameter
    Think there's a mis-understanding. The maxrows I refer to is not SQL but a
    forte method parameter as in the following:
    dynStatement = self.DefaultDBSession.Prepare(commandString = sqlStatement
    ,inputDataSet = inputDescriptor
    ,cmdType = commandType);
    rowType = self.DefaultDBSession.Select(statementHandle = dynStatement
    ,inputDataSet = inputDescriptor
    ,resultDataSet = outputDescriptor
    ,maxrows = 100);
    the variable sqlStatement holds the "dynamic" select string.
    If I don't set maxrows I get a runtime error, as mentioned, it is running
    against Oracle.
    At 14:47 10/12/99 +1100, you wrote:
    We use Oracle and Rdb and we have dynamic and non-dynamic SQL. No
    combination of
    these demand a max rows clause.
    For example the following query works on both databases :
    lvLanguageCodesList : Array of LanguageCodes = new();
    begin transaction
    sql select Language_Code LanguageCode,
    Language_Nm LanguageNm,
    System_Control_YN SystemControlYN,
    Other_Language_YN OtherLanguageYN
    into :lvLanguageCodesList
    from SRD_LANGUAGE_CODES
    order by Language_Nm
    on session StudentRegistryDBSession;
    end transaction;
    if lvLanguageCodesList.items = 0 then
    return Nil;
    else
    return lvLanguageCodesList;
    end if;
    Indeed if we wanted to use max rows its a bit of a pain in the bum because
    Oracle and
    Rdb use different syntax to define the row limit. So our dynamic SQL
    'builder class'
    has to detect the database flavour and configure max rows accordingly(where
    we want to use
    it).
    I can only guess that the error you are getting is not assoicated to therow
    limit or is caused because of the database you are using ?
    Regards,
    Chris Will, Sydney, Australia
    -----Original Message-----
    From: Matthew Middleton [mailto:[email protected]]
    Sent: Friday, 10 December 1999 14:33
    To: [email protected]
    Subject: (forte-users) dynamic select & maxrows parameter
    the help for DBSession.Select method says that the maxrows
    parameter is not
    required. Leaving it out does not give a compile error.
    However at runtime
    an error is got saying maxrows must be > 0.
    I am using a method that accepts a where clause as a
    parameter and am not
    really interested in what the number of rows will be.
    Should I be?
    Does anyone have any knowledge they can share on this one.
    Thanks.
    Regards,
    Matthew Middleton Ph: +61 2 9239 4972
    Oryx Software Consultant Fax: +61 2 9239 4900
    Lawpoint Pty. Ltd. E-mail [email protected]
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe,
    send in a new
    email the word: 'Unsubscribe' to: [email protected]
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: [email protected]
    Regards,
    Matthew Middleton Ph: +61 2 9239 4972
    Oryx Software Consultant Fax: +61 2 9239 4900
    Lawpoint Pty. Ltd. E-mail [email protected]
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: [email protected]

    I thing this code should help:
    ** Accepts command string for dynamic query and **
    ** an empty array of BC to which the results **
    ** should be appended. Returns the filled BC **
    ** array. **
    l_dynamicStatement : DBStatementHandle;
    l_inputDescriptor : DBDataSet;
    l_outputDescriptor : DBDataSet;
    l_outputData : DBDataSet;
    l_intStatementType : integer;
    l_intRowType : integer;
    l_intNumRows : integer;
    l_intRowCount : integer = 0;
    l_result : BusinessClass = new;
    BEGIN
    -- Prepare SQL statement for query given command string
    l_dynamicStatement = self.GetDBSession().Prepare(
    commandString = p_strSql,
    inputDataSet = l_inputDescriptor,
    cmdType = l_intStatementType);
    -- Open Cursor
    l_intRowType = GetDBSession().OpenCursor(
    statementHandle = l_dynamicStatement,
    inputDataSet = l_inputDescriptor,
    resultDataSet = l_outputDescriptor);
    -- Fetch first row
    l_intNumrows = GetDBSession().FetchCursor(
    statementHandle = l_dynamicStatement,
    resultDataSet = l_outputData);
    WHILE l_intNumRows > 0 DO -- If prev fetch returned a row
    -- Increment count of rows fetched
    l_intRowCount = l_intRowCount + 1;
    -- Check for excessive number of rows retrieved
    -- Then it checks if you want to throw a exception or
    -- just exit and return the result set.
    IF l_introwCount > p_intMaxRow THEN
    IF p_bThrowExcept THEN
    -- Shut the cursor down and remove prepared
    statement
    GetDBSession().CloseCursor(l_dynamicStatement);
    GetDBSession().RemoveStatement(l_dynamicStatement);
    // Raise exception
    -- Have to put code
    ELSE
    EXIT;
    END IF;
    END IF;
    -- Parse result from DBDataSet to subclass
    -- of BusinessClass
    l_result = parseResult(l_outputData);
    // Add row to array
    p_aryBC.AppendRow(l_result.Clone(deep=TRUE));
    // Fetch next row
    l_intNumrows = GetDBSession().FetchCursor(
    statementHandle = l_dynamicStatement,
    resultDataSet = l_outputData);
    END WHILE;
    -- Shut the cursor down and remove prepared statement
    GetDBSession().CloseCursor(l_dynamicStatement);
    GetDBSession().RemoveStatement(l_dynamicStatement);
    EXCEPTION
    when e: GenericException do
    GetDBSession().CloseCursor(l_dynamicStatement);
    GetDBSession().RemoveStatement(l_dynamicStatement);
    raise e;
    END;
    return p_aryBC;
    ka
    Kamran Amin
    Framework, Inc.
    303 South Broadway
    Tarrytown, NY 10591
    (914) 631-2322x121
    [email protected]
    http://www.frameworkinc.com/
    -----Original Message-----
    From: Matthew Middleton [mailto:[email protected]]
    Sent: Thursday, December 09, 1999 11:15 PM
    To: Will Chris
    Cc: [email protected]
    Subject: RE: (forte-users) dynamic select & maxrows parameter
    Think there's a mis-understanding. The maxrows I refer to is not SQL but a
    forte method parameter as in the following:
    dynStatement = self.DefaultDBSession.Prepare(commandString = sqlStatement
    ,inputDataSet = inputDescriptor
    ,cmdType = commandType);
    rowType = self.DefaultDBSession.Select(statementHandle = dynStatement
    ,inputDataSet = inputDescriptor
    ,resultDataSet = outputDescriptor
    ,maxrows = 100);
    the variable sqlStatement holds the "dynamic" select string.
    If I don't set maxrows I get a runtime error, as mentioned, it is running
    against Oracle.
    At 14:47 10/12/99 +1100, you wrote:
    We use Oracle and Rdb and we have dynamic and non-dynamic SQL. No
    combination of
    these demand a max rows clause.
    For example the following query works on both databases :
    lvLanguageCodesList : Array of LanguageCodes = new();
    begin transaction
    sql select Language_Code LanguageCode,
    Language_Nm LanguageNm,
    System_Control_YN SystemControlYN,
    Other_Language_YN OtherLanguageYN
    into :lvLanguageCodesList
    from SRD_LANGUAGE_CODES
    order by Language_Nm
    on session StudentRegistryDBSession;
    end transaction;
    if lvLanguageCodesList.items = 0 then
    return Nil;
    else
    return lvLanguageCodesList;
    end if;
    Indeed if we wanted to use max rows its a bit of a pain in the bum because
    Oracle and
    Rdb use different syntax to define the row limit. So our dynamic SQL
    'builder class'
    has to detect the database flavour and configure max rows accordingly(where
    we want to use
    it).
    I can only guess that the error you are getting is not assoicated to therow
    limit or is caused because of the database you are using ?
    Regards,
    Chris Will, Sydney, Australia
    -----Original Message-----
    From: Matthew Middleton [mailto:[email protected]]
    Sent: Friday, 10 December 1999 14:33
    To: [email protected]
    Subject: (forte-users) dynamic select & maxrows parameter
    the help for DBSession.Select method says that the maxrows
    parameter is not
    required. Leaving it out does not give a compile error.
    However at runtime
    an error is got saying maxrows must be > 0.
    I am using a method that accepts a where clause as a
    parameter and am not
    really interested in what the number of rows will be.
    Should I be?
    Does anyone have any knowledge they can share on this one.
    Thanks.
    Regards,
    Matthew Middleton Ph: +61 2 9239 4972
    Oryx Software Consultant Fax: +61 2 9239 4900
    Lawpoint Pty. Ltd. E-mail [email protected]
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe,
    send in a new
    email the word: 'Unsubscribe' to: [email protected]
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: [email protected]
    Regards,
    Matthew Middleton Ph: +61 2 9239 4972
    Oryx Software Consultant Fax: +61 2 9239 4900
    Lawpoint Pty. Ltd. E-mail [email protected]
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: [email protected]

  • Fwd: Re: (forte-users) Forte 3M and AIX compiler

    see attached

    Why not this:
    while myText.moveToString(' ') do
    myText.ReplaceRange('-', myText.Offset, myText.Offset+1);
    end while;
    or if you prefer verbosity:
    while myText.moveToString(source=' ') do
    myText.ReplaceRange(source='-', startOffset=myText.Offset,
    endOffset=myText.Offset+1);
    end while;
    -----Original Message-----
    From: FatchJeBAM.com [mailto:FatchJeBAM.com]
    Sent: Wednesday, January 12, 2000 2:51 PM
    To: Troy.Burnsvacationclub.com; kamranaminyahoo.com
    Subject: RE: (forte-users) search and replace within a TextData
    How about this?? May have to play with start/end on ReplaceRange as I
    didn't really test this
    Anybody got a better way??
    -- replace space with underscore
    For x in 1 to myTextdata.LengthToEnd() do
    If myTextData.IsSpace() then
    MyTextdata.ReplaceRange('_'. Startoffset=myTextdata.offset,
    endoffset=myTextdata.offset+1);
    End if;
    MyTextdata.MoveNext;
    End for;
    Jerry Fatcheric
    -----Original Message-----
    From: Burns, Troy [mailto:Troy.Burnsvacationclub.com]
    Sent: Wednesday, January 12, 2000 9:40 AM
    To: kamranaminyahoo.com
    Subject: (forte-users) search and replace within a
    TextData
    Hello all,
    I need to search within a textdata object, replacing all
    occurrances of a
    space
    with another character. Can you give a quick code example
    of how I would do
    this?
    Thanks in advance,
    Troy
    Troy Burns
    Marriott Vacation Club Intl.
    E-mail: troy.burnsvacationclub.com
    Phone: (941) 688-7700 ext. 4408
    For the archives, go to: http://lists.sageit.com/forte-users
    and use
    the login: forte and the password: archive. To unsubscribe,
    send in a new
    email the word: 'Unsubscribe' to:
    forte-users-requestlists.sageit.com
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.sageit.com

  • [Fwd: (forte-users) Sending Fax from forte]

    Tamas Deak
    Lufthansa Systems Hungary
    (forte developer)
    2-6 Mazsa ter, Budapest, 1107, HUNGARY
    (36-1) 4312 973
    [email protected]
    [email protected][email protected]-

    I've never done this but I think MS-MAPI might be a good solution.
    Sure, it's not platform independent, since it will only work on NT,
    but it is fax-gateway independent. MAPI is an interface to several
    messaging systems (mail, RFC's, fax, etc.) regardless of what
    kind of implementation is behind it.
    Pascal Rottier
    STP - MSS Support & Coordination Group
    Philip Morris Europe
    e-mail: [email protected]
    Phone: +49 (0)89-72472530
    +++++++++++++++++++++++++++++++++++
    Origin IT-services
    Desktop Business Solutions Rotterdam
    e-mail: [email protected]
    Phone: +31 (0)10-2428100
    +++++++++++++++++++++++++++++++++++
    /* All generalizations are false! */
    -----Original Message-----
    From: Zulkifli Mohamad [SMTP:[email protected]]
    Sent: Friday, October 08, 1999 3:16 AM
    To: '[email protected]'
    Subject: (forte-users) Sending Fax from forte
    Hi guys,
    Does anyone know how to send a fax from Forte application.
    Any ideas appreciated!
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: [email protected]

  • RE: (forte-users) 3J= 3M new to me error

    Hi Thomas,
    Thanks for your email but I think it will be interesting for Brenda not me.
    It is exactly what I have expected from Forte Support: detailed information
    about bugs and workarounds. But what I cannot understand is that #53398 was
    released without any information about possible reasons for this problem or
    suggested workarounds. My first reaction after reading this bugreport was to
    open a new case at CallCenter to get more information about it. Please
    release more information with your bug reports !
    Regards
    Zenon Adamek
    Information Services
    Senior Programmer Analyst
    Tel: 905 712-1084 ext. 3628
    Fax: 905 712-6709
    E-mail: zadamekpurolator.com
    -----Original Message-----
    From: Thomas Degen - Sun Germany Forte Tools - Bonn
    [SMTP:thomas.degensun.com]
    Sent: Wednesday, September 27, 2000 9:49 AM
    To: Adamek, Zenon
    Cc: 'Brenda Cumming'; Forte-userslists.xpedior.com
    Subject: RE: (forte-users) 3J=>3M new to me error
    Hi Zenon,
    bug #53398 is not a bug which will likely get fixed, it's an informational
    bugreport.
    You might see an errorstack like Brenda has reported (and described in
    informational
    bugreport #53398) probably when you are doing something illegal that is
    possible
    via Forte Tool but Forte is not trapping it for performance reasons. Hence
    you will see
    the error coming from your illegal operation only at runtime, probably
    only
    while
    running interpreted in the Forte IDE, but in worst case it might be even a
    segmentation
    violation.
    Technotes 12448 'Sudden client partition crashes at runtime' and 11225
    'Don't reparent
    mapped Widgets between UserWindows at runtime' explain this matter . See
    attached.
    But maybe Brenda is much more experiencing a problem as described by Forte
    Technote 11398 'Read Only Workspace Errors using ListViews or ActiveX
    control'
    that might get easily resolved via setting of FORTE_YIELD_THROTTLE=0.
    Good Luck and Best Regards !
    BTW: I've logged bug #53398, so I've felt responsible to explain its real
    background.
    Thomas
    Thomas Degen
    Sun Microsystems - Forte Tools
    Forte CTE & Sustaining Group
    Technical Support Germany
    tel.:+49.228/91499-50
    MailTo:thomas.degensun.com
    Technote 11398 Read Only Workspace Errors using ListViews or ActiveX
    control
    SCENARIO:
    Getting some unusual interpreter errors that result in an error stating
    that
    the workspace has been set to read only. Please see Enclosures for the
    two
    most common error stacks that have been encountered. The abbreviated
    versions of the errors are:
    - Can't read record (record size = -1)
    - Id in index does not match id in record header in data file
    - Recursive deserialization attempted.
    - Unknown Mark type in deserialization
    - Could not read record (64,74615) from repository data file.
    Header
    is corrupt.
    These errors can be happening in either the development environment when
    running from one of the development workshops, or with the deployed
    application.
    The bug outlined in this Technote may be the culprit if the errors above
    are
    seen when running a client on Windows NT or Motif and the user interface
    incorporates ActiveX controls or ListView/TreeView widgets.
    CAUSE:
    Basically what is happening is that in rare circumstances Forte may invoke
    a
    nested copy of the interpreter while the first interpreter has yielded.
    This
    is not a problem in and of itself, but in the case where the original
    interpreter was in the middle of a repository fetch when it yielded, and
    the second interpreter needs to fetch code as well, we will get one of the
    errors listed above, depending on the exact timing. The reason for the
    errors is that the repository code at this level is thread-safe but not
    re-entrant. It is protected by a mutex that is already owned by the
    current task. Which, given the scenario outlined here, where the two
    interpreters are running inside of the same task, results in the nested
    interpreter being allowed to change data out from under the first.
    While for every fetch one or more calls to WindowSystem.Yield will be made
    (this is there to prevent the semblance of system lock-up on Win 3.1,
    where
    Yield is the only way other applications can be allowed to run), there is
    a parameter which controls how often to actually yield, which by default
    is
    set to one out of every 100 calls. This is the reason the problem is
    intermittent--you need a yield to occur during a repository fetch
    which starts another interpreter which also needs to fetch code from
    disk.
    The reason this has only surfaced recently is that the nested interpreter
    scenario can only happen in 2 cases that we know of:
    - ActiveX controls which respond to events/Windows messages
    - Outline fields/ListViews with column(s) mapped to virtual
    attributes
    In all other normal cases, the yield can process the message (typically a
    paint message) without starting another interpreter, so regardless of
    whether
    the first interpreter yielded during a repository operation or not, there
    is
    no conflict.
    SOLUTION:
    The workaround is to prevent yields altogether by setting the
    FORTE_YIELD_THROTTLE environment variable equal to 0 in the client's
    environment. This should have no detrimental effects since the yield code
    is in place solely for Windows 3.1x clients.
    ERROR STACK 1
    SYSTEM ERROR: Because of a prior error, your workspace was set to
    read-only to
    prevent the application from attempting to write to the repository. The
    repository and work you have saved to the repository are safe. If your
    workspace
    contains unsaved work, you may use the following procedure to save this
    work.
    First, export the changed components. Then, shut down and restart this
    application and reopen this workspace in read-write mode. Finally, import
    the
    changed components and save your workspace.
    Class: qqrp_RepResourceException
    Error #: [1101, 695]
    Detected at: qqrp_Session::GetObjectById
    Last TOOL statement: method EFWindowController.EFEventLoop
    Error Time: Tue Nov 18 15:58:47
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
    taskId =
    [7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
    "ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
    The remainder of the Error Manager stack is:
    SYSTEM ERROR: Internal Error attempting to deserialize element (64,67470)
    (fetch
    bitmask is 0x20). Your workspace is now read-only to prevent the
    application
    from attempting to write to the repository. The repository and work you
    have
    saved to the repository are safe. If your workspace contains unsaved work,
    you
    may use the following procedure to save this work. First, export the
    changed
    components. Then, shut down and restart this application and reopen this
    workspace in read-write mode. Finally, import the changed components and
    save
    your workspace.
    Class: qqrp_RepResourceException
    Error #: [1101, 61]
    Detected at: qqrp_LogicalSession::MaterializeObject
    Last TOOL statement: method EFTabManagerNew.EFNoteBookHandler
    Error Time: Tue Nov 18 15:58:47
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
    taskId =
    [7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
    "ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
    SYSTEM ERROR: Unknown Mark type in deserialization.
    Class: qqsp_ImplementationException
    Error #: [1101, 34]
    Detected at: qqrp_DeSerializeObject::ProcessHdr
    Error Time: Tue Nov 18 15:58:47
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
    taskId =
    [7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
    "ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
    ERROR STACK 2
    SYSTEM ERROR: A serious error has occurred in Repository
    (c:\PROGRA~1\CSSPTEST\conplu0). Corrective action may be necessary.
    Notify
    your repository administrator.
    Class: qqsp_ImplementationException
    Error #: [1101, 198]
    Detected at: qqrp_Repository::Fetch
    Last TOOL statement: method
    SalesDevelopment_NWC.DEVNotifyofTabSetCurrent
    Error Time: Wed Dec 03 10:27:22
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1,
    taskId =
    [769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1.22]) in application
    "ConPlus_GUI_cl0", pid 172 on node ISD42 in environment Edge.
    SYSTEM ERROR: Could not read record (64,74615) from repository data file.
    Header is corrupt.
    Class: qqsp_ImplementationException
    Error #: [1106, 612]
    Detected at: qqbt_BtreeAccess::FetchDataFileRecord
    Error Time: Wed Dec 03 10:27:22
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1,
    taskId =
    [769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1.22]) in application
    "ConPlus_GUI_cl0", pid 172 on node ISD42 in environment Edge.
    Technote 11225 Don't reparent mapped Widgets between UserWindows at
    runtime
    It is sometimes tempting to unparent a widget from one UserWindow and
    reparent
    it into another at runtime. However, this can cause crashes if the widget
    (or
    its decendants) are "mapped" to data. Here's why...
    Suppose you have two UserWindows, UW1 and UW2. UW1 contains a DataField
    (DF1)
    which is mapped to a TextData. UW2 contains a RadioList (RL2) which is
    mapped to
    a scalar Integer. At compile time, every mapped attribute is internally
    assigned
    a "Map ID" (a small integer) which is used to tie the Widget to its
    corresponding attribute. These Map IDs are used by the Widget to look up a
    pointer to their data in a "Map" which is maintained by the UserWindow.
    Each
    UserWindow is assumed be to independent of the others, so there is nothing
    wrong
    with Widgets in different UserWindows being assigned the same Map IDs.
    In
    this
    case, let's assume that DF1 and RL2 both got assigned the same Map ID of
    3. No
    problem so far, since each lives in a separate UserWindow with a separate
    map.
    Now suppose at runtime the application "detaches" or unparents DF1 from
    its
    UserWindow and reparents it somewhere into UW2. When it comes time for DF1
    to
    paint itself the Display System it must ask the Runtime System for the
    value of
    DF1's mapped attribute. To do that it says "give me the value of the
    TextData
    for DF1. You'll find it in the Map for this UserWindow (UW1), and its Map
    ID is
    3". When the runtime system goes to do this it expects to find a TextData
    in
    this "slot" of the map, but instead it picks up the integer which is
    mapped to
    RL2. At best this leads to bad data being returned; more likely you get a
    segfault and a crash.
    If DF1 was not a mapped attribute (say, a Rectangle) there would be no
    problem
    because there is no data mapped to a Rectangle. If instead of moving DF1
    you
    created a brand new DataField on the fly there would be no problem,
    because the
    dynamic DataField would not have any Map ID and so couldn't conflict with
    any
    IDs in UW2.
    So how do you solve this problem? This is exactly what Nested Windows are
    all
    about. While you can't move DF1 into the middle of UW2, you can nest
    UW1.
    This
    works because UW1 brings its map with it, and when you access DF1 it knows
    to
    look up its value in UW1's map.
    UserWindows are intended to be the "unit of compilabilty" that can be
    nested
    inside other UserWindows. It is dangerous to "transplant" anything from
    inside
    one UserWindow into another at runtime.
    (Note that you can't avoid this problem by cloning DF1 because the MapID
    gets
    copied along with it, and the clone will fail in the same way.)
    Further details explained in related technote 12448 'Sudden client
    partition
    crashes at runtime.'
    Technote 12448 Sudden client partition crashes at runtime
    Scenario : You have two UserWindows, A and B. When Window A starts up, it
    instantiates an instance of B and reparents some component of B into A's
    window
    hierarchy.
    This is not allowed and almost always leads to an error at best or at
    worse a
    segmentation fault.
    Here's why :
    When you compile a UserWindow in Forte, each "mapped attribute" (whether a
    form
    element or menu element) is assigned an internal ID which represents an
    offset into
    that UserWindow's table of mapped attributes. This offset is only valid
    in the
    context of the UserWindow in which it was compiled. If you detach a
    FieldWidget or
    MenuWidget from one compiled Window ("tmpMenu" for example) and then
    parent
    into another compiled window ("tmpWindow") the internal ID comes with it.
    When Forte tries to make use of that copied widget it uses the ID as an
    offset
    into tmpWindow's table of mapped attributes. But that copied offset is
    meaningless in the context of tmpWindow's table, so you get some kind off
    error.
    In this case it found that the data type of the variable in the slot
    wasn't
    what
    was expected. But you might even index off the end of the table and get a
    segmentation fault.
    There is nothing to prevent you from dynamically creating menu items and
    adding
    them to a window at runtime; that will work fine. Although of course you
    can't
    access them via mapped attributes, since those can only be created at
    compile time.
    But you are not allowed to reparent a widget from one compiled UserWindow
    into
    the hierarchy of another.
    More information may be found in technote 11225 'Don't reparent mapped
    Widgets
    between UserWindows at runtime'.
    Possible errorstacks seen at runtime instead of a complete crash or
    segmentation
    violation while you are illegally reparenting a widget or menuitem between
    windows
    at runtime:
    Map::SetSubjectData: Invalid conversion from map type 0 to subject type 22
    SYSTEM ERROR: Bad parameter at location 3 in method
    qqrt_MapClassAccess::ProcessSubjectData.
    Class: qqsp_Exception
    Error #: [1001, 381]
    Detected at: qqrt_MapClassAccess::ProcessSubjectData at 3
    Error Time: Wed Aug 09 13:03:57
    Exception occurred (locally) on partition "testproject_CL0_Client",
    (partitionId = D4914A10-36C1-11D4-91B3-419AA33BAA77:0x208:0xd,
    taskId =
    [D4914A10-36C1-11D4-91B3-419AA33BAA77:0x208:0xd.68]) in application
    "FTLaunch_cl0", pid 672 on node ONEWAY in environment Audi3M2Env.
    At 13:14 26.09.00 -0400, Adamek, Zenon wrote:
    Hi,
    It is the unfixed defect 53398. Please contact Forte support.
    Zenon
    -----Original Message-----
    From: Brenda Cumming [SMTP:brenda_cummingtranscanada.com]
    Sent: Tuesday, September 26, 2000 1:15 PM
    To: Forte User group
    Subject: (forte-users) 3J=>3M new to me error
    Hi,
    We are in the process of going from 3J1 to 3.0.M.2, and I am getting
    this error that I am unfamiliar with on a GUI that works fine in 3J.
    It
    does not happen all the time, and I have been unable to establish the
    pattern that kicks it off. Has anyone seen this before?
    PS- this error is not occurring in the deployed (non-compiled) app,but
    when I am running locally from my workspace.
    SYSTEM ERROR: Bad parameter at location 6 in method
    qqrt_MapClassAccess::ProcessSubjectData.
    Class: qqsp_Exception
    Error #: [1001, 381]
    Detected at: qqrt_MapClassAccess::ProcessSubjectData at 6
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition
    "ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2,
    taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    SYSTEM ERROR: Can't find scope 20070 for a class.
    Class: qqsp_Exception
    Error #: [201, 11]
    Detected at: qqlo_ClassTableLoadScope at 1
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition"ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    SYSTEM ERROR: Because of a prior error, your workspace was set to
    read-only to prevent the application from attempting to write to the repository.
    The repository and work you have saved to the repository are safe. If
    your
    workspace contains unsaved work, you may use the following procedure
    to save this work. First, export the changed components. Then, shut down and
    restart this application and reopen this workspace in read-write mode.
    Finally, import the changed components and save your workspace.
    Class: qqrp_RepResourceException
    Error #: [1101, 695]
    Detected at: qqrp_Session::IsDistributed
    Last TOOL statement: method PPMeasWin.
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition
    "ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    SYSTEM ERROR: Internal Error attempting to deserialize element
    (64,120684) (fetch bitmask is 0x20). Your workspace is now read-onlyto
    prevent
    the application from attempting to write to the repository. The
    repository
    and work you have saved to the repository are safe. If your workspace
    contains unsaved work, you may use the following procedure to savethis
    work.
    First, export the changed components. Then, shut down and restart this
    application and reopen this workspace in read-write mode. Finally, import the
    changed components and save your workspace.
    Class: qqrp_RepResourceException
    Error #: [1101, 61]
    Detected at: qqrp_LogicalSession::MaterializeObject
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition
    "ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    SYSTEM ERROR: Recursive Deserialization attempted, Internal Error!
    Class: qqsp_UsageException with ReasonCode: SP_ER_INVALIDSTATE
    Error #: [301, 231]
    Detected at: qqsp_DeSerializeDriver::Run at 1
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition"ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in anew
    email the word: 'Unsubscribe' to:forte-users-requestlists.xpedior.com
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com

    Hi Thomas,
    Thanks for your email but I think it will be interesting for Brenda not me.
    It is exactly what I have expected from Forte Support: detailed information
    about bugs and workarounds. But what I cannot understand is that #53398 was
    released without any information about possible reasons for this problem or
    suggested workarounds. My first reaction after reading this bugreport was to
    open a new case at CallCenter to get more information about it. Please
    release more information with your bug reports !
    Regards
    Zenon Adamek
    Information Services
    Senior Programmer Analyst
    Tel: 905 712-1084 ext. 3628
    Fax: 905 712-6709
    E-mail: zadamekpurolator.com
    -----Original Message-----
    From: Thomas Degen - Sun Germany Forte Tools - Bonn
    [SMTP:thomas.degensun.com]
    Sent: Wednesday, September 27, 2000 9:49 AM
    To: Adamek, Zenon
    Cc: 'Brenda Cumming'; Forte-userslists.xpedior.com
    Subject: RE: (forte-users) 3J=>3M new to me error
    Hi Zenon,
    bug #53398 is not a bug which will likely get fixed, it's an informational
    bugreport.
    You might see an errorstack like Brenda has reported (and described in
    informational
    bugreport #53398) probably when you are doing something illegal that is
    possible
    via Forte Tool but Forte is not trapping it for performance reasons. Hence
    you will see
    the error coming from your illegal operation only at runtime, probably
    only
    while
    running interpreted in the Forte IDE, but in worst case it might be even a
    segmentation
    violation.
    Technotes 12448 'Sudden client partition crashes at runtime' and 11225
    'Don't reparent
    mapped Widgets between UserWindows at runtime' explain this matter . See
    attached.
    But maybe Brenda is much more experiencing a problem as described by Forte
    Technote 11398 'Read Only Workspace Errors using ListViews or ActiveX
    control'
    that might get easily resolved via setting of FORTE_YIELD_THROTTLE=0.
    Good Luck and Best Regards !
    BTW: I've logged bug #53398, so I've felt responsible to explain its real
    background.
    Thomas
    Thomas Degen
    Sun Microsystems - Forte Tools
    Forte CTE & Sustaining Group
    Technical Support Germany
    tel.:+49.228/91499-50
    MailTo:thomas.degensun.com
    Technote 11398 Read Only Workspace Errors using ListViews or ActiveX
    control
    SCENARIO:
    Getting some unusual interpreter errors that result in an error stating
    that
    the workspace has been set to read only. Please see Enclosures for the
    two
    most common error stacks that have been encountered. The abbreviated
    versions of the errors are:
    - Can't read record (record size = -1)
    - Id in index does not match id in record header in data file
    - Recursive deserialization attempted.
    - Unknown Mark type in deserialization
    - Could not read record (64,74615) from repository data file.
    Header
    is corrupt.
    These errors can be happening in either the development environment when
    running from one of the development workshops, or with the deployed
    application.
    The bug outlined in this Technote may be the culprit if the errors above
    are
    seen when running a client on Windows NT or Motif and the user interface
    incorporates ActiveX controls or ListView/TreeView widgets.
    CAUSE:
    Basically what is happening is that in rare circumstances Forte may invoke
    a
    nested copy of the interpreter while the first interpreter has yielded.
    This
    is not a problem in and of itself, but in the case where the original
    interpreter was in the middle of a repository fetch when it yielded, and
    the second interpreter needs to fetch code as well, we will get one of the
    errors listed above, depending on the exact timing. The reason for the
    errors is that the repository code at this level is thread-safe but not
    re-entrant. It is protected by a mutex that is already owned by the
    current task. Which, given the scenario outlined here, where the two
    interpreters are running inside of the same task, results in the nested
    interpreter being allowed to change data out from under the first.
    While for every fetch one or more calls to WindowSystem.Yield will be made
    (this is there to prevent the semblance of system lock-up on Win 3.1,
    where
    Yield is the only way other applications can be allowed to run), there is
    a parameter which controls how often to actually yield, which by default
    is
    set to one out of every 100 calls. This is the reason the problem is
    intermittent--you need a yield to occur during a repository fetch
    which starts another interpreter which also needs to fetch code from
    disk.
    The reason this has only surfaced recently is that the nested interpreter
    scenario can only happen in 2 cases that we know of:
    - ActiveX controls which respond to events/Windows messages
    - Outline fields/ListViews with column(s) mapped to virtual
    attributes
    In all other normal cases, the yield can process the message (typically a
    paint message) without starting another interpreter, so regardless of
    whether
    the first interpreter yielded during a repository operation or not, there
    is
    no conflict.
    SOLUTION:
    The workaround is to prevent yields altogether by setting the
    FORTE_YIELD_THROTTLE environment variable equal to 0 in the client's
    environment. This should have no detrimental effects since the yield code
    is in place solely for Windows 3.1x clients.
    ERROR STACK 1
    SYSTEM ERROR: Because of a prior error, your workspace was set to
    read-only to
    prevent the application from attempting to write to the repository. The
    repository and work you have saved to the repository are safe. If your
    workspace
    contains unsaved work, you may use the following procedure to save this
    work.
    First, export the changed components. Then, shut down and restart this
    application and reopen this workspace in read-write mode. Finally, import
    the
    changed components and save your workspace.
    Class: qqrp_RepResourceException
    Error #: [1101, 695]
    Detected at: qqrp_Session::GetObjectById
    Last TOOL statement: method EFWindowController.EFEventLoop
    Error Time: Tue Nov 18 15:58:47
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
    taskId =
    [7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
    "ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
    The remainder of the Error Manager stack is:
    SYSTEM ERROR: Internal Error attempting to deserialize element (64,67470)
    (fetch
    bitmask is 0x20). Your workspace is now read-only to prevent the
    application
    from attempting to write to the repository. The repository and work you
    have
    saved to the repository are safe. If your workspace contains unsaved work,
    you
    may use the following procedure to save this work. First, export the
    changed
    components. Then, shut down and restart this application and reopen this
    workspace in read-write mode. Finally, import the changed components and
    save
    your workspace.
    Class: qqrp_RepResourceException
    Error #: [1101, 61]
    Detected at: qqrp_LogicalSession::MaterializeObject
    Last TOOL statement: method EFTabManagerNew.EFNoteBookHandler
    Error Time: Tue Nov 18 15:58:47
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
    taskId =
    [7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
    "ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
    SYSTEM ERROR: Unknown Mark type in deserialization.
    Class: qqsp_ImplementationException
    Error #: [1101, 34]
    Detected at: qqrp_DeSerializeObject::ProcessHdr
    Error Time: Tue Nov 18 15:58:47
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
    taskId =
    [7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
    "ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
    ERROR STACK 2
    SYSTEM ERROR: A serious error has occurred in Repository
    (c:\PROGRA~1\CSSPTEST\conplu0). Corrective action may be necessary.
    Notify
    your repository administrator.
    Class: qqsp_ImplementationException
    Error #: [1101, 198]
    Detected at: qqrp_Repository::Fetch
    Last TOOL statement: method
    SalesDevelopment_NWC.DEVNotifyofTabSetCurrent
    Error Time: Wed Dec 03 10:27:22
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1,
    taskId =
    [769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1.22]) in application
    "ConPlus_GUI_cl0", pid 172 on node ISD42 in environment Edge.
    SYSTEM ERROR: Could not read record (64,74615) from repository data file.
    Header is corrupt.
    Class: qqsp_ImplementationException
    Error #: [1106, 612]
    Detected at: qqbt_BtreeAccess::FetchDataFileRecord
    Error Time: Wed Dec 03 10:27:22
    Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
    (partitionId = 769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1,
    taskId =
    [769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1.22]) in application
    "ConPlus_GUI_cl0", pid 172 on node ISD42 in environment Edge.
    Technote 11225 Don't reparent mapped Widgets between UserWindows at
    runtime
    It is sometimes tempting to unparent a widget from one UserWindow and
    reparent
    it into another at runtime. However, this can cause crashes if the widget
    (or
    its decendants) are "mapped" to data. Here's why...
    Suppose you have two UserWindows, UW1 and UW2. UW1 contains a DataField
    (DF1)
    which is mapped to a TextData. UW2 contains a RadioList (RL2) which is
    mapped to
    a scalar Integer. At compile time, every mapped attribute is internally
    assigned
    a "Map ID" (a small integer) which is used to tie the Widget to its
    corresponding attribute. These Map IDs are used by the Widget to look up a
    pointer to their data in a "Map" which is maintained by the UserWindow.
    Each
    UserWindow is assumed be to independent of the others, so there is nothing
    wrong
    with Widgets in different UserWindows being assigned the same Map IDs.
    In
    this
    case, let's assume that DF1 and RL2 both got assigned the same Map ID of
    3. No
    problem so far, since each lives in a separate UserWindow with a separate
    map.
    Now suppose at runtime the application "detaches" or unparents DF1 from
    its
    UserWindow and reparents it somewhere into UW2. When it comes time for DF1
    to
    paint itself the Display System it must ask the Runtime System for the
    value of
    DF1's mapped attribute. To do that it says "give me the value of the
    TextData
    for DF1. You'll find it in the Map for this UserWindow (UW1), and its Map
    ID is
    3". When the runtime system goes to do this it expects to find a TextData
    in
    this "slot" of the map, but instead it picks up the integer which is
    mapped to
    RL2. At best this leads to bad data being returned; more likely you get a
    segfault and a crash.
    If DF1 was not a mapped attribute (say, a Rectangle) there would be no
    problem
    because there is no data mapped to a Rectangle. If instead of moving DF1
    you
    created a brand new DataField on the fly there would be no problem,
    because the
    dynamic DataField would not have any Map ID and so couldn't conflict with
    any
    IDs in UW2.
    So how do you solve this problem? This is exactly what Nested Windows are
    all
    about. While you can't move DF1 into the middle of UW2, you can nest
    UW1.
    This
    works because UW1 brings its map with it, and when you access DF1 it knows
    to
    look up its value in UW1's map.
    UserWindows are intended to be the "unit of compilabilty" that can be
    nested
    inside other UserWindows. It is dangerous to "transplant" anything from
    inside
    one UserWindow into another at runtime.
    (Note that you can't avoid this problem by cloning DF1 because the MapID
    gets
    copied along with it, and the clone will fail in the same way.)
    Further details explained in related technote 12448 'Sudden client
    partition
    crashes at runtime.'
    Technote 12448 Sudden client partition crashes at runtime
    Scenario : You have two UserWindows, A and B. When Window A starts up, it
    instantiates an instance of B and reparents some component of B into A's
    window
    hierarchy.
    This is not allowed and almost always leads to an error at best or at
    worse a
    segmentation fault.
    Here's why :
    When you compile a UserWindow in Forte, each "mapped attribute" (whether a
    form
    element or menu element) is assigned an internal ID which represents an
    offset into
    that UserWindow's table of mapped attributes. This offset is only valid
    in the
    context of the UserWindow in which it was compiled. If you detach a
    FieldWidget or
    MenuWidget from one compiled Window ("tmpMenu" for example) and then
    parent
    into another compiled window ("tmpWindow") the internal ID comes with it.
    When Forte tries to make use of that copied widget it uses the ID as an
    offset
    into tmpWindow's table of mapped attributes. But that copied offset is
    meaningless in the context of tmpWindow's table, so you get some kind off
    error.
    In this case it found that the data type of the variable in the slot
    wasn't
    what
    was expected. But you might even index off the end of the table and get a
    segmentation fault.
    There is nothing to prevent you from dynamically creating menu items and
    adding
    them to a window at runtime; that will work fine. Although of course you
    can't
    access them via mapped attributes, since those can only be created at
    compile time.
    But you are not allowed to reparent a widget from one compiled UserWindow
    into
    the hierarchy of another.
    More information may be found in technote 11225 'Don't reparent mapped
    Widgets
    between UserWindows at runtime'.
    Possible errorstacks seen at runtime instead of a complete crash or
    segmentation
    violation while you are illegally reparenting a widget or menuitem between
    windows
    at runtime:
    Map::SetSubjectData: Invalid conversion from map type 0 to subject type 22
    SYSTEM ERROR: Bad parameter at location 3 in method
    qqrt_MapClassAccess::ProcessSubjectData.
    Class: qqsp_Exception
    Error #: [1001, 381]
    Detected at: qqrt_MapClassAccess::ProcessSubjectData at 3
    Error Time: Wed Aug 09 13:03:57
    Exception occurred (locally) on partition "testproject_CL0_Client",
    (partitionId = D4914A10-36C1-11D4-91B3-419AA33BAA77:0x208:0xd,
    taskId =
    [D4914A10-36C1-11D4-91B3-419AA33BAA77:0x208:0xd.68]) in application
    "FTLaunch_cl0", pid 672 on node ONEWAY in environment Audi3M2Env.
    At 13:14 26.09.00 -0400, Adamek, Zenon wrote:
    Hi,
    It is the unfixed defect 53398. Please contact Forte support.
    Zenon
    -----Original Message-----
    From: Brenda Cumming [SMTP:brenda_cummingtranscanada.com]
    Sent: Tuesday, September 26, 2000 1:15 PM
    To: Forte User group
    Subject: (forte-users) 3J=>3M new to me error
    Hi,
    We are in the process of going from 3J1 to 3.0.M.2, and I am getting
    this error that I am unfamiliar with on a GUI that works fine in 3J.
    It
    does not happen all the time, and I have been unable to establish the
    pattern that kicks it off. Has anyone seen this before?
    PS- this error is not occurring in the deployed (non-compiled) app,but
    when I am running locally from my workspace.
    SYSTEM ERROR: Bad parameter at location 6 in method
    qqrt_MapClassAccess::ProcessSubjectData.
    Class: qqsp_Exception
    Error #: [1001, 381]
    Detected at: qqrt_MapClassAccess::ProcessSubjectData at 6
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition
    "ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2,
    taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    SYSTEM ERROR: Can't find scope 20070 for a class.
    Class: qqsp_Exception
    Error #: [201, 11]
    Detected at: qqlo_ClassTableLoadScope at 1
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition"ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    SYSTEM ERROR: Because of a prior error, your workspace was set to
    read-only to prevent the application from attempting to write to the repository.
    The repository and work you have saved to the repository are safe. If
    your
    workspace contains unsaved work, you may use the following procedure
    to save this work. First, export the changed components. Then, shut down and
    restart this application and reopen this workspace in read-write mode.
    Finally, import the changed components and save your workspace.
    Class: qqrp_RepResourceException
    Error #: [1101, 695]
    Detected at: qqrp_Session::IsDistributed
    Last TOOL statement: method PPMeasWin.
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition
    "ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    SYSTEM ERROR: Internal Error attempting to deserialize element
    (64,120684) (fetch bitmask is 0x20). Your workspace is now read-onlyto
    prevent
    the application from attempting to write to the repository. The
    repository
    and work you have saved to the repository are safe. If your workspace
    contains unsaved work, you may use the following procedure to savethis
    work.
    First, export the changed components. Then, shut down and restart this
    application and reopen this workspace in read-write mode. Finally, import the
    changed components and save your workspace.
    Class: qqrp_RepResourceException
    Error #: [1101, 61]
    Detected at: qqrp_LogicalSession::MaterializeObject
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition
    "ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    SYSTEM ERROR: Recursive Deserialization attempted, Internal Error!
    Class: qqsp_UsageException with ReasonCode: SP_ER_INVALIDSTATE
    Error #: [301, 231]
    Detected at: qqsp_DeSerializeDriver::Run at 1
    Error Time: Wed Sep 20 14:32:54
    Exception occurred (locally) on partition"ABSDevtStartUp_CL0_Client",
    (partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
    [36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
    application
    "Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in anew
    email the word: 'Unsubscribe' to:forte-users-requestlists.xpedior.com
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com

  • How do I use Derived Table to dynamically choose fact table

    How do I use the Derived Table functionality to dynamically choose a fact table?
    I am using BO XI R2 querying against Genesys Datamart kept in Oracle 10g.  The datamart contains aggregated fact tables at different levels (no_agg, hour, day, week, etc...) I would like to build my universe so that if the end user chooses a parameter to view reports at daily granularity, then the daily fact table is used;  choose hourly granularity, then hourly fact table is used, etc....
    I tried using dynamic SQL in Oracle Syntax, but Business Obljects Universe didn't like that type of coding.
    The tables look something like this:
    O_LOB1_NO_AGG o
    inner join V_LOB1_NO_AGG v on o.object_id = v.object_id
    inner join T_LOB1_NO_AGG t on v.timekey = t.timekey
    Likewise, in the 'hour', 'day', 'week', etc... fact tables, the Primary Key to Foreign Key names and relationships are the same.  And the columns in each O_, V_, T_ fact table is the same, or very similar (just aggregated at different levels of time).
    I was thinking of going a different route and using aggregate aware; but there are many Lines of Business (20+) and multiple time dimensions (7) and I believe aggregate aware would require me to place all relevant tables in the Universe as separate objects, which would create a large Universe with multiple table objects,  and not be maintenance-friendly. I also was going to dynamically choose Line of Business (LOB) in the derived tables, based on the end user choosing a parameter for LOB, but that is out-of-scope for my current question.  But that information sort of points you down the train of thought I am travelling. Thanks for any help you can provide!

    You can create a derived table containing a union like the following:
    select a,b,c from DailyFacts where (@prompt('View'....) = 'Daily' and (<rest of your where conditions here if necessary>)
    union
    (select a,b,c from MonthlyFacts where (@prompt('View'....) = 'Monthly' and (<rest of your where conditions here if necessary>))
    union
    (select a,b,c from YearlyFacts where (@prompt('View'....) = 'Yearly' and (<rest of your where conditions here if necessary>))
    I assume that you are familiar with the @prompt syntax
    Regards,
    Stratos

  • Re: [(forte-users) Need help w/SQL to Informix using anarray in WHERE c

    Bob.
    That syntax isn't know Forte, used Dynamic SQL and coding
    it dynamically. And the SQL statement exceed 255 bytes, divide in 2 or more
    sentences (NameListCity1, NameListCity2, NalmeListCountry1, ...)
    Try with:
    NameListCity = 'city1','city2','city3'...
    NalmeListCountry = 'country1','country2','country3',...
    WHERE
    city in (:NameListCity) and
    country_code in (:NameListCountry)
    Bye.
    "Briggs, Bob" <Bob.Briggsmarriott.com> wrote:
    I'm trying to invoke a query to Informix to select rows that match any of
    the city / country pairs that exist in an array that is passed into the
    method. The SQL itself seems to be OK however it appears that Forte is
    having a problem in parsing the Select statement when it gets to the WHERE
    clause. The resulting exception shows the SQL string formatted properly up
    to the WHERE clause which ends like "WHERE city". Does anyone know of a way
    to make this type of query work in a single invocation? I'm trying not to
    issue multiple queries as would be the case if I used Dynamic SQL and coding
    it dynamically with multiple OR statements is not really an option since the
    overall length of the SQL statement cannot exceed 256 bytes. I have included
    an example of the code below, any insight would be greatly appreciated.
    SQL SELECT address1 tnAddress, city tnCity, state tnState, zipcode
    tnZipcode,
    hotel_code tnHotel_Code, name tnHotelName, product_code
    tnProduct_code, loc_type tnLoc_Type,
    phone tnPhone, country_code tnCountry
    INTO
    :po_aboLocator
    FROM
    Hotel
    WHERE
    city in :pi_aboNickNameList[*].sCityName and
    country_code in :pi_aboNickNameList[*].sCountryCode
    ON SESSION getDBSession();
    Thank you very much,
    Bob
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com

    Bob.
    That syntax isn't know Forte, used Dynamic SQL and coding
    it dynamically. And the SQL statement exceed 255 bytes, divide in 2 or more
    sentences (NameListCity1, NameListCity2, NalmeListCountry1, ...)
    Try with:
    NameListCity = 'city1','city2','city3'...
    NalmeListCountry = 'country1','country2','country3',...
    WHERE
    city in (:NameListCity) and
    country_code in (:NameListCountry)
    Bye.
    "Briggs, Bob" <Bob.Briggsmarriott.com> wrote:
    I'm trying to invoke a query to Informix to select rows that match any of
    the city / country pairs that exist in an array that is passed into the
    method. The SQL itself seems to be OK however it appears that Forte is
    having a problem in parsing the Select statement when it gets to the WHERE
    clause. The resulting exception shows the SQL string formatted properly up
    to the WHERE clause which ends like "WHERE city". Does anyone know of a way
    to make this type of query work in a single invocation? I'm trying not to
    issue multiple queries as would be the case if I used Dynamic SQL and coding
    it dynamically with multiple OR statements is not really an option since the
    overall length of the SQL statement cannot exceed 256 bytes. I have included
    an example of the code below, any insight would be greatly appreciated.
    SQL SELECT address1 tnAddress, city tnCity, state tnState, zipcode
    tnZipcode,
    hotel_code tnHotel_Code, name tnHotelName, product_code
    tnProduct_code, loc_type tnLoc_Type,
    phone tnPhone, country_code tnCountry
    INTO
    :po_aboLocator
    FROM
    Hotel
    WHERE
    city in :pi_aboNickNameList[*].sCityName and
    country_code in :pi_aboNickNameList[*].sCountryCode
    ON SESSION getDBSession();
    Thank you very much,
    Bob
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com

  • RE: (forte-users) Forte ADE

    In addition to this confusion, I'd like to see some statement by Forte to
    indicate
    WHEN the next Forte R4 is scheduled (before the Sun era is was said to be
    Summer 2000) and
    WHAT exactly it will contain (major headings will do).
    With the cancellation of the Forte Forum event doubt and uncertainty are
    spreading in the
    Forte communities that I talk with and no one seems to counterbalance these
    doubts with an
    official statement. How serious does Sun take TOOL Forte for the coming few
    years? Release
    of Fusion V2 seems to say "serious". The deafning silence with regard to R4
    indicates the
    opposite. And the users are divided (as always).
    Theo de Klerk
    Architecture & Application Integration
    Professional Services
    Compaq Computer Corp. - the Netherlands
    -----Original Message-----
    From: Rottier, Pascal [mailto:Rottier.Pascalpmintl.ch]
    Sent: Tuesday, 18 April, 2000 17:49
    To: 'kamranaminyahoo.com'
    Subject: (forte-users) Forte ADE
    A long, long time ago
    In a galaxy far away....
    I saw a demonstration of Forte's new Application Development
    Environment,
    which was more userfriendly than the current one. It also looked more
    similar to the interface of the other development tools out
    there, with a
    tree structure and capabilities to browse through the
    inheritance tree, and
    not opening a new window for every project, class and method that is
    accessed.
    This new interface was supposed to be included in Forte 4, which would
    combine TOOL and Java and would be released soon.
    Since then, we've seen SynerJ and now FJEE, but Forte 4 is still not
    released. And when it will be released, it still won't
    support TOOL and Java
    simultaneously. That's OK. I understand that.
    But now I've heard that this improved ADE won't even be
    included in Forte 4.
    Is this true? And if so, why?
    Pascal
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe,
    send in a new
    email the word: 'Unsubscribe' to:
    forte-users-requestlists.xpedior.com

    You may be interested in the following which comes from a statement of direction
    recently issued by Sun.
    Product Context
    + Fort&eacute; 4GL is an award-winning, proven product with many unique advantages for
    building
    enterprise business systems that are distributed, that involve the integration
    of existing
    business systems as well as new functionality, and that target heterogeneous
    runtime
    environments.
    + Fort&eacute; 4GL is recognized by Gartner Group as the most successful Enterprise
    Application
    Development Tool.
    + Forte 4GL has a substantial customer base that has been successful with the
    product and that
    looks forward to using Fort&eacute; 4GL for new applications.
    + The Sun Microsystems, Inc. (SMI) development tools group (formerly Fort&eacute;
    Software, Inc.)
    has a strong internal commitment to Fort&eacute; 4GL. Fort&eacute; Fusion is written with, and
    is currently
    being enhanced with Fort&eacute; 4GL.
    + SMI has retained the Fort&eacute; field sales organization as an independent unit
    whose primary
    product offerings are Fort&eacute; 4GL and Fort&eacute; Fusion. Continued volume sales of
    Fort&eacute; 4GL
    remain the foundation of our business plan.
    Product Future
    + We intend to actively enhance and promote Fort&eacute; 4GL for the indefinite
    future.
    + We believe Fort&eacute; 4GL will flourish in the long term, especially if we are
    able to harness the
    considerable selling power of the entire SMI field sales organization. To make
    the product
    more attractive and easier to sell, we will continue to make the product more
    modular and
    easier to integrate with heterogeneous software environments.
    + We believe that the best opportunity for attracting new customers is to
    leverage the ability of
    Fort&eacute; 4GL to easily build powerful shared business services (server components)
    that can be
    accessed by non-Fort&eacute; clients (e.g., browsers, Java clients) and that can easily
    integrate with
    new and existing business systems.
    + We believe that Fort&eacute; 4GL?s continued success is enhanced by continuing to
    issue small and
    frequent product releases. Our target is two such releases per year.
    + There is a great potential for our three product lines (Fort&eacute; 4GL, Fort&eacute;
    Fusion, and Fort&eacute; for
    Java) to complement and reinforce each other. Interoperability among the three
    product lines
    is seen as a critical success factor for Fort&eacute; 4GL.
    Forte 4GL Statement of Direction Page 2
    Sun Microsystems, Inc Proprietary and Confidential
    Product Priorities
    1. Interoperability with third party software components
    + External (non-4GL) client support (e.g., browsers, Java clients)
    + External server integration (e.g., messaging, component support, data
    exchange)
    2. Enhanced productivity
    + Increased automation (i.e., less coding)
    + Support for platform updates (e.g., new versions of OS, DBMS)
    3. TOOL code to Java code migration
    4. Unified developer look and feel with other Forte development products
    5. Common repository
    Short Term Product Plans
    Mid-year release
    + New features available as ?preview? per the standard Forte maintenance
    release procedures
    + Tentatively labeled ?release 3.5? and distributed as a free product
    enhancement for
    customers under maintenance
    + Scheduled for Summer 2000
    + Defining features
    + Introspection (reflection) ? the ability for an object to describe itself at
    runtime
    + Improved integration with applications developed using Fort&eacute;-for-Java
    Community
    Edition
    + Platform support improvements to track important operating system and
    database
    vendor activity
    + Target features
    + Display system enhancements (e.g., Motif 2 support, line arrowheads, window
    refresh control, editable outline fields)
    + Dynamic library loading
    + Improved CORBA/IIOP support
    + Improved XML and XSLT class support
    + JMQ support
    New year release
    + New features available as ?preview? per the standard Forte maintenance
    release procedures
    + Tentatively labeled ?release 3.6? and distributed as a free product
    enhancement for
    customers under maintenance
    + Scheduled for year end 2000
    + Defining features
    + Any Release 3.5 target features that were not included in 3.5
    + Generation of EJB interfaces for R3 service objects
    + Platform support improvements to track important operating system and
    database
    vendor activity
    + Target features
    + COBOL record handling as part of the OS390 transaction adaptor
    + Improved runtime security
    + Interface classes for access to Netscape Server 4.0 and possibly other web
    servers
    Long Term Product Plans
    + To be determined by customer and market feedback.
    + A major criterion for new functionality will be enhancing the revenue
    generating ability of
    the product, thereby fostering its long-term health in the marketplace.
    + Substantial emphasis will be placed on creating new capabilities that enhance
    the
    attractiveness of the product for new users.
    + The contents of Release 3.7 (or whatever it will be called) will be
    solidified just after release
    3.5 ships. Subsequent planning visibility will be two forward releases.
    "Klerk, Theo de" <Theo.de.Klerkcompaq.com> on 04/18/2000 12:27:36 PM
    To: "'Rottier, Pascal'" <Rottier.Pascalpmintl.ch>,
    "'kamranaminyahoo.com'" <kamranaminyahoo.com>
    cc: (bcc: Charlie Shell/Bsg/MetLife/US)
    Subject: RE: (forte-users) Forte ADE

  • Re: (forte-users) access violation caught in debugmode

    Eric,
    There has been a problem with Forte debug mode for sometime now when the app
    is silent. If you attempt to inspect the variables when the app is in the
    'silent' mode, i.e., waiting on an event loop for a user input or a system
    event, then you get the "Access violation caught ..." exception message and
    the workspace including the launch server crashes.
    If you are getting this problem in the 'step-through' mode, you should look
    at the lauch server immediately after you get the exception before
    everything disappears. There could be a stack backtrace due to some illegal
    reference. We have faced a similar situation before but the error appeared
    both in the 'debug' and 'run' modes.
    Hope this helps.
    Braja K Chattaraj.
    From: Eric Decossaux <[email protected]>
    To: forte mailing <[email protected]>
    Subject: (forte-users) access violation caught in debug mode
    Date: Thu, 23 Sep 1999 17:31:39 +0200
    Hello,
    I have a problem using Forte in debug mode. If I run my program on my NT
    machine from the partition workshop (distributed run), the program works
    fine except that some object does not display what I'm expecting. So I
    want to use the debug mode to inspect the objets of this window. When I
    choose the "local variables" option to see the content of my window, I
    have a "access violation caught" and forte disappears. If I just let my
    program run without choosing this option, everything is the same than
    with the distributed run.
    Does somebody have an idea what to look for ? I really want to look the
    inside the attributes of this window.
    We recently upgraded from release 30G2 to release 30L2. Could it be the
    problem ?
    Eric Decossaux
    Cliniques Universitaires St Luc
    Informatique des Laboratoires
    av Hippocrate 10 / 1730
    1200 Bruxelles
    +32+2+764 17 53
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: [email protected]

    Eric,
    Another possibility has to do with the repository. You said you recently
    migrated 30G2 to release 30L2.
    Many strange problems have been traced to release migrations with old
    repositories. If the repository was properly migrated another thing you can try
    is to export the project(s) to PEX files, delete them from the repository, and
    then re-import. I know this can be time consuming but I have solved more than
    one unexplained problem in the IDE by doing it.
    ---------------------- Forwarded by Charlie Shell/Bsg/MetLife/US on 09/23/99
    01:19 PM ---------------------------
    "Ajith Kallambella" <[email protected]> on 09/23/99 12:08:54 PM
    To: [email protected], [email protected]
    cc: (bcc: Charlie Shell/Bsg/MetLife/US)
    Subject: Re: (forte-users) access violation caught in debug mode
    Eric,
    Sometimes( 90% ) you can solve this problem by
    checking out the class that is causing the crash
    and force-compiling it.
    If it doesn't help, run through this checklist.
    1. Do you have enough memory resources.?
    2. Is the object you are inspecting held in a lock ?
    ( mutex, transaction lock etc )
    3. Does it work when you wait for sometime at the
    breakpoint before inspecting the values? I mean
    are you interrupting some process thread?
    4. Does it work if you log the attributes using logmgr?
    5. Are you using any call-outs/call-ins? Any external
    systems integration? Sometimes( for reasons beyond
    my comprehension ) the objects allocated outside
    Forte gets corrupted when its passed back and forth.
    6. ...finally...Santa Clause, help me!
    Ajith Kallambella M.
    Forte Systems Consultant.
    From: Eric Decossaux <[email protected]>
    To: forte mailing <[email protected]>
    Subject: (forte-users) access violation caught in debug mode
    Date: Thu, 23 Sep 1999 17:31:39 +0200
    Hello,
    I have a problem using Forte in debug mode. If I run my program on my NT
    machine from the partition workshop (distributed run), the program works
    fine except that some object does not display what I'm expecting. So I
    want to use the debug mode to inspect the objets of this window. When I
    choose the "local variables" option to see the content of my window, I
    have a "access violation caught" and forte disappears. If I just let my
    program run without choosing this option, everything is the same than
    with the distributed run.
    Does somebody have an idea what to look for ? I really want to look the
    inside the attributes of this window.
    We recently upgraded from release 30G2 to release 30L2. Could it be the
    problem ?
    Eric Decossaux
    Cliniques Universitaires St Luc
    Informatique des Laboratoires
    av Hippocrate 10 / 1730
    1200 Bruxelles
    +32+2+764 17 53
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: [email protected]
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: [email protected]

  • RE: (forte-users) Hi All....very urgent...Forte doesn'thandle La rge ar

    Okay, here's my three cents worth,
    Are you using Forte "Keep Alive" settings? If yes, you may simply have a
    time-out.
    While a partition is waiting for a reply from a database, it blocks and
    won't respond
    to anything, including pings to check if it's still alive. So, if the query
    takes longer to
    complete than the time-out period of the communication manager, then you
    will
    loose the connection to the partition.
    -----Original Message-----
    From: Aberdour George [SMTP:george.aberdourdet.nsw.edu.au]
    Sent: Sunday, February 13, 2000 11:39 AM
    To: 'Babu Raj'; kamranaminyahoo.com
    Subject: RE: (forte-users) Hi All....very urgent...Forte doesn't
    handle La rge array properly
    Hi,
    This sounds almost identical to a problem we have experienced.
    If it is the same problem it is because you have compiled a back-end
    load-balanced partition, but NOT the router that manages it.
    With such a configuration, attempts to send greater than a few thousand
    rows
    will fail - and it doesn't seem to matter what you set -fm to.
    You don't see the problem running distributed from your workspace because
    everything is interpreted.
    So just compile the router and try again.
    Hope this helps.
    George Aberdour
    (George.Aberdourdet.nsw.edu.au)
    -----Original Message-----
    From: Babu Raj [mailto:ibcsmartboyyahoo.com]
    Sent: Saturday, 12 February 2000 7:24
    To: kamranaminyahoo.com
    Subject: (forte-users) Hi All....very urgent...Forte doesn't handle
    Large array properly
    Hi All,
    Have anyone experienced problem of retrieving
    more than 1500 records from the database table, into
    the object.
    I use dynamic SQL statement, and populating Array
    object from the DBDataSet. When it runs from my
    workspace distributed, it works fine. But, when I make
    deployment, and install on the test bed, I face
    Network connection failure from the client machine. It
    looks like, server read the data from the Database,
    and while packaging it, to send it across to the
    client, server seems to run out ouf memory or couldn't
    maintain the connection with the client. I tried to
    set -fm flag on that partition, and separately setting
    FORTE_GC_SPECIAL too, but still no luck.
    we have increased, the rollback segment size on
    Oracle too, but still no luck.
    Appreciate, your suggestions, if you can,
    Thank you,
    Babu
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com

    Okay, here's my three cents worth,
    Are you using Forte "Keep Alive" settings? If yes, you may simply have a
    time-out.
    While a partition is waiting for a reply from a database, it blocks and
    won't respond
    to anything, including pings to check if it's still alive. So, if the query
    takes longer to
    complete than the time-out period of the communication manager, then you
    will
    loose the connection to the partition.
    -----Original Message-----
    From: Aberdour George [SMTP:george.aberdourdet.nsw.edu.au]
    Sent: Sunday, February 13, 2000 11:39 AM
    To: 'Babu Raj'; kamranaminyahoo.com
    Subject: RE: (forte-users) Hi All....very urgent...Forte doesn't
    handle La rge array properly
    Hi,
    This sounds almost identical to a problem we have experienced.
    If it is the same problem it is because you have compiled a back-end
    load-balanced partition, but NOT the router that manages it.
    With such a configuration, attempts to send greater than a few thousand
    rows
    will fail - and it doesn't seem to matter what you set -fm to.
    You don't see the problem running distributed from your workspace because
    everything is interpreted.
    So just compile the router and try again.
    Hope this helps.
    George Aberdour
    (George.Aberdourdet.nsw.edu.au)
    -----Original Message-----
    From: Babu Raj [mailto:ibcsmartboyyahoo.com]
    Sent: Saturday, 12 February 2000 7:24
    To: kamranaminyahoo.com
    Subject: (forte-users) Hi All....very urgent...Forte doesn't handle
    Large array properly
    Hi All,
    Have anyone experienced problem of retrieving
    more than 1500 records from the database table, into
    the object.
    I use dynamic SQL statement, and populating Array
    object from the DBDataSet. When it runs from my
    workspace distributed, it works fine. But, when I make
    deployment, and install on the test bed, I face
    Network connection failure from the client machine. It
    looks like, server read the data from the Database,
    and while packaging it, to send it across to the
    client, server seems to run out ouf memory or couldn't
    maintain the connection with the client. I tried to
    set -fm flag on that partition, and separately setting
    FORTE_GC_SPECIAL too, but still no luck.
    we have increased, the rollback segment size on
    Oracle too, but still no luck.
    Appreciate, your suggestions, if you can,
    Thank you,
    Babu
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com

  • Re: (forte-users) Express Question

    Hi,
    I've done it using a dynamic DBSession manager (and dynamic dbsession
    instanciation). But, you need to customize the Express Framework
    (ExpressService.BusinessDBMgr) and modify the select, update, delete, execute
    methods. You need also to maintain the statement cache linked to the DBsession
    and manage the link between a DBsession and a task or use explicit mutex (the
    aim is to have only one task assigned to a DBsession at a time : this should be
    done in the DBSession Manager). If you use Dynamic DBSessions, you will also
    need to add a synchronization to the DBsession Manager.
    If you want to suppress the default DBSession service object, you will need to
    customize the code generation. You should ask the Forte Consulting I think...
    Hope this helps,
    Daniel Nguyen
    Freelance Forte Consultant
    Url : http://perso.club-internet.fr/dnguyen/
    [email protected] a &eacute;crit:
    Has anyone tried replicating the partitions that contain the DBService SOs
    from the Business Model (ie. DBSessions)? We are attempting to do this to
    avoid single-threading access to our database and wondered if anyone had
    done this successfully. Thanks for your help.
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: [email protected]

    Hi,
    I've done it using a dynamic DBSession manager (and dynamic dbsession
    instanciation). But, you need to customize the Express Framework
    (ExpressService.BusinessDBMgr) and modify the select, update, delete, execute
    methods. You need also to maintain the statement cache linked to the DBsession
    and manage the link between a DBsession and a task or use explicit mutex (the
    aim is to have only one task assigned to a DBsession at a time : this should be
    done in the DBSession Manager). If you use Dynamic DBSessions, you will also
    need to add a synchronization to the DBsession Manager.
    If you want to suppress the default DBSession service object, you will need to
    customize the code generation. You should ask the Forte Consulting I think...
    Hope this helps,
    Daniel Nguyen
    Freelance Forte Consultant
    Url : http://perso.club-internet.fr/dnguyen/
    [email protected] a &eacute;crit:
    Has anyone tried replicating the partitions that contain the DBService SOs
    from the Business Model (ie. DBSessions)? We are attempting to do this to
    avoid single-threading access to our database and wondered if anyone had
    done this successfully. Thanks for your help.
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: [email protected]

  • RE: (forte-users) Node Installed Libraries

    If you use Forte, the solution is to patch compcomp, or add a 'post-distrib'
    script.
    compcomp:
    replace the -L/path/file by -L/path -l:file
    Add -Wl,+s in link command
    post-distrib:
    # Enable SHLIB_PATH
    for all binaries,
    chatr +s enable $bin
    done
    # Enable dyunamic libs for all static
    Libs=$(cahtr $bin | grep ^static)
    for aLib in $Libs ; do
    chatr $bin +s enable -l $aLib
    done
    cheers
    j-paul
    -----Message d'origine-----
    De: kelsey.petrychynsasktel.sk.ca
    [mailto:kelsey.petrychynsasktel.sk.ca]
    Date: lundi 18 septembre 2000 18:36
    &Agrave;: David McPaul; Rottier.Pascalpmintl.ch
    Cc: forte-userslists.xpedior.com
    Objet: RE: (forte-users) Node Installed Libraries
    Libraries have been a sore point with us too....
    When we build something that uses a user created or third party
    library the
    explicit directory path is hard-coded into the build.
    So when you deploy the application to a different machine there
    is much grief
    because the build can't find the library.
    We got around this by "fooling" the build. We used directory
    creation and soft
    links in Unix so that the library appears to be in the same
    directory on both machines.
    I think this is called Static vs. Dynamic Libraries. We've talked
    to Forte last
    year about this and they indicated that this will be a
    future enhancement. Don't hold your breath though.....
    David McPaul <dmcpaullumley.com.au> on 09/17/2000 07:14:13 PM
    To: "'Rottier, Pascal'" <Rottier.Pascalpmintl.ch>, "'Forte Users'"
    <forte-userslists.xpedior.com>
    cc: (bcc: Kelsey Petrychyn/SaskTel/CA)
    Subject: RE: (forte-users) Node Installed Libraries
    Hi,
    We build here against a standard environment (1 NT server, 1 NT
    modal node, 1 95 modal node)
    I have noticed that forte is very picky about where it deploys
    compiled partitions (and thus libraries). Basically if you
    didn't make your
    distribution against the environment you are installing on then
    the compiled
    partitions don't install and you will need to reconfigure the
    application by
    moving your partitions and libraries to the nodes that they should be.
    Now I expected that would be the case between different
    architectures (UNIX/NT) but I think forte expects you to compile against
    each machine you want to install on.
    Not much help I know.
    Cheers
    David
    -----Original Message-----
    From: Rottier, Pascal [mailto:Rottier.Pascalpmintl.ch]
    Sent: Saturday, September 16, 2000 12:59 AM
    To: 'Forte Users'
    Subject: (forte-users) Node Installed Libraries
    Hi guys,
    When you deploy a library using Forte, if automatically updates the
    "Installed Libraries" list of the target node. However, not always. My
    question is, why? What property determines if a library should appear in
    this list or not. Of course, you can always add or remove it manually. But
    why doesn't it work the same automatically for all libraries.
    Pascal Rottier
    Origin Nederland (BAS/West End User Computing)
    Tel. +31 (0)10-2661223
    Fax. +31 (0)10-2661199
    E-mail: Pascal.Rottiernl.origin-it.com
    ++++++++++++++++++++++++++++
    Philip Morris (Afd. MIS)
    Tel. +31 (0)164-295149
    Fax. +31 (0)164-294444
    E-mail: Rottier.Pascalpmintl.ch
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com
    ******This
    e-mail is intended for the use of the individual or entity named
    above and may
    contain information that is confidential and privileged. If you
    are not the
    intended recipient, you are hereby notified that any
    dissemination, distribution
    or copying of this e-mail is strictly prohibited. If you have
    received this
    e-mail in error, please notify us immediately at
    helpdesklumley.com.au and
    destroy the original message. While this mail and any
    attachments have been
    scanned for common computer viruses and found to be virus free,
    we recommend you
    also perform your own virus checking processes before opening any
    attachments.
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com

    If you use Forte, the solution is to patch compcomp, or add a 'post-distrib'
    script.
    compcomp:
    replace the -L/path/file by -L/path -l:file
    Add -Wl,+s in link command
    post-distrib:
    # Enable SHLIB_PATH
    for all binaries,
    chatr +s enable $bin
    done
    # Enable dyunamic libs for all static
    Libs=$(cahtr $bin | grep ^static)
    for aLib in $Libs ; do
    chatr $bin +s enable -l $aLib
    done
    cheers
    j-paul
    -----Message d'origine-----
    De: kelsey.petrychynsasktel.sk.ca
    [mailto:kelsey.petrychynsasktel.sk.ca]
    Date: lundi 18 septembre 2000 18:36
    &Agrave;: David McPaul; Rottier.Pascalpmintl.ch
    Cc: forte-userslists.xpedior.com
    Objet: RE: (forte-users) Node Installed Libraries
    Libraries have been a sore point with us too....
    When we build something that uses a user created or third party
    library the
    explicit directory path is hard-coded into the build.
    So when you deploy the application to a different machine there
    is much grief
    because the build can't find the library.
    We got around this by "fooling" the build. We used directory
    creation and soft
    links in Unix so that the library appears to be in the same
    directory on both machines.
    I think this is called Static vs. Dynamic Libraries. We've talked
    to Forte last
    year about this and they indicated that this will be a
    future enhancement. Don't hold your breath though.....
    David McPaul <dmcpaullumley.com.au> on 09/17/2000 07:14:13 PM
    To: "'Rottier, Pascal'" <Rottier.Pascalpmintl.ch>, "'Forte Users'"
    <forte-userslists.xpedior.com>
    cc: (bcc: Kelsey Petrychyn/SaskTel/CA)
    Subject: RE: (forte-users) Node Installed Libraries
    Hi,
    We build here against a standard environment (1 NT server, 1 NT
    modal node, 1 95 modal node)
    I have noticed that forte is very picky about where it deploys
    compiled partitions (and thus libraries). Basically if you
    didn't make your
    distribution against the environment you are installing on then
    the compiled
    partitions don't install and you will need to reconfigure the
    application by
    moving your partitions and libraries to the nodes that they should be.
    Now I expected that would be the case between different
    architectures (UNIX/NT) but I think forte expects you to compile against
    each machine you want to install on.
    Not much help I know.
    Cheers
    David
    -----Original Message-----
    From: Rottier, Pascal [mailto:Rottier.Pascalpmintl.ch]
    Sent: Saturday, September 16, 2000 12:59 AM
    To: 'Forte Users'
    Subject: (forte-users) Node Installed Libraries
    Hi guys,
    When you deploy a library using Forte, if automatically updates the
    "Installed Libraries" list of the target node. However, not always. My
    question is, why? What property determines if a library should appear in
    this list or not. Of course, you can always add or remove it manually. But
    why doesn't it work the same automatically for all libraries.
    Pascal Rottier
    Origin Nederland (BAS/West End User Computing)
    Tel. +31 (0)10-2661223
    Fax. +31 (0)10-2661199
    E-mail: Pascal.Rottiernl.origin-it.com
    ++++++++++++++++++++++++++++
    Philip Morris (Afd. MIS)
    Tel. +31 (0)164-295149
    Fax. +31 (0)164-294444
    E-mail: Rottier.Pascalpmintl.ch
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com
    ******This
    e-mail is intended for the use of the individual or entity named
    above and may
    contain information that is confidential and privileged. If you
    are not the
    intended recipient, you are hereby notified that any
    dissemination, distribution
    or copying of this e-mail is strictly prohibited. If you have
    received this
    e-mail in error, please notify us immediately at
    helpdesklumley.com.au and
    destroy the original message. While this mail and any
    attachments have been
    scanned for common computer viruses and found to be virus free,
    we recommend you
    also perform your own virus checking processes before opening any
    attachments.
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com

  • RE: (forte-users) SQL Array Insert

    Unfortunately that carries a tremendous overhead. Each request is a seperate
    message and forte generates alot of behind the scenes prepares for the sql.
    ---------------------- Forwarded by Amos G. Radford on 10/27/2000 02:34 PM
    "Amin, Kamran" <kamran.aminlendware.com> on 10/27/2000 02:33:07 PM
    To: Amos G. RadfordBankofAmerica
    cc:
    Class: Internal Use Only
    Subject: RE: (forte-users) SQL Array Insert
    User a for loop and call update for each row in the array.
    For Loop
    Update
    set
    1=test[1]
    end for
    ka
    -----Original Message-----
    From: Amos.G.Radfordbankofamerica.com
    [mailto:Amos.G.Radfordbankofamerica.com]
    Sent: Friday, October 27, 2000 12:07 PM
    To: forte-userslists.xpedior.com
    Subject: (forte-users) SQL Array Insert
    I have run into a strange problem that I never really run into
    before. If I want to save an array of items into a table in TOOL
    SQL, how can I do it if the column names in the table are different
    than the column names in the class. In the past we always had
    the luxury of the column names being the same.
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com

    Madhu,
    Do the following:
    1. create prepare statement
    e.g
    stmHnd : DBStatementHandle;
    inputData : DBDataset = new;
    stmType : integer;
    stmHnd = DBSesObj.prepare('insert into
    table_name myCOl1, myCol2, myCol3
    values(:myCol1Value, :myCol2Value, :myCol3Value)',
    inputData,stmType);
    2. Populate the input DBDataset.
    e.g
    // assign the maximum value
    inputData = myArrObj.items;
    // assign the values
    for i in 1 to myArrObj.items do
    inputdata.currentRow = i;
    inputdata.setvalue(':myCol1Value',
    myArrObj.attr1);
    inputdata.setvalue(':myCol2Value',
    myArrObj[i].attr2);
    inputdata.setvalue(':myCol3Value',
    myArrObj[i].attr3);
    end for;
    3. execute the statement:
    e.g .
    DBSesObj.execute(stmHnd, inputData);
    4. release the handle
    DBSesObj.RemoveStatement(stmHnd);
    Hope this helps,
    Babu
    --- "Epari, Madhusudhan" <meparioxhp.com> wrote:
    Babu,
    I'm not clear on how dynamic sql statement would
    access the database only
    one time for inserting an array of records in to the
    table. Could you tell
    how's it done?
    thanks in advance,
    Madhu
    -----Original Message-----
    From: Babu Raj [mailto:ibcsmartboyyahoo.com]
    Sent: Friday, October 27, 2000 8:02 PM
    To: Amos.G.Radfordbankofamerica.com;
    forte-userslists.xpedior.com
    Subject: RE: (forte-users) SQL Array Insert
    Amos,
    Why don't you use, Dyanmic SQL statement,
    where
    you need to prepare only one SQL Statement, and
    populate input place holder, which is much simpler
    and
    you need to access the database only one time(which
    is
    efficient operation). This is useful, especially,
    when
    you want to update. But for your inforamtion, Forte
    internally inserts, one by one row, even if u call
    Static SQl statement, with array of record. Os its
    advisable to use Dyanmic SQL statement.
    Hope this helps,
    Babu
    --- Amos.G.Radfordbankofamerica.com wrote:
    Unfortunately that carries a tremendous overhead.
    Each request is a seperate
    message and forte generates alot of behind the
    scenes prepares for the sql.
    ---------------------- Forwarded by Amos G.Radford
    on 10/27/2000 02:34 PM
    "Amin, Kamran" <kamran.aminlendware.com> on
    10/27/2000 02:33:07 PM
    To: Amos G. RadfordBankofAmerica
    cc:
    Class: Internal Use Only
    Subject: RE: (forte-users) SQL Array Insert
    User a for loop and call update for each row inthe
    array.
    For Loop
    Update
    set
    1=test[1]
    end for
    ka
    -----Original Message-----
    From: Amos.G.Radfordbankofamerica.com
    [mailto:Amos.G.Radfordbankofamerica.com]
    Sent: Friday, October 27, 2000 12:07 PM
    To: forte-userslists.xpedior.com
    Subject: (forte-users) SQL Array Insert
    I have run into a strange problem that I never
    really run into
    before. If I want to save an array of items intoa
    table in TOOL
    SQL, how can I do it if the column names in the
    table are different
    than the column names in the class. In the pastwe
    always had
    the luxury of the column names being the same.
    For the archives, go to:
    http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To
    unsubscribe, send in a new
    email the word: 'Unsubscribe' to:
    forte-users-requestlists.xpedior.com
    For the archives, go to:
    http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To
    unsubscribe, send in a new
    email the word: 'Unsubscribe' to:
    forte-users-requestlists.xpedior.com
    For the archives, go to:
    http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To
    unsubscribe, send in a new
    email the word: 'Unsubscribe' to:forte-users-requestlists.xpedior.com

Maybe you are looking for

  • "Your airport device does not have a valid IP address"

    Hello, Hoping someone can be kind enough to help here, please let me know if I haven't provided enough details or in the wrong format as I'm not hugely technical. I have recently bought an Airport Express to connect to my existing Wi-Fi network. I ha

  • How to save an excel file as CSV with semi-colon as data separator?

    We are creating a flat data file to load the flat file data to our BW system with Excel.  When we save the file, there are three kinds of CSV types for selecting from the "Save as type" list box: CSV (Comma delimited) CSV (Macintosh) CSV (MS-DOS) The

  • Importing from iPhoto to aperture results in having 2 of the same pictures?

    When I import my RAW photos from iPhoto 09' to my aperture library, I get two same photos that are stacked together. One is of a JPEG of my RAW (probably created my iPhoto) and the other is my original RAW file. How do I solve this problem? I just wa

  • Oracle Access Manager + AS Guard?

    Hello, I need to deploy an HA solution for Oracle Access and Identity Manager. I want to use Application Server Guard, but since the Access Manager components (WebGate, WebPass, IdM server, etc...) are installed outside of ORA_HOME, will A/S Guard st

  • 10.6.4 Graphics update & 10.6.5?

    Hi...I got Snow Leopard today because there are some games on Steam I wanted to play but the specific ones I want require 10.6.4 & the 10.6.4 Graphics update in order to play them...so I got home & installed SL 10.6.3 from the disc and then did an up