SoftTree Technologies SoftTree Technologies
Technical Support Forums
RegisterSearchFAQMemberlistUsergroupsLog in
Trouble with PL/SQL Developer Code Assistant
Goto page 1, 2  Next
 
Reply to topic    SoftTree Technologies Forum Index » SQL Assistant View previous topic
View next topic
Trouble with PL/SQL Developer Code Assistant
Author Message
Albert



Joined: 25 Nov 2008
Posts: 12
Country: Russian Federation

Post Trouble with PL/SQL Developer Code Assistant Reply with quote
Hello!
Thank you for great soft! But there is one trouble with PL/SQl Developer integration.
When SQL Assistant is turned on and SQL Assistance functionality is turned off there is trouble with PL/SQL Developer integrated Code Assistant.
Step By step:
1. We enter something in SQL Editor
2. PL/Sql developer Code Assistant menu pops up
3. PL/Sql developer automatically selects first item in the list
4. We press enter key
5. After that we see transition to the next string and carriage return WITHOUT desired replacement by Code Assistant! I think that "enter" key is halted by SQL Assistant

SQL Assistant version: 4.0.34
PL/SQL-Developer: 7.1.5.1398

Thanks!
Fri Nov 28, 2008 5:43 am View user's profile Send private message
SysOp
Site Admin


Joined: 26 Nov 2006
Posts: 7847

Post Reply with quote
Hi,

I'm sorry, I'm a bit confused by your references. When you say "SQL Assistance functionality is turned off" and "PL/Sql developer Code Assistant menu pops up" do you refer to PL/SQL Developer's functionality or SQL Assistant's functionality?

If "SQL Assistance functionality is turned off" how could "PL/Sql developer Code Assistant menu pops up" ? It is either turned off or not. If it is not, you should turn it off to avoid conflicts with SQL Assistant popups and menus. If indeed it is turned off, how then a menu appear which is supposed to be turned off?

Thanks.
Fri Nov 28, 2008 10:08 am View user's profile Send private message
Albert



Joined: 25 Nov 2008
Posts: 12
Country: Russian Federation

Post Reply with quote
When you say "SQL Assistance functionality is turned off" and "PL/Sql developer Code Assistant menu pops up" do you refer to PL/SQL Developer's functionality or SQL Assistant's functionality?
I refer to PL/SQL Developer functionality (Code Assistant). I want use another SQL Assistant functionality (except SQL Assistance) in a tandem with PL/SQL Developer. Therefore SQL Assistant SQL Assistance functionality is turned off and PL/SQL Developer Code Assistant is turned on. But in this case SQL Assistant in conflict with PL/Sql developer as I wrote in my previous message. (there was no such problem in version 3.5)
Thanks
Fri Nov 28, 2008 10:24 am View user's profile Send private message
SysOp
Site Admin


Joined: 26 Nov 2006
Posts: 7847

Post Reply with quote
Sorry, I still don't understand what conflict you are talking about. You say "SQL Assistant SQL Assistance functionality is turned off and PL/SQL Developer Code Assistant is turned on. But in this case SQL Assistant in conflict with PL/Sql developer"

What conflict are you talking about if it is turned off? If it is turned off, e.g. shutdown or suspended, it means the software is inactive and cannot interfere with PL/SQL Developer or anything else.

How do you turn it off? Please describe step-by-step how you turn it off.


Last edited by SysOp on Fri Nov 28, 2008 12:34 pm; edited 1 time in total
Fri Nov 28, 2008 10:53 am View user's profile Send private message
Albert



Joined: 25 Nov 2008
Posts: 12
Country: Russian Federation

Post Reply with quote
:)
"SQL AssistanT" (r) has spread functionality
1.SQL AssistanCe (it is turned off)
2.SQL Reference
3.Code Snippets
.....
Additionaly There are no Any SQL AssistanT key shotcuts maped to "enter" key in my current configuration....
Fri Nov 28, 2008 11:20 am View user's profile Send private message
SysOp
Site Admin


Joined: 26 Nov 2006
Posts: 7847

Post Reply with quote
I'm now even more confused than in the beginning of this topic :)

