Compilation errors with store procedure
Hi guys, I just started SQL so forgive me if I ask any real stupid questions. This is the problem I have right now as said in my title.
This is my procedure.sql
CREATE OR REPLACE PROCEDURE verify IS
no_of_duplicates NUMBER:=0;
BEGIN
SELECT COUNT(*) INTO no_of_duplicates
FROM EMPLOYEE
WHERE E# =
(sELECT E# FROM DRIVER
WHERE EXISTS
(SELECT E# FROM MECHANIC
WHERE DRIVER.L# = MECHANIC.L#));
IF no_of_duplicates:=0 THEN dbms_output.put_line('OK');
ELSE
SELECT E#,NAME FROM EMPLOYEE
WHERE E# =
(SELECT E# FROM DRIVER
WHERE EXISTS
(SELECT E# FROM MECHANIC
WHERE DRIVER.L# = MECHANIC.L#));
END IF;
END verify;
While trying to create the procedure, it gives me the compilation errors. I have been stuck with this for hours and can't seem to find anything wrong with it. Can anyone point me in the right direction? Thanks!
Hi,
Once again, post your code. The error occurs when you call the procedure, but you haven't posted the code that calls the procedure and causes the error.
When I do this in SQL*Plus:
SET SERVEROUTPUT ON FORMAT WRAPPED
EXEC verify;
The procedure you posted runs perfectly (that is, is displays the e# only, exactly as it was designed to do).
One way to display both the e# and the name is to BULK COLLECT both the e# and name into separate collections, like this:
CREATE OR REPLACE PROCEDURE verify IS
TYPE e#_table IS TABLE OF employee.e#%TYPE;
e#_list e#_table;
TYPE name_table IS TABLE OF employee.name%TYPE;
name_list name_table;
BEGIN
SELECT e#, name
BULK COLLECT INTO e#_list, name_list
FROM employee
WHERE e# IN (
SELECT d.e#
FROM driver d
JOIN mechanic m ON d.e# = m.e#
IF e#_list.COUNT = 0
THEN
dbms_output.put_line ('OK, there are no illict duplications');
ELSE -- that is, e#_list.COUNT <> 0
dbms_output.put_line ('The following employees are both drivers and mechanics:');
FOR j IN 1..e#_list.COUNT LOOP -- i in parentheses sometimes displays wrong on the OTN site
dbms_output.put ( TO_CHAR ( e#_list (j)
, '999999999999'
dbms_output.put (' ');
dbms_output.put_line (name_list (j));
END LOOP;
END IF;
END verify;
SHOW ERRORS
Here's the output I get when I run the procedure above with your sample data:
The following employees are both drivers and mechanics:
1 John Smith
You'll notice I made several other changes in your code, sometimes because they are clearly better practices, and sometimes just to show you different ways to do the same thing, which you may or may not want to use in this problem.
For example, you were doing the same query (with only very slight differences) 2 times: once to get no_of_duplicates, and then a second time to get the actual data. I don't know if that's the most efficient way to do what you need. Say there are 1000 rows in the result set. You'll fetch all 1000 once just to get the total number, (which you don't need, if all you care about at this point is if there are any), and then to get the data. When you do a BULK COLLECT, you automatically get the COUNT anyway, so why not do the BULK COLLECT first, then use that COUNT to see what you have to do next. If the COUNT is more than 0, then you've already got the data, and you don't need to fetch it again. Also, repeating (essentially) the same code is a maintenance problem. If you ever need to make a change, you need to make the same change in multiple places. At best, that's a pain; but this is the exactly the kind of mistake that is easy to miss in in testing, and you might have code running for weeks in Production before you notice that sometimes it's giving the wrong results.
Another example: e# is a NUMBER. While it is possible to convert NUMBERs into VARCHAR2s, and then store those VARCHAR2s in a VARCHAR2 collecction, wouldn't it make more sense just to store them in a NUMBER collection?
Similar Messages
-
Compilation error while creating procedure
Hi,
I am getting compilation error while creating procedure
CREATE OR REPLACE My_CHANGEDATE IS
error_string VARCHAR2(400) := NULL;
BEGIN
Create table set_temp as select * from set;
CURSOR c1 is
SELECT a.SETNUM, b.CHANGEDATE from
set a, setsp_t2 b
where a.setnum = b.setnum
and trunc(a.changedate) < trunc(b.CHANGEDATE);
BEGIN
FOR rec IN c1 LOOP
UPDATE set SET changedate = rec.changedate
WHERE setnum = rec.setnum;
Insert into set_temp select * from set where setnum = rec.setnum;
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
error_string := 'My_CHANGEDATE - '||SUBSTR(SQLERRM,1,350);
DBMS_OUTPUT.PUT_LINE(error_string);
RAISE;
END My_CHANGEDATE;I have taken your code and cleaned it up to be more readable. Please see the comments in the code.
CREATE OR REPLACE My_CHANGEDATE
IS
error_string VARCHAR2(400) := NULL;
BEGIN
/* The only way to issue DDL in a procedure is to either user
* DBMS_SQL or EXECUTE IMMEDIATE. Creating objects is generally
* not needed or recommended in frequently run code.
Create table set_temp as select * from set;
/* The cursor declarations need to go in the declaration section of the
* procedure (between IS .. BEGIN).
CURSOR c1 is
SELECT a.SETNUM, b.CHANGEDATE from
set a, setsp_t2 b
where a.setnum = b.setnum
and trunc(a.changedate) < trunc(b.CHANGEDATE);
BEGIN /* Where is the END that goes with this begin? */
/* Single record processing is generally not recommended. It is considered a "slow-by-slow" method. */
FOR rec IN c1 LOOP
UPDATE set SET changedate = rec.changedate
WHERE setnum = rec.setnum;
Insert into set_temp select * from set where setnum = rec.setnum;
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
error_string := 'My_CHANGEDATE - '||SUBSTR(SQLERRM,1,350);
DBMS_OUTPUT.PUT_LINE(error_string);
RAISE;
END My_CHANGEDATE;My general recommendations are as follows:
1. Remove the CREATE TABLE from the procedure altogether.
2. Don't use reserved words for object names (e.g. SET)
3. Remove the record by record processing and consolidate it to a single UDPATE statement as follows (note untested):
UPDATE set s
SET changedate = (
SELECT CHANGEDATE
FROM SET A
, SETSO_T2 B
WHERE A.SETNUM = B.SETNUM
AND S.SETNUM = A.SETNUM
AND TRUNC(A.CHANGEDATE) < TRUNC(B.CHANGEDATE)
WHERE EXISTS(
SELECT NULL
FROM SET A
WHERE A.SETNUM = S.SETNUM
)HTH! -
Error with stored procedure block datasource
Hi all,
I tried to base a datablock on a stored procedure in order to get better runtime performance. I work with Forms Builder 6i with patch 17 , and our database is oracle 8.1.7.1.4
But when compiling I got errors.
Here are what I did :
create or replace type TSourceObject as object(name varchar2(30), propname varchar2(200));
create or replace type TSourceTable is table of TSourceObject;
create or replace procedure p_query_ntwk_chnl_mirror(p_tab IN OUT NOCOPY TSourceTable, p_action varchar2, p_lien number)
is
begin
if p_action = 'VISU' then
select TSourceObject(B.bdw_name, P.prop_bdw_name)
bulk collect into p_tab
from T_NETWORK_CHANNEL N, t_bdw_mw B, t_prop_bdw_mw P
where B.comp_bdw = P.comp_bdw and P.comp_prop_bdw = N.comp_prop_bdw
and EXISTS (SELECT 1
FROM t_channel_element C
WHERE N.comp_network_channel = C.comp_network_channel and comp_lien = p_lien);
else
select TSourceObject(B.bdw_name, P.prop_bdw_name)
bulk collect into p_tab
from T_NETWORK_CHANNEL N, t_bdw_mw B, t_prop_bdw_mw P
where B.comp_bdw = P.comp_bdw and P.comp_prop_bdw = N.comp_prop_bdw;
end if;
end;
Then I created the datablock with the wizard , I entered correctly the value of the arguments for the table type name, the argument p_action and the argument p_lien.
And when compiling there was this alert error :
Compiling QUERY-PROCEDURE trigger on NETWORK_CHANNEL_MIRROR data block...
Compilation error on QUERY-PROCEDURE trigger on NETWORK_CHANNEL_MIRROR data block:
PL/SQL ERROR 960 at line 5, column 9
RPCs cannot use variables with schema level user-defined types in this release
PL/SQL ERROR 0 at line 5, column 9
Item ignored
PL/SQL ERROR 320 at line 7, column 26
the declaration of the type of this expression is incomplete or malformed
PL/SQL ERROR 0 at line 7, column 1
Statement ignored
PL/SQL ERROR 320 at line 8, column 28
the declaration of the type of this expression is incomplete or malformed
PL/SQL ERROR 0 at line 8, column 1
Statement ignored
Compilation errors have occurred.
So what should I do ?
Thank you very much indeed.I create the package , and when creating the body then there was an error.
Here is the package :
create or replace package pkg_query_ntwrk_chnl_mirror
is
type TSourceObject is record(name varchar2(30), propname varchar2(200));
type TSourceTable is table of TSourceObject index by binary_integer;
procedure p_query_ntwk_chnl_mirror(p_tab IN OUT NOCOPY pkg_query_ntwrk_chnl_mirror.TSourceTable, p_action varchar2, p_lien number);
end;
create or replace package body pkg_query_ntwrk_chnl_mirror
is
procedure p_query_ntwk_chnl_mirror(p_tab IN OUT NOCOPY pkg_query_ntwrk_chnl_mirror.TSourceTable, p_action varchar2, p_lien number)
is
begin
if p_action = 'VISU' then
select B.bdw_name, P.prop_bdw_name
bulk collect into p_tab
from T_NETWORK_CHANNEL N, t_bdw_mw B, t_prop_bdw_mw P
where B.comp_bdw = P.comp_bdw and P.comp_prop_bdw = N.comp_prop_bdw
and EXISTS (SELECT 1
FROM t_channel_element C
WHERE N.comp_network_channel = C.comp_network_channel and comp_lien = p_lien);
else
select B.bdw_name, P.prop_bdw_name
bulk collect into p_tab
from T_NETWORK_CHANNEL N, t_bdw_mw B, t_prop_bdw_mw P
where B.comp_bdw = P.comp_bdw and P.comp_prop_bdw = N.comp_prop_bdw;
end if;
end;
end;
And here is the error :
7/2 PL/SQL: SQL Statement ignored
8/20 PLS-00597: expression 'P_TAB' in the INTO list is of wrong type
15/2 PL/SQL: SQL Statement ignored
16/20 PLS-00597: expression 'P_TAB' in the INTO list is of wrong type
And what is the problem here ? I think it is right! -
Compilation errors with JDeveloper 10.1.2.2.0
Hello,
I want to change my environment work. First I worked with Eclipse (Europa, jre 1.6), I have no error with my following code source :
private List<String> lString;
and now I have a compilation error with the same code
' Error(43,14): <identifier> expected '
I think it's a compiler version problem but I'm not sure and I don't know how to change the compiler version.
If someone have any idea, I will be happy to receive response.
ThanksJDeveloper 10.1.2.2.0 doesn't support neither JDK 1.6 nor JDK 1.5.
--olaf -
Error when run crystal report with store procedure in JSP
I try to run report which is developed by crystal report XI and store procedure (SQL 2005) with JSP.
But it occurs error that is "com.crystaldecisions.reports.reportengineinterface.JPEReportSource - failed to process getPage request: No results were returned by the query."
How can I do for solving this problem? Pls, help me !!!!!
(In other report which is not used store procedure I can run fine.)
Message was edited by:
Bonds_IdentityWhat version of CR are you using?
What CR updates are you using?
See sample apps here:
https://wiki.sdn.sap.com/wiki/display/BOBJ/CrystalReportsfor.NETSDK+Samples
in particular check out vbnet_win_pass_dataset_main_sub.zip
The [Crystal Reports for Visual Studio 2005 Walkthroughs|http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/2081b4d9-6864-2b10-f49d-918baefc7a23] will also be good to look at.
Ludek
Follow us on Twitter
http://twitter.com/SAPCRNetSup -
Hi all I face a error in create store procedure with like this code can u tel me what i did wrong .
here is my code
Create PROCEDURE [dbo].[FACT_CURRENT_VS_PRV]
@country nvarchar (50)
AS
BEGIN
if @command='XPO1'
BEGIN
WITH CurrentMonth(
SHORT_DESC ,
PERIOD_CODE,
SALES_VALUE_01 Units,
SALES_VALUE_02 [Values]
as (
SELECT
SHORT_DESC ,
PERIOD_CODE,
SALES_VALUE_01 Units,
SALES_VALUE_02 [Values]
FROM table 3
PreviousMonth(
SHORT_DESC,
PERIOD_CODE,
SPEC_CODE_IMS,
SPEC_CODE_PFZ,
Units,
[Values]
as (
SELECT
SHORT_DESC ,
PERIOD_CODE,
SALES_VALUE_01 Units,
SALES_VALUE_02 [Values]
FROM table 4
SELECT * FROM CurrentMonth
except
END
If @country='XPO2'
BEGIN
WITH CurrentMonth(
SHORT_DESC,
PERIOD_CODE,
SPEC_CODE_IMS,
SPEC_CODE_PFZ,
Units,
[Values]
as (
SELECT
SHORT_DESC ,
PERIOD_CODE,
SALES_VALUE_01 Units,
SALES_VALUE_02 [Values]
FROM table 1
PreviousMonth(
SHORT_DESC ,
PERIOD_CODE,
SALES_VALUE_01 Units,
SALES_VALUE_02 [Values]
as (
SELECT
SHORT_DESC ,
PERIOD_CODE,
SALES_VALUE_01 Units,
SALES_VALUE_02 [Values]
FROM table 2
SELECT * FROM CurrentMonth
except
select * FROM PreviousMonth
END
END
and i got this error
Msg 319, Level 15, State 1, Procedure FACT_CURRENT_VS_PRV, Line 116
Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.
Msg 102, Level 15, State 1, Procedure FACT_CURRENT_VS_PRV, Line 152
Incorrect syntax near ','.
I m little bit confused why its happen
Thanks for helpThe error message is obvious. each CTE has to be preceded by ;
so use like this
Create PROCEDURE [dbo].[FACT_CURRENT_VS_PRV]
@country nvarchar (50)
AS
BEGIN
if @command='XPO1'
BEGIN
;WITH CurrentMonth(
SHORT_DESC ,
PERIOD_CODE,
SALES_VALUE_01 Units,
SALES_VALUE_02 [Values]
as (
SELECT
SHORT_DESC ,
PERIOD_CODE,
SALES_VALUE_01 Units,
SALES_VALUE_02 [Values]
FROM table 3
PreviousMonth(
SHORT_DESC,
PERIOD_CODE,
SPEC_CODE_IMS,
SPEC_CODE_PFZ,
Units,
[Values]
as (
SELECT
SHORT_DESC ,
PERIOD_CODE,
SALES_VALUE_01 Units,
SALES_VALUE_02 [Values]
FROM table 4
SELECT * FROM CurrentMonth
except <you're missing something here>
END
If @country='XPO2'
BEGIN
;WITH CurrentMonth(
SHORT_DESC,
PERIOD_CODE,
SPEC_CODE_IMS,
SPEC_CODE_PFZ,
Units,
[Values]
as (
SELECT
SHORT_DESC ,
PERIOD_CODE,
SALES_VALUE_01 Units,
SALES_VALUE_02 [Values]
FROM table 1
PreviousMonth(
SHORT_DESC ,
PERIOD_CODE,
SALES_VALUE_01 Units,
SALES_VALUE_02 [Values]
as (
SELECT
SHORT_DESC ,
PERIOD_CODE,
SALES_VALUE_01 Units,
SALES_VALUE_02 [Values]
FROM table 2
SELECT * FROM CurrentMonth
except
select * FROM PreviousMonth
END
END
I think you're missing a statement after except in first condition
Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs -
[ SOLVED ] Compile Error with Java Fonts & IntelliJ
Hi All
I have now got a new problem when i compile a flex project. Yesterday inorder to get the IJ Interface font smoothing sorted, i had to add this line to my ~/.bashrc file
_JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on
But now when i go to run a flex project, i get the following error message
Information:Using built-in compiler shell, up to 4 parallel threads
See compiler settings at File | Settings | Compiler | Flex Compiler page
Information:Starting Flex compiler:
/opt/java/jre/bin/java -Dapplication.home=/home/julian/SDK/flex_sdk_4.5.0.17855 -Xmx384m -Dsun.io.useCanonCaches=false -Duser.language=en -Duser.region=en -Xmx1024m -classpath /opt/idea-IU-98.311/plugins/flex/lib/flex-compiler.jar:/home/julian/SDK/flex_sdk_4.5.0.17855/lib/flex-compiler-oem.jar com.intellij.flex.compiler.FlexCompiler 48936
Information:Compilation completed with 2 errors and 0 warnings
Information:2 errors
Information:0 warnings
Error:Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on
Error:java.net.SocketException: Socket closed
Error:java.net.ConnectException: Connection refused
Error: at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at java.net.Socket.<init>(Socket.java:375)
at java.net.Socket.<init>(Socket.java:218)
at com.intellij.flex.compiler.FlexCompiler.openSocket(FlexCompiler.java:35)
at com.intellij.flex.compiler.FlexCompiler.main(FlexCompiler.java:70)
Any suggestions, besides disabling the _JAVA_OPTION again ?
Many Thanks
Last edited by whitetimer (2010-11-14 17:24:11)-Dawt.useSystemAAFontSettings=on needs to be added to the end of file
idea.vmoptions -
"catch is unreachable" compiler error with java try/catch statement
I'm receiving a compiler error, "catch is unreachable", with the following code. I'm calling a method, SendMail(), which can throw two possible exceptions. I thought that the catch statements executed in order, and the first one that is caught will execute? Is their a change with J2SE 1.5 compiler? I don't want to use a generic Exception, because I want to handle the specific exceptions. Any suggestions how to fix? Thanks
try {
SendMail(....);
} catch (MessagingException e1) {
logger.fine(e1.toString());
} catch (AddressException e2) {
logger.fine(e2.toString());
public String SendMail(....) throws AddressException,
MessagingException {....I found the problem:
"A catch block handles exceptions that match its exception type (parameter) and exception types that are subclasses of its exception type (parameter). Only the first catch block that handles a particular exception type will execute, so the most specific exception type should come first. You may get a catch is unreachable syntax error if your catch blocks do not follow this order."
If I switch the order of the catch exceptions the compiler error goes away.
thanks -
Error with a procedure in Forms 6i
Hello,
hope someone can help:
Im running Forms6i client /server and have a problem with a procedure. What I wish to do is to fill some text_item in a block with values from a query like this:
Procedure test is
BEGIN
select distinct ( pc.d_id), pc.min_value, pc.max_value, pc.def_value, pc.act_value
into :blk_multi.c_id,:blk_multi.txt_multi_min,:blk_multi.txt_multi_max, :blk_multi.txt_multi_def, :blk_multi.txt_multi_old_value
from par_car pc, c_list cl
where pc.par_id = 21 and pc.d_id IN (select cg.ce_id from cel_group cg where cg.gr_id like 'TEST') and
pc.d_id = cl.c_id
order by pc.d_id desc;
end;
In my form I have a button and in trigger WHEN-BUTTON-PRESSED I call this procedure. It returns error message FRM-40735 WHEN-BUTTON-PRESSED trigger raised unhandled exception ORA-06502. What causes this error message?
Regards
RoarRoar,
2 comments:
1. Query into PLSQL variables and not forms fileds. After a successful query, set the value in teh variables to teh forms fields
2. another problem with your implementation is that it breaks when many rows are retruned. You should use a cursor that loops trhough the query result sets. This way you are save.
Frank -
How to create a schema and assign roles with store procedure or function?
Hi All,
I am creating a webpage that will call oracle store procedure or function to create a schema and add roles. Please let me know if there a method to do that.
Thank youHi CristiBoboc,
Thank you very much for your help. Here is my code to create a user:
create or replace
FUNCTION user_create (user_name IN nvarchar2, user_pw IN nvarchar2)
RETURN number
IS
sql_stmt varchar2(200);
sql_stmt2 varchar2(200);
var_temp_count NUMBER(2);
un varchar2(30) := user_name;
up varchar2(30) := user_pw;
BEGIN
sql_stmt := 'create user :1 identified by :2
default tablespace users
temporary tablespace temp
quota 5m on users';
sql_stmt2 := 'grant developers to :1';
EXECUTE IMMEDIATE sql_stmt USING un,up;
EXECUTE IMMEDIATE sql_stmt2 USING un;
select count(*) into var_temp_count from dba_users where username = UPPER(user_name);
return var_temp_count;
END;
When I run, I get following error:
exec :myvar :=user_create('aaa','12345');
BEGIN :myvar :=user_create('aaa','12345'); END;
ERROR at line 1:
ORA-01935: missing user or role name
ORA-06512: at "CSDBA.USER_CREATE", line 15
ORA-06512: at line 1 -
Compiler bug in 10.1.3 EA1? get "Internal compilation error" with EnumSet
The code sample below generates "Error: Internal compilation error, terminated with a fatal exception" when doing make. It's a very simple example, it creates an EnumSet with one element and dumps it via the "toString()" method.
If I change the line:
"EnumSet set = EnumSet.of(Buttons.ONE);"
To:
"EnumSet set = EnumSet.allOf(c);"
It works fine. For some reason the "of" method of "EnumSet" crashes the compiler.
Any ideas?
========================================
package mypackage;
import java.util.EnumSet;
public class EnumDemo
enum Buttons { ONE, TWO, THREE }
public EnumDemo()
public void dump()
Class c = Buttons.class;
EnumSet set = EnumSet.of(Buttons.ONE);
System.out.println(set.toString());
public static void main(String[] args)
EnumDemo cls = new EnumDemo();
cls.dump();
==============================package com.esp.main;
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JTree;
import javax.swing.event.TreeModelEvent;
import javax.swing.event.TreeModelListener;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
public class TreeNavigator extends JTree {
private FormMain fm;
public TreeNavigatorNode selectedTreeNode;
public TreePath selectedTreePath;
public JTree thisTree;
public TreeNavigator(FormMain pFM) {
fm = pFM;
thisTree = this;
addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
selectedTreeNode = (TreeNavigatorNode)thisTree.getLastSelectedPathComponent();
if (selectedTreeNode == null) {
return;
selectedTreePath = e.getPath();
addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent e) {
if (e.getClickCount() == 1) {
doPopup(e.getX(), e.getY());
String nodeInternalFrameClassName = selectedTreeNode.getInternalFrameClassName();
String nodeNodeTypeDesc = selectedTreeNode.getNodeTypeDesc();
if ((selectedTreeNode != null) && (nodeNodeTypeDesc.equals("FORM") || nodeNodeTypeDesc.equals("GRAPH"))) {
fm.showInternalFrame(nodeInternalFrameClassName, fm, null);
} else if (e.getClickCount() == 1) {
TreePath path = thisTree.getClosestPathForLocation(e.getX(), e.getY());
thisTree.setSelectionPath(path);
public void doPopup(int x, int y) {
if ((selectedTreeNode != null) && selectedTreeNode.nodeTypeDesc.equals("MODULE")) {
fm.cm.sendString("Do Nothing");
} else {
fm.cm.sendString("Launch form");
setEditable(false);
setMaximumSize(new java.awt.Dimension(3200, 3200));
setPreferredSize(new java.awt.Dimension(800, 100));
setShowsRootHandles(false);
setLargeModel(false);
setRootVisible(false);
setDragEnabled(false);
DefaultTreeModel treeNavigatorModel = new DefaultTreeModel(fm.treeNavigatorNodeArray[fm.rootNode], true);
treeModel.addTreeModelListener(new NavigatorTreeModelListener());
setModel(treeNavigatorModel);
expandAll(this);
try {
jbInit();
} catch (Exception e) {
e.printStackTrace();
public void expandAll(JTree tree) {
int row = 0;
while (row < tree.getRowCount()) {
tree.expandRow(row);
row++;
private void jbInit() throws Exception {
this.setSize(new Dimension(286, 383));
TreeNavigatorCellRenderer renderer = new TreeNavigatorCellRenderer(fm);
this.setCellRenderer(renderer);
class NavigatorTreeModelListener implements TreeModelListener {
public void treeNodesChanged(TreeModelEvent e) {
TreeNavigatorNode node;
node = (TreeNavigatorNode)(e.getTreePath().getLastPathComponent());
* If the event lists children, then the changed
* node is the child of the node we've already
* gotten. Otherwise, the changed node and the
* specified node are the same.
try {
int index = e.getChildIndices()[0];
node = (TreeNavigatorNode)(node.getChildAt(index));
} catch (NullPointerException exc) {
public void treeNodesInserted(TreeModelEvent e) {
public void treeNodesRemoved(TreeModelEvent e) {
public void treeStructureChanged(TreeModelEvent e) {
} -
Compilation errors with boost 1.36
Hi,
My compiler
CC: Sun WorkShop 6 update 2 C++ 5.3 Patch 111685-08 2002/06/02
I am getting the followin*g errors when trying to compile
Error: Default arguments cannot be added in later declarations of the template function in the same scope.
"./boost/math/tools/precision.hpp", line 108: Error: Default arguments cannot be added in later declarations of the template function in the same scope.
"./boost/math/tools/precision.hpp", line 116: Error: Default arguments cannot be added in later declarations of the template function in the same scope.
"./boost/math/tools/precision.hpp", line 122: Error: Default arguments cannot be added in later declarations of the template function in the same scope.
"./boost/math/tools/precision.hpp", line 128: Error: Default arguments cannot be added in later declarations of the template function in the same scope.
"./boost/math/tools/precision.hpp", line 141: Error: Default arguments cannot be added in later declarations of the template function in the same scope.
"./boost/math/tools/precision.hpp", line 172: Error: Default arguments cannot be added in later declarations of the template function in the same scope.
I have done configuration as following
%> ./configure with-toolset=sun prefix=/u/jn/boost/boost_1_36_0
my usr-config.jam file looks as below
# Boost.Build Configuration
# Automatically generated by Boost configure
# Compiler configuration
using sun : 6 : /home/nfs/sollocal/beatlehome1/F6U2/SUNWspro/bin/CC : <stdlib>sun-stlport
<cxxflags>-library=stlport4 -m64 -xcode=pic32 -erroff=wvarhidemem,hidevf,hidevfinvb -errtag
s=yes <linkflags>-library=stlport4 -m64 ;
# Python configuration
using python : 2.6 : /usr/local ;
my Makefile
BJAM=./tools/jam/src/bin.solaris/bjam
BJAM_CONFIG= -sICU_PATH=/usr
prefix=/u/jnarayan/boost/boost_1_36_0
exec_prefix=$(prefix)
libdir=$(exec_prefix)/lib
includedir=$(prefix)/include
LIBS=
all: .dummy
@echo "$(BJAM) $(BJAM_CONFIG) --user-config=user-config.jam $(LIBS)"
@$(BJAM) $(BJAM_CONFIG) --user-config=user-config.jam $(LIBS) || \
echo "Not all Boost libraries built properly."
clean: .dummy
rm -rf bin.v2
distclean: clean
rm -rf Makefile config.log
check: .dummy
@cd status && ../$(BJAM) $(BJAM_CONFIG) --user-config=../user-config.jam || echo "S
ome Boost regression tests failed. This is normal for many compilers."
install: .dummy
@echo "$(BJAM) $(BJAM_CONFIG) address-model=64 user-config=user-config.jam pref
ix=$(prefix) exec-prefix=$(exec_prefix) libdir=$(libdir) --includedir=$(includedir) $(L
IBS) install"
@$(BJAM) $(BJAM_CONFIG) address-model=64 --user-config=user-config.jam --prefix=$(p
refix) --exec-prefix=$(exec_prefix) --libdir=$(libdir) --includedir=$(includedir) $(LIBS) i
nstall || echo "Not all Boost libraries built properly."
.dummy:
thanks in advance for your helpBOOST cannot be compiled with WS6u2.
The oldest compiler that can build BOOST is Sun Studio 11 (C++ 5.8).
You will have better luck with Sun Studio 12 (C++ 5.9). Both Studio 11 and Studio 12 are free.
Get Sun Studio 12 here:
[http://developers.sun.com/sunstudio/]
Sun Studio 12 requires Solaris 9, 10, or Open Solaris.
If you are running Solaris 8, get Sun Studio 11 instead:
[http://developers.sun.com/sunstudio/products/previous/11/index.jsp]
After installing the appropriate version of Sun Studio, get all current patches for it here:
[http://developers.sun.com/sunstudio/downloads/patches/index.jsp]
Then check Simon's blog for advice on building BOOST with Sun Studio 11 or 12.
[http://blogs.sun.com/sga/category/Boost] -
Compilation error with (amp) restriction specifier in C++ AMP
Hi,
[double post from :
original post ]
I'm using C++ AMP (I'm not that experienced with C++ and I'm new to AMP, so I have to stumble through this stuff) But I thought I had this code working, but now I'm getting the following error:
Error 1 error C3930: 'WRC_Raytracer::RaytracerRTC::RenderSceneWithAMP::<lambda_c13eb21eb34534d03d408733745bcf16>::operator ()' : no overloaded function has restriction specifiers that are compatible with the ambient
context 'Concurrency::_Parallel_for_impl'
Here is my parallel loop (cut down slightly to focus on the issue):
[code]
parallel_for(0, 720 * 576, 1, [w, cBuffer, pixelDataView](int i) restrict(amp)
// compute x and y for the given index
float x = (float)(i % w);
float y = (float)(i / w);
// convert color from {0,1}f to {0,255}b
int bInt, gInt, rInt;
bInt = (int) (min(x/719.f, 1) * 255);
gInt = (int) (min(y/575.f, 1) * 255);
rInt = (int) (min(0, 1) * 255);
// represent color data as (int)argb
int pixelAsInt = (255 << 24) + (rInt << 16) + (gInt << 8) + bInt;
// update pixelData element
pixelDataView[i] = pixelAsInt;
[/code]
Can anyone see what's wrong here ? As I said, I'm sure this was working yesterday, and I did something just before shutting down, and now it's not working.
Edit : I tried the parallel_for_each loop that I had started with. And that actually does work ...
parallel_for_each(pixelDataView.extent,[=](index<1> idx) restrict(amp)Hello Gavin, thank you for your question.
Note that parallel_for_each (more precisely, the overloads that accept extent arguments and take a restrict(amp) functional parameter) is the unique entry-point for C++ AMP execution. Other functions in the concurrency namespace, such as parallel_for,
are unrelated, and stem from a different technology (PPL). Since restrict(amp) is specific to C++ AMP, trying to use a restrict(amp) functional object in any context but that of C++ AMP execution, is not possible - hence the compiler error
you were seeing. Hopefully this turns out helpful for you. Also, congratulations for picking up C++ AMP, I hope you like it! Cheers! -
Compiler error with forte 6.2 - assertion failed in sp_interface.cc
I have a compilation error when compiling on my Ultra 10
using Forte 6.2 C compiler (5.3). Here's the line:
teds@enigma[195]% cc -xtarget=ultra3 -xarch=v8plusb -dalign -fns -fsimple=2 -ftrap=%none -xlibmil !!
cc -xtarget=ultra3 -xarch=v8plusb -dalign -fns -fsimple=2 -ftrap=%none -xlibmil -xO4 -DCMO_DEBUG_DETAIL -DUSE_DATACONN -c cmoisubs.c -o cmoisubs.o
cg: assertion failed in file ../src/ms_pipe/sp_interface.cc at line 689
cg: Internal error: constval annotation set on reg with multiple defs
cg: 1 errors
cc: cg failed for cmoisubs.c
teds@enigma[196]%
Does anyone have any ideas?
Thanks,
TedHi There,
Form the error message it seems like a bug in cg.
Try the follwoing option and see if the bug goes away.
-Qoption cg -O0 or use -Qms_pipe-off.
Please refer C user's guide for usage.
....jagruti
Developers Technical Support
Sun Microsystems, http://www.sun.com/developers/support -
Compilation Error with Solaris8
Hi ,
I am getting a queer compilation error when compiling a simple C++ program on
Solaris8 . The error does not occur with solaris7 . I have inclued the program
and the error message . Can you give me some tips to overcome this problem .
#include <iostream.h>
int main ( void)
cout << "hello world" ;
/*************COMPILATION ERRROS ***************/
"/usr/include/iso/wchar_iso.h", line 100: Error: Multiple declaration for mbstate_t.
"/opt/SUNWspro/SC5.0/include/CC/./iosfwd", line 51: Error: The name mbstate_t is ambiguous, std::mbstate_t and std::mbstate_t.
"/opt/SUNWspro/SC5.0/include/CC/./iosfwd", line 78: Error: The name mbstate_t is ambiguous, std::mbstate_t and std::mbstate_t.
"/opt/SUNWspro/SC5.0/include/CC/rw/iotraits", line 56: Error: The name mbstate_t is ambiguous, std::mbstate_t and std::mbstate_t.
4 Error(s) detected.
Regards,
vichuThanks! However, my sample code does not inclide iostream.
#include <string>
main() {
string s = "123asd";
exit(0);
and there is the output
hwang@jazz: /opt/SUNWspro/SC5.0/bin/CC test.C
"/usr/include/wchar_impl.h", line 24: Error: Multiple declaration for __mbstate_t.
"/usr/include/wchar.h", line 90: Error: Multiple declaration for mbstate_t.
"/opt/SUNWspro/SC5.0/include/CC/./iosfwd", line 37: Error: The name __mbstate_t is ambiguous,
__mbstate_t and __mbstate_t.
"/opt/SUNWspro/SC5.0/include/CC/./iosfwd", line 45: Error: Multiple declaration for mbstate_t.
"/opt/SUNWspro/SC5.0/include/CC/rw/iotraits", line 37: Error: The name __mbstate_t is ambiguou
s, __mbstate_t and __mbstate_t.
"/opt/SUNWspro/SC5.0/include/CC/rw/iotraits", line 57: Error: Multiple declaration for mbstate
_t.
"test.C", line 4: Error: string is not defined.
"test.C", line 4: Error: Cannot use const char* to initialize int.
8 Error(s) detected.
Any ideas?
Thanks again
Maybe you are looking for
-
Difference between cancel_flag IS NULL and cancel_flag ='N'
Hi , Please clarify Difference between cancel_flag IS NULL and cancel_flag ='N' in PO Headers . Because from front end cancel check box is unchecked in abobe both the cases . We can see cancel check box status only in Help>Diagnostics>Examine . Thank
-
I just got my new i phone 5 s and did all the syncing and backing up for my old iphone 4s and set my 5 up and synced it on itunes. It synced evrything but the contacts and other minor things. those were the only things that really transfered. My ap
-
Where can I get an old Mac system disc
Where can I get an old mac system software (ver 4.2)
-
Query with date variable selection
Greetings, I am having problems with a SQL Query and wondering if someone could help me out. I have the following query and want to specify a WHERE clause and have the user select the date range they want to work with. If I specify a date the query
-
XML XPath Array Comma Deliminated....
The following snippit of code works just fine. However I need to take the p2 array and rebuild it to an array that separates the values by a comma. I then can pass that into my SQL to support the Where In '1,2,3,' clause... String [] p2 = xPath.getVa