How exactly do you turn it off? I need to know what you are doing in order to help you.

Thanks
Fri Nov 28, 2008 12:36 pm View user's profile Send private message
Albert



Joined: 25 Nov 2008
Posts: 12
Country: Russian Federation

Post Reply with quote
May be some visualization will be useful ? :)

Fri Nov 28, 2008 12:45 pm View user's profile Send private message
SysOp
Site Admin


Joined: 26 Nov 2006
Posts: 7847

Post Reply with quote
Thank you. Now I understand what you talking about.

So basically you want to keep turn-off 4th generation SQL Intellisense provided by SQL Assistant and use 2nd generation SQL Intellisense provided by PL/SQL Developer while at the same time using SQL References and Code formatting features. I don't think you can do it exactly like that. You would need to turn off code formatting too, because SQL Assistant and Code formatting are inter-dependent. SQL Assistance is not just simple popups (as in PL/SQL Developer), it is a lot more than that including code reformatting, indenting, code snippets, smart undo, tabs replacement and a number of other features.

I also want to say that SQL Assistant v4.x packs a lot more features tied to "SQL Assistant" option than what was available in 3.x releases. In addition, SQL Assistant v4.1 provides several unique new features for Oracle such as suggestions for local variables, package variables, matching name highlighting, formatted programming code copying to clipboard, etc… and a number of other, none of which are available in PL/SQL Developer.

From my point of view choosing PL/SQL Developer's code assistance over SQL Assistant is like choosing an old car over brand shining Lexus.

Of course, this is your preference. You can choose whatever you want, but the current selection wouldn't work the way you expect it to work.
Fri Nov 28, 2008 1:45 pm View user's profile Send private message
Albert



Joined: 25 Nov 2008
Posts: 12
Country: Russian Federation

Post Reply with quote
Thank you.
I think that posibilities of SQL Assistance are very great! Thank you for so fine software!
Why do I prefer to use Pl/SQL Developer Assistance functionality? First of all because I work with several Oracle databases and i need to reconnect frequently from one database to another. In case of SQL Assistant will be necessary to reconnect twice (PL/SQL Developer and SQL Assistant)

And several words in defence of PL/SQL Developer
Some chat of features:

Code:
Features                         "SQL Assistant"  "PL/SQL Developer" Code Assistant

code reformatting                 Yes              Yes, Simle (keywords case changing)
indenting                         Yes              Yes (Rich capabilities in Procedural Editing )
code snippets                     yes              It is possible with additional plugin or with SQL Assistant ;-)
smart undo                        yes              no
tabs replacement                  yes              yes
suggestions for local variables   yes              yes
suggestions for package variables yes              yes
matching name highlighting        yes              yes
formatting  programming code      yes              yes
...copying to clipboard
(what is the sense and the aim of it?)  yes              no
There are much of another features of PL/SQL Developer editor. For example, drug and drop feature for objects with desirable SQL generating, code refactoring, code folding and so on.

I think that PL/SQL Developer car is not so bad car ;-)

Thank you!!!
Mon Dec 01, 2008 7:12 am View user's profile Send private message
SysOp
Site Admin


Joined: 26 Nov 2006
Posts: 7847

Post Reply with quote
PL/SQL Developer is a very nice development system.

I only meant the SQL Intellisense part, to which I referred in the sentence comparing new car vs. old car. If you disable that particular feature, you can still enjoy everything else, including all the great editor features, drag-and-drop and other. And in that case you would not have keyboard-related conflicts.


Thank you.
Mon Dec 01, 2008 10:49 am View user's profile Send private message
Albert



Joined: 25 Nov 2008
Posts: 12
Country: Russian Federation

Post Reply with quote
Thank you for your answers! :)
Additionally I found that SQL Assistant feature "Code Structure" doesn't correctly work with Oracle Package body. It shows only first procedure in package
Thanks!
Mon Dec 01, 2008 1:26 pm View user's profile Send private message
SysOp
Site Admin


Joined: 26 Nov 2006
Posts: 7847

Post Reply with quote
Would you please provide a sample code to reproduce this issue? If this is a bug, we will gladly fix it, but we need to reproduce it first.
Mon Dec 01, 2008 1:32 pm View user's profile Send private message
Albert



Joined: 25 Nov 2008
Posts: 12
Country: Russian Federation

Post Reply with quote
Yes, of course
You need to create simplest package

Code:
create or replace package test is

  function test1(p_n

 number) return varchar2;
   
   function test2(p_n number) return varchar2;

end test;

create or replace package body test is
 
  function test1(p_n number) return varchar2 is
   
  begin
     return(null);
  end;
   
  function test2(p_n number) return varchar2 is
   
  begin
     return(null);
  end;


end test;


As a result for package body we can see (only first function):

For package header (it is all right):

Additional error with toggle from package header view to package body view (video):
http://www.zshare.net/video/521588103ad768e6/
Tue Dec 02, 2008 2:13 pm View user's profile Send private message
SysOp
Site Admin


Joined: 26 Nov 2006
Posts: 7847

Post Reply with quote
Thanks! I will forward this issue to the development team for further investigation.
Tue Dec 02, 2008 2:20 pm View user's profile Send private message
Albert



Joined: 25 Nov 2008
Posts: 12
Country: Russian Federation

Post Reply with quote
Hello!
Thank you for fixing error with package code structure!
Here you can see example of procedure for which a code structure is not showed

Code:
create or replace function arm_copy_entity_to_new (
   pn_entity               in  entityclass.classified%type,
   ps_new_entity_name      in  entityclass.label%type,
   pn_new_entity_category  in  entityclass.doccategory%type default null)
   return entityclass.classified%type
is
   ln_new_entity           entityclass.classified%type;
   ln_new_entitystate      entitystate.classified%type;
   ln_new_entityoperation  entityoperation.classified%type;
   ln_counter              pls_integer;

   type tcorresponding_entitystates is record (
      entitystate_old  entitystate.classified%type,
      entitystate_new  entitystate.classified%type
   );

   type tcorresponding_entityst_array is table of tcorresponding_entitystates;

   l_entitystates          tcorresponding_entityst_array
                                                       := tcorresponding_entityst_array
                                                                                       ();

   type tcorresponding_entityoper is record (
      entityoper_old  entityoperation.classified%type,
      entityoper_new  entityoperation.classified%type
   );

   type tcorresponding_entityop_array is table of tcorresponding_entityoper;

   l_entityopers           tcorresponding_entityop_array
                                                       := tcorresponding_entityop_array
                                                                                       ();

   -- ln_new_entitymethod     entitymethod.classified%type;
   -- ln_new_entityattribute  entityattribute.classified%type;
   procedure p (
      ps_msg            in  varchar2,
      pb_test_not_zero      boolean default false,
      pb_test_only_one      boolean default false)
   is
   begin
      if sql%rowcount = 0 and nvl (pb_test_not_zero, false) then
         arm_raise_error (p_msg => 'Can''t add record: ' || ps_msg, p_stack_depth => 2);
      elsif nvl (pb_test_only_one, false) and sql%rowcount > 1 then
         arm_raise_error (p_msg =>                ' Too much records: '
                                               || ps_msg
                                               || ':'
                                               || to_char (sql%rowcount),
                          p_stack_depth =>     2);
      else
         dbms_output.put_line (ps_msg || ': added ' || to_char (sql%rowcount)
                               || ' records');
      end if;
   end;
begin
   select classified.nextval
     into ln_new_entity
     from dual;

   insert into entityclass
               (classified, code, label, description, parent, doccategory, subsystem,
                isabstract, dictionary)
      select ln_new_entity,                       /*'doctype' || to_char (ln_new_entity)*/
                           ps_new_entity_name, ps_new_entity_name, description, parent,
             nvl (pn_new_entity_category, doccategory), subsystem, isabstract, dictionary
        from entityclass
       where classified = pn_entity;

   dbms_output.put_line (a => ln_new_entity);
   p (ps_msg => 'entityclass', pb_test_not_zero => true, pb_test_only_one => true);

   insert into entityparent
               (entity, parent, lev)
      select ln_new_entity, parent, lev
        from entityparent p
       where p.entity = pn_entity;

   p (ps_msg => 'entityparent', pb_test_not_zero => true);

   insert into ro_preferences
               (ro_classified, subjclass, parentclass, accmaskdeb, accmaskcred, currdeb,
                currcred, prefpriority, sqlcond, ro, sysfilial)
      select ro_classified.nextval, ln_new_entity, parentclass, accmaskdeb, accmaskcred,
             currdeb, currcred, prefpriority, sqlcond, ro, sysfilial
        from ro_preferences r
       where r.subjclass = pn_entity
             and r.sqlcond not in (select m.classified
                                     from entitymethod m
                                    where m.entityclass = pn_entity);

   p (ps_msg => 'ro_preferences', pb_test_not_zero => true);

   insert into entityinheritveto
               (entityclass, parentobject, vetoflag)
      select ln_new_entity, parentobject, vetoflag
        from entityinheritveto v
       where v.entityclass = pn_entity;

   p (ps_msg => 'entityinheritveto', pb_test_not_zero => true);

   select count (*)
     into ln_counter
     from entitymethod m
    where m.entityclass = pn_entity;

   if ln_counter > 0 then
      dbms_output.put_line (a => 'This entity has  ' || ln_counter || ' methods');
   end if;

   select count (*)
     into ln_counter
     from entitymessage m
    where m.entityclass = pn_entity;

   if ln_counter > 0 then
      dbms_output.put_line (a => 'This entity has ' || ln_counter || ' messages');
   end if;

   /* for rec in (select classified, entitymethod, entityattribute, designobjtype,
                      ordernumber, label, status, tagstring, code, istable
                 from entitymethodparam p
                where p.entitymethod in (select m.classified
                                           from entitymethod m
                                          where m.entityclass = pn_entity)
                   or p.entityattribute in (select a.classified
                                              from entityattribute a
                                             where a.entityclass = pn_entity)) loop
      ln_new_entitymethod := null;
      ln_new_entityattribute := null;

      if rec.entitymethod is not null then
         insert into entitymethod
                     (classified, methodtype, entityclass, code, label, description,
                      sqlname, intention, methodtext)
            select classified.nextval, methodtype, ln_new_entity, code, label,
                   description, sqlname, intention, methodtext
              from entitymethod m
             where m.classified = rec.entitymethod
           returning classified
                into ln_new_entitymethod;

         p (ps_msg => 'entitymethod');
      end if;

      if rec.entityattribute is not null then
         insert into entityattribute
                     (classified, entityclass, code, label, description, parent,
                      designobjtype, entitytable, columnname, keyvalue)
            select classified.nextval, ln_new_entity, code, label, description, parent,
                   designobjtype, entitytable, columnname, keyvalue
              from entityattribute a
             where a.entityclass = pn_entity
           returning classified
                into ln_new_entityattribute;

         p (ps_msg => 'entityattribute');
      end if;

      insert into entitymethodparam
                  (classified, entitymethod, entityattribute, designobjtype, ordernumber,
                   label, status, tagstring, code, istable)
         select classified.nextval, ln_new_entitymethod, ln_new_entityattribute,
                designobjtype, ordernumber, label, status, tagstring, code, istable
           from entitymethodparam p
          where p.classified = rec.classified;

      p (ps_msg => 'entitymethodparam');
   end loop;*/
   insert into entityaction
               (classified, entityclass, entitymessage, actiongroup, actionorder,
                actiontype, action, actionstring, isdisabled, sqlcondition, isrevert)
      select classified.nextval, ln_new_entity, ea.entitymessage, ea.actiongroup,
             ea.actionorder, ea.actiontype, ea.action, ea.actionstring, ea.isdisabled,
             ea.sqlcondition, ea.isrevert
        from entityaction ea
       where ea.entityclass = pn_entity
         and ea.entitymessage not in (select m.classified
                                        from entitymessage m
                                       where m.entityclass = pn_entity)
         and ea.action not in (select m.classified
                                 from entitymethod m
                                where m.entityclass = pn_entity)
         and ea.sqlcondition not in (select m.classified
                                       from entitymethod m
                                      where m.entityclass = pn_entity);

   p (ps_msg => 'entityaction', pb_test_not_zero => true);

   insert into entityproc
               (entityclass, entitymessage, actiongroup, procorder, singlecommand,
                multicommand)
      select ln_new_entity, entitymessage, actiongroup, procorder, singlecommand,
             multicommand
        from entityproc p
       where p.entityclass = pn_entity
         and p.entitymessage not in (select mm.classified
                                       from entitymessage mm
                                      where mm.entityclass = pn_entity)
         and p.singlecommand not in (select me.sqlname
                                       from entitymethod me
                                      where me.entityclass = pn_entity)
         and p.multicommand not in (select me.sqlname
                                      from entitymethod me
                                     where me.entityclass = pn_entity);

   p (ps_msg => 'entityproc', pb_test_not_zero => true);

   insert into entitylinkprocessing
               (classified, entityclass, entitymessage, processorder, entityfilter,
                linkclass, linkstate, sqlcondition, isrevert, linkmessage, checkoperation,
                errorprocessing, isdisabled, inheritfrom, isclassrevert, isstaterevert,
                checkerrormsg)
      select classified.nextval, ln_new_entity, entitymessage, processorder, entityfilter,
             linkclass, linkstate, sqlcondition, isrevert, linkmessage, checkoperation,
             errorprocessing, isdisabled, inheritfrom, isclassrevert, isstaterevert,
             checkerrormsg
        from entitylinkprocessing l
       where l.entityclass = pn_entity
         and l.entitymessage not in (select mm.classified
                                       from entitymessage mm
                                      where mm.entityclass = pn_entity)
         and l.linkmessage not in (select mm.classified
                                     from entitymessage mm
                                    where mm.entityclass = pn_entity)
         and l.entityfilter not in (select m.classified
                                      from entitymethod m
                                     where m.entityclass = pn_entity)
         and l.sqlcondition not in (select m.classified
                                      from entitymethod m
                                     where m.entityclass = pn_entity);

   p (ps_msg => 'entitylinkprocessing');

   for states in (select classified, entityclass, code, label, description, docstate,
                         docstateorder, parentstate, statecondition
                    from entitystate s
                   where s.entityclass = pn_entity) loop
      insert into entitystate
                  (classified, entityclass, code, label,
                   description, docstate, docstateorder,
                   parentstate, statecondition)
           values (classified.nextval, ln_new_entity, states.code, states.label,
                   states.description, states.docstate, states.docstateorder,
                   states.parentstate, states.statecondition)
        returning classified
             into ln_new_entitystate;

      p (ps_msg => 'entitystate:' || states.label, pb_test_not_zero => true);
      l_entitystates.extend;
      l_entitystates (l_entitystates.count).entitystate_old := states.classified;
      l_entitystates (l_entitystates.count).entitystate_new := ln_new_entitystate;

      for oper in (select classified, entityclass, entitystate, entitymessage, label,
                          ordernumber, showtype, sqlcondition, isrevert, parentoperation
                     from entityoperation o
                    where o.entityclass = pn_entity
                      and o.entitystate = states.classified
                      and o.sqlcondition not in (select m.classified
                                                   from entitymethod m
                                                  where m.entityclass = pn_entity)
                      and o.entitymessage not in (select mm.classified
                                                    from entitymessage mm
                                                   where mm.entityclass = pn_entity)) loop
         insert into entityoperation
                     (classified, entityclass, entitystate,
                      entitymessage, label, ordernumber, showtype,
                      sqlcondition, isrevert, parentoperation)
              values (classified.nextval, ln_new_entity, ln_new_entitystate,
                      oper.entitymessage, oper.label, oper.ordernumber, oper.showtype,
                      oper.sqlcondition, oper.isrevert, oper.parentoperation)
           returning classified
                into ln_new_entityoperation;

         l_entityopers.extend;
         l_entityopers (l_entityopers.count).entityoper_old := oper.classified;
         l_entityopers (l_entityopers.count).entityoper_new := ln_new_entityoperation;
         p (ps_msg => '>>entityoperation:' || oper.label, pb_test_not_zero => true);

         insert into accessoperation
                     (entityoperation, accessgroup, accessmode)
            select ln_new_entityoperation, accessgroup, accessmode
              from accessoperation a
             where a.entityoperation = oper.classified;

         p (ps_msg => '>>>accessoperation', pb_test_not_zero => false);
      end loop;

      insert into entitypropvalue
                  (classified, proptype, entityclass, entitymessage, entitystate, context,
                   propvalue, sqlcondition, isrevert, ordernumber, parentproperty,
                   description, validfromdate, validtodate)
         select classified.nextval, proptype, ln_new_entity, entitymessage,
                ln_new_entitystate, context, propvalue, sqlcondition, isrevert,
                ordernumber, parentproperty, description, validfromdate, validtodate
           from entitypropvalue p
          where p.entityclass = pn_entity
            and p.entitystate = states.classified
            and p.entitymessage not in (select mm.classified
                                          from entitymessage mm
                                         where mm.entityclass = pn_entity)
            and p.sqlcondition not in (select m.classified
                                         from entitymethod m
                                        where m.entityclass = pn_entity);

      p (ps_msg => '>>entitypropvalue', pb_test_not_zero => true);
   end loop;

   for i in 1 .. l_entityopers.count loop
      for j in 1 .. l_entitystates.count loop
         insert into entitytransition
                     (classified, operation, stateto, sqlcondition, isrevert, action,
                      parenttransition)
            select classified.nextval, l_entityopers (i).entityoper_new,
                   l_entitystates (j).entitystate_new, sqlcondition, isrevert, action,
                   parenttransition
              from entitytransition t
             where t.operation = l_entityopers (i).entityoper_old
               and t.stateto = l_entitystates (j).entitystate_old
               and t.sqlcondition not in (select m.classified
                                            from entitymethod m
                                           where m.entityclass = pn_entity)
               and t.action not in (select m.classified
                                      from entitymethod m
                                     where m.entityclass = pn_entity);

         p (ps_msg => 'entitytransition' /*, pb_test_not_zero => true*/);
      end loop;
   end loop;

   for oper in (select classified, entityclass, entitystate, entitymessage, label,
                       ordernumber, showtype, sqlcondition, isrevert, parentoperation
                  from entityoperation o
                 where o.entityclass = pn_entity
                   and o.entitystate is null
                   and o.sqlcondition not in (select m.classified
                                                from entitymethod m
                                               where m.entityclass = pn_entity)
                   and o.entitymessage not in (select mm.classified
                                                 from entitymessage mm
                                                where mm.entityclass = pn_entity)) loop
      insert into entityoperation
                  (classified, entityclass, entitystate, entitymessage,
                   label, ordernumber, showtype, sqlcondition,
                   isrevert, parentoperation)
           values (classified.nextval, ln_new_entity, null, oper.entitymessage,
                   oper.label, oper.ordernumber, oper.showtype, oper.sqlcondition,
                   oper.isrevert, oper.parentoperation)
        returning classified
             into ln_new_entityoperation;

      l_entityopers.extend;
      l_entityopers (l_entityopers.count).entityoper_old := oper.classified;
      l_entityopers (l_entityopers.count).entityoper_new := ln_new_entityoperation;
      p (ps_msg => '>>entityoperation:' || oper.label, pb_test_not_zero => true);

      insert into accessoperation
                  (entityoperation, accessgroup, accessmode)
         select ln_new_entityoperation, accessgroup, accessmode
           from accessoperation a
          where a.entityoperation = oper.classified;

      p (ps_msg => '>>>accessoperation', pb_test_not_zero => false);
   end loop;

   return ln_new_entity;
end arm_copy_entity_to_new;

Mon Feb 16, 2009 9:24 am View user's profile Send private message
Display posts from previous:    
Reply to topic    SoftTree Technologies Forum Index » SQL Assistant All times are GMT - 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to: 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


 

 

Powered by phpBB © 2001, 2005 phpBB Group
Design by Freestyle XL / Flowers Online.