Casting DataTable to Control

I'd like to write a general method to dispose of SQL objects using a passed Form object. I'm running Visual Studio Express 2013 for Windows Desktop. The cast is the problem; see the lines with '**'. What type of cast should I use? Thanks!
public static void Dispose_SQLObjects(Form form)
foreach(Control control in form.Controls)
if (control.GetType() == typeof(DataTable))
**DataTable table = (DataAdapter)control;
if (table != null) table.Dispose();
if (control.GetType() == typeof(DataAdapter))
**DataAdapter adapter = (DataAdapter)control;
if (adapter != null) adapter.Dispose();
if (control.GetType() == typeof(BindingSource))
**BindingSource bs = (BindingSource)control;
if (bs != null) bs.Dispose();

I don't know what you are trying to do here.You can't make any cast on anything here in what you are trying to do.
https://msdn.microsoft.com/en-us/library/system.data.common.dataadapter%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
https://msdn.microsoft.com/en-us/library/system.data.datatable%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
https://msdn.microsoft.com/en-us/library/system.windows.forms.control(v=vs.110).aspx
Java and .NET have the same principles when it come to OO.
https://alfredjava.wordpress.com/2008/07/08/class-vs-object-vs-instance/
A class defines an object
A class can be instanciated into a object instance.
**DataTabletable
= (DataAdapter)control;
That statement is saying car I am telling you that you are going to be a house. And once you are a house, I am going to make you a rocket. It's never going to happen. .NET is going to start looking at the defining classe for the objects and say car you can't
be cast to be a house,  and house you can't be cast to be a rocket.
It's car cast to a car. It's house cast to a house. It's rocket cast to a rocket.
Lets say Textbox1 is cast to Object. That can happen becuase System.Object is the base object for everything in .NET. So you pass Object around in code. Object is really a Textbox object. So you get to a point in code where Object needs to be a Textbox object
again.
Textbox thetextbox = (TextBox)Object.  That's valid and I hope you understand way it is valid.

Similar Messages

  • Controls collections in Actionscript?

    Hello
    I am creating a map of a building. I have symbols created in Flash that represent doors and need to access their play() method according to which door needs to be opened. I have a door.swc file created in Flash and imported into Flash Builder as a library. Then I have created a subclass of door (doorway) so that I can add an id property to it. Now when I receive some event, such as an incoming message, I need to iterate through the doorway controls and locate the doorway by the id property and invoke its play() method.
    I do stuff like this regularly in java and C# but cannot find the following: a) a controls collection or something like it, b) a way to search through a collection of controls, c) a generic collection class that I could use to manually manage the doorway controls. If I can find how to do this, I would then need to cast the located control to a doorway type and in light of the trouble I'm having, I'm wondering if that is even possible. Is actionscript really this limited??
    Is any of this even possible in an Actionscript project?

    Hi
         Try to use ArrayCollection or Dictionary
    Good Luck

  • LabVIEW 8.2 classes do not work in LV 8.5?

    I just switched to LabView 8.5 to take advantage of the new features in the Project Explorer.
    Unfortunately the conversion of my project from 8.2 to 8.5 seems to have completely destroyed all of my LVOOP classes in the project.
    Everthing was working fine right after I opened the project, however, after saving all the VIs in the project, the next time I opened the project all class files showed up as "(not loaded)".
    When I right clicked on them and selected "load" some of them would load, some of them would do nothing, and some of them would crash LabView (The last time you ran LabVIEW, an internal error or crash occurred at TDUtility.cpp, line 1524.).
    When I double clicked on the class datat type control in the "not loaded" classes, some of them would search on disk for a file with the name of the control (although I thought the control is embedded in the lvclass file) and others would crash LabView (The last time you ran LabVIEW, an internal error or crash occurred at ctrledit.cpp, line 614.)
    And when I try to save my project into a different folder (duplicating everything) I get a requester saying that xxx.lvclass is not a valid LabView file.
    Did anyone else run into these problems? Any idea how to fix them?
    Any help would be appreciated.
    Cheers,
                      Heiko Fettig

    Well, with some help of the guys at LAVA I found the root cause of the problem and a work around.
    It looks like the problem only appears when converting from 8.2.1 to 8.5 and only if there is a 'resource control' in the data type of the class, e.g. VISA control, DAQ channel control, DAQmx task control, etc.
    For some reason in this case it seems that the class is updated to 8.5 but the containing data type is not or something along those lines causing the class file to become corrupted.
    The workaround is this:
    Open the project in 8.5
    Before saving or mass compiling do the following:
    Open every class data type that contains a resource control and slightly change the physical dimensions of the resource control. You can change it right back as well (although not by using undo ;-)
    If the resource control is contained in a cluster or typedef, you need to only change the dimensions of the cluster or instance of the cluster.
    This seems to flag the class for proper update.
    Mass compile the project
    Close the project
    Here are the links to the two LAVA threads I found on this topic:
    http://forums.lavag.org/85-LVOOP-Upgrade-Problem-t8795.html
    http://forums.lavag.org/Problem-with-conversion-of-LV-82-classes-to-LV-85-t8847.html
    I hope this will be fixed since I don't think I am the only one using resource controls in class data types.
    Cheers,
                        Heiko

  • ExecuteWithParams, bindVariable don´t take the current value of textfield

    Hello,
    i use a bind variable to select only the rows with the same date. (ExecuteWithParams)
    Therefor i added the bind Variable as a JTextfield to my client.
    If i type the date to the textfield it works, but if i add current date by pressing a button, the filter ignores the value of the textfield.
    After a mouseklick into the textfield it works again.
    Thank you
    AK
    JDeveloper: 10.1.3.0.4.3673
    ADF BC: 10.1.3.36.73
    Java: 1.5.0_05

    Hi,
    how do you add the current date? You should set the date in the binding layer if you want it to also show in the textfield. The panelBining variable is a handle to the binding. From here you can cal get("name of the attribute"), cast it to control binding and cal setInputValue
    Frank

  • Class cast exception in Process Control

    Hello,
    I am trying to use a SubProcess through a Process Control from a ParentProcess in another Workshop application.
    They are both deployed in the same domain.
    The SubProcess Control is packaged in a Control Project whose jar is imported in the other ParentProcess Workshop application.
    The data that is passed is in form of XML documents described as schemas. And both applications use the same Schema.jar.
    The call from the ParentProcess looks like it is OK.
    But when the reply comes back it looks like the transform fails. I get a "class cast exception"
    The feeling I get is that the returning xml document variable can't be cast into the local xml document variable. Even though they are of the exact same type...
    All help is very much appreciated!!!
    Unhandled Process Exception:
    java.lang.ClassCastException
    at se.telia.object.kund.control.sokKundPControl.clientRequest(Unknown Source)
    at se.telia.tab.regae.process.Untitled.sokKundPctrlClientRequest(Untitled.jpd:101)
    -------------

    I'm having some problems with a transformation and I'm getting a cast exception so maybe it's the same thing.
    The problem is when the source schema has some element with minOccurs="0". If the element is not present in the xml document that is received, the transformation seems to be trying to cast it anyway.

  • Re-casting of object from control reference

    I feel like this question is likely answered elsewhere, but after days of searching I couldn't find an answer. Sorry if I'm missing the answer in some obvious place.
    I'm given a reference to a cluster control and told that the elements of the cluster are all children of parent class A. Using the controls[] property I get an array of the elements, and the value property of each of those elements gives a variant that can be turned into class A. At that point, all of the object oriented overriding and private data stuff works as expected.
    So far so good.
    But one method I call on those objects changes the private data, and I need to update the control with the updated object. There I get a runtime error because the control isn't A but some child class of A.
    I think this is where Preserve Runtime Class comes into play, but since I only get a reference to work with, what do I do? This is especially frustrating because debugging probes show that LabVIEW knows the child class on the wire, but I can't see how to tell LabVIEW to cast down to the class that it knows it has.
    For example, is there some way to use the ClassName property of the control to cast the object of class A into the child that the control is expecting?
    Solved!
    Go to Solution.

    nathand wrote:
    So your trying to write to the specific control within the cluster, by reference, as a variant, and you're getting an error? What's the actual text of the error?
    Really you shouldn't ever be using a front panel object this way, especially one where the user never sees the data in it. For passing data around you should use a wire. Neither a wire nor a DVR will get you the ability to pass an arbitrary cluster, though, which it sounds like is what you're trying to do. With a bit more information we might be able to suggest a better approach.
    I don't have the text of the error handy, but it comes from the write value property node and basically says the given variant can't be converted to the type of the control. It happens only when the value is cast to the parent class, which makes sense.
    In other words, given a control of child type,
    control.value ---> variant ---> to parent ---> variant ---> control.value     failes with the error
    control.value ---> variant ---> to child ---> variant ---> control.value       succeeds
    So a solution would be a way to cast to the child instead of to the parent. LabVIEW knows what class the control contains; it is listed in a number of places from the ClassName property through the probe window. The problem is I know of no way to bridge the gap from "LabVIEW knows what class this thing is" to "have LabVIEW cast the variant to that class."
    I completely agree that I shouldn't have to ever be using a front panel control this way, but I don't want to get sidetracked into talking about the shortcomings of LabVIEW that have required such a use. Suffice it to say, that is the assignment.

  • Row background color in dataTable control based on criteria

    It is relatively straightforward to give a pattern of color to rows in a dataTable control, for instance to alternate colors from white to gray.
    However, I have not yet figured how the row background color could be decided based on data fields associated with each row. For instance, I would like to set the row background color based on the value of a boolean attribute associated with the row, e.g. white if value is false and gray if it is true.
    Is there an easy way to do this?
    Martin

    of the text, but not the whole cell. I need to find a
    way to change the span at the row level (on the <tr>
    tag). ANy ways to do this?
    MartinThis is a question of how to let the renderer adjust its behaviour depending on the current state of the model. My renderer changes the background for the selected row by changing the style class:
            writer.startElement("tr", table);
              if (table.getRowSelector())
                   if (table.isAtSelectedRow())
                        writer.writeAttribute("class", "selectedRow", null);
    etc.(of course, to be able to do this you must write your own renderer)
    erik

  • FPGA Up Cast Funktion deletes Values form Read/Write Controll

    Hello Everybody,
    I Have an other Problem with my RT-FPGA cRIO...
    I have now managed to read the module IDs to convert this combination in a certain casenumber and this one then selects the FPGA File. Now is that I have inbounded various FPGA Bitfiles. If I composed them by the the "Up Cast function" to a universal reference then there will disappear some elements by using the Read / Write Control .
    I have a picture attached that this Clarifies!
    The first two R / W Controller have been up before the cast and the third upcast diverted after.
    I hope you can help me!
    thank you in advance before
    MaJahn

    Even now I've noticed the function Invoce methode: Read TEDS is also no longer supported.
    Why?!
    The both VIs are exactly the same during the Modules in it are different.
    Iam using LabVIEW 2009 and the newest Drivers from the NI site!

  • Class cast exception when trying to get a control on the "Wave" mixer

    I am trying to get a control over the level of the Wave mixer. I can get the master, but I need a bit finer control than that. I think I have one, and it compiles, but I get a classCast exception at runtime:
    volumeSearch:
    for (int i = 0; i < mixerInfo.length; i++)
        Mixer.Info info = mixerInfo;
    mixer = AudioSystem.getMixer(info);
    System.out.println("info.getName() = " + info.getName());
    if (mixer.isLineSupported(Port.Info.SPEAKER))
    System.out.println(info.getName() + " supports a speaker");
    lineOut = (Port) mixer.getLine(Port.Info.SPEAKER);
    lineOut.open();
    Control[] controls = lineOut.getControls();
    System.out.println("Supported controls on the speaker:");
    for (int j = 0; j < controls.length; j++)
    Control control = controls[j];
    System.out.println("\tcontrol.toString() = " + control.toString());
    System.out.println("\tcontrol.getType() = " + control.getType());
    if (control.getType().toString().contains("Wave") || control.getType().toString().contains("WAVE")||control.getType().toString().contains("wave")){
    volumeControl = (FloatControl)controls[j];
    break volumeSearch;
    I get the class cast exception when I try to get the control at :volumeControl = (FloatControl)controls[j];
    volumeControl is declared earlier in the class as a FloatControl.
    Any tips?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    Hey guys, thanks for replying to my post!
    Here's the rub: I am able to use the method you are describing, but it gives me control over the wrong mixer.
    On the main mixer, it gives me control over the "Master" volume, which means that in addition to the wave output, it also controls every other output simultaneously, such as the Mic output. I am trying to get control of the "Wave" output. When adjusting the Wave out, it only effects digital audio output, but leaves the analog outputs (like the Mic volume) alone.
    Now, when I call the complete method:
        private void initVolumeControl()
            Port lineOut;
            FloatControl vol;
            Mixer mixer;
            Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo();
            try
                volumeSearch:
                for (int i = 0; i < mixerInfo.length; i++)
                    Mixer.Info info = mixerInfo;
    mixer = AudioSystem.getMixer(info);
    System.out.println("info.getName() = " + info.getName());
    if (mixer.isLineSupported(Port.Info.SPEAKER))
    System.out.println(info.getName() + " supports a speaker");
    lineOut = (Port) mixer.getLine(Port.Info.SPEAKER);
    lineOut.open();
    At this point, if I wanted to control the master volume, I would get the volume control over
    the main mixer here
    by calling
    vol = (FloatControl) lineOut.getControl(FloatControl.Type.VOLUME);
    But the problem is that gives me control over the main, and not the wave volume.
    So, on the "lineOut", let's query it for all of the different controls available
    Control[] controls = lineOut.getControls();
    System.out.println("Supported controls on the speaker:");
    for (int j = 0; j < controls.length; j++)
    Control control = controls[j];
    System.out.println("\tcontrol.toString() = " + control.toString());
    System.out.println("\tcontrol.getType() = " + control.getType());
    if (control.getType().toString().contains("Wave") || control.getType().toString().contains("WAVE") || control.getType().toString().contains("wave"))
    volumeControl = (FloatControl)control;
    break volumeSearch;
    } catch (Exception e)
    System.err.println("There was an error while trying to get a volume control");
    e.printStackTrace();
    And my output from this is:info.getName() = Primary Sound Driver
    info.getName() = Realtek HD Audio output
    info.getName() = Primary Sound Capture Driver
    info.getName() = Realtek HD Audio Input
    info.getName() = Java Sound Audio Engine
    info.getName() = Port Realtek HD Audio output
    Port Realtek HD Audio output supports a speaker
    Speaker volume = 0.5000076
    Supported controls on the speaker:
    control.toString() = Volume with current value: 0.5000076 (range: 0.0 - 1.0)
    control.getType() = Volume
    control.toString() = Balance with current value: 3.0517345E-5 (range: -1.0 - 1.0)
    control.getType() = Balance
    control.toString() = Mute Control with current value: false
    control.getType() = Mute
    control.toString() = Wave Control containing Volume, Balance, and Mute Controls.
    control.getType() = Wave
    but I also get the exception:There was an error while trying to get a volume control
    java.lang.ClassCastException: com.sun.media.sound.PortMixer$CompCtrl
    at audiotools.AudioPlayer.initVolumeControl(AudioPlayer.java:236)
    at audiotools.AudioPlayer.<init>(AudioPlayer.java:102)
    at audiotools.AudioPlayer.getInstance(AudioPlayer.java:59)
    at gui.windowmanager.WindowManager.run(WindowManager.java:208)
    at java.lang.Thread.run(Thread.java:595)
    So, as you can see, when I query the line that supports SPEAKER, it says it has an additional item (Mixer? Line?) called "Wave Control" that also has it's own Volume, Balance and Mute controls.
    I need to get the Volume control associated with the "Wave", not the one associated with the "Master". The Master provides too general of a control on the system mixer.
    Edited by: J_Y_C on Oct 30, 2008 6:09 AM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Web controls 2.1 Fail with Specified Cast is not valid

    1) I loaded the 2.1 Beta .NET Webcontrols ..2) I removed the reference to the old Plumtree.WCFilter.dll from my project3) I added the new reference in its place4) I checked the GAC to see that WCLoader was the proper version5) Also noticed the reliance on J# redist 1.1 so I downloaded and installed this as well6) Any thoughts on why I am gettig invalid cast exception? When I access portlet in the portal it simply displays error, when I try to access portlet outside of portal I get cast exception.
    [InvalidCastException: Specified cast is not valid.] Com.Plumtree.Remote.Transformer.Config.WCConfig.Load(TextReader reader) Com.Plumtree.Remote.Transformer.Config.WCConfig.LoadAll(String confPath) Com.Plumtree.Remote.Transformer.PTTransformer.get_Config() Com.Plumtree.Remote.Transformer.PTTransformer.BeginRequestHandler(Object sender, EventArgs e) System.Web.SyncEventExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() +60 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +87
    Phil Orion | [email protected] | www.orionsmith.com

    I am still unable to get the 2.1 Webcontrols to work, can anyone provide some insight to overcoem the cast exception?.-There seem to be some additional configuration items in this release - Can anyone explain their purpose? -The installation also placed the image server files in the wrong location - I had to move them from the ptimages folder to the ptimages/RemoteGadgets

  • Date control Date in Edit page

    Hi All,
    I have one doubt, can any one suggest me... how to do?
    I have one share point date time control....in page how to retrive that date...like
    if it is textbox ,we will do in below like this
    txtDescription.Text = dt.Rows[0]["Description"].ToString();
    But We need in datetime control. i tried like this not working
    dtAvailable.  = dt.Rows[0]["RFP_x0020_Available_x0020_Date"].ToString();
    And also one more doubt..when we get text box data...textbox control it is showing in HTML Format
    like this
    <div class="ExternalClassF22987BED1694D5DBC1145E4F4BA1E55">C Description</div>
    Thanks in Advance...

    hi
    if column RFP_x0020_Available_x0020_Date in DataTable has DateTime value, then you may cast it directly to DateTime:
    (DateTime)dt.Rows[0]["RFP_x0020_Available_x0020_Date"];
    And then get string representation using necessary format string: dt.ToString("dd.MM.yyyy")
    About second issue: additional div is added by rich html editor used on your site. It is needed for displaying html formatting and in most cases it doesn't causes issues.
    Blog - http://sadomovalex.blogspot.com
    Dynamic CAML queries via C# - http://camlex.codeplex.com

  • Get selected values from Listbox control

    Hi All,
    I'm still new to SL so please bear with me.
    I have a ListBox being bound with some records from a DB.  Here's the xaml:
    <ListBox x:Name="lstClassSeries" SelectionMode="Multiple" DisplayMemberPath="Description" Grid.Row="11" Grid.Column="1"></ListBox>
    What I need is to get the values of the items that were selected and I can't seem to get it to work.  I've tried looping through the SelectedItems but there's no property for value or text.  I even tried to cast the item as a ListBoxItem but I
    get the following error:
    Unable to cast object of type 'UI.Silverlight.TransactionService.DTODropDown' to type 'System.Windows.Controls.ListBoxItem'.
    How can I get the values of the items selected?
    Thanks

    You're using windows forms style techniques with xaml.
    This is a bad idea.
    You ought to learn MVVM.
    You probably don't think you want to learn it, but trust me on this one.
    Learn MVVM as soon as you can.
    There's a selecteditems collection.
    You have to cast   to listboxitem, it has a content property which you cast to whatever you put in there originally.
    Here's a snippet.
    I have a class foo, load a bunch of them in.  Do stuff. Work out what's selected in the click event of a button.
    public class foo
    public int id {get;set;}
    public string description {get;set;}
    public partial class MainPage : UserControl
    public MainPage()
    InitializeComponent();
    lb.Items.Add(new ListBoxItem{Content=new foo{ id=1, description="a"}});
    lb.Items.Add(new ListBoxItem { Content = new foo { id = 2, description = "b" } });
    lb.Items.Add(new ListBoxItem { Content = new foo { id = 3, description = "c" } });
    private void Button_Click(object sender, RoutedEventArgs e)
    List<foo> selectedfoos = lb.SelectedItems.Cast<ListBoxItem>().Select(x=>x.Content as foo).ToList();
    Hope that helps.
    Recent Technet articles: Property List Editing;
    Dynamic XAML

  • Is there a way to add a column after a filled DataTable from SQL with the same rows?

    My problem is that not to add rows like filled by SQLDataAdapter at the same row in DataGridView. How to make that? I showed below the details with my code also a screen shot, which shows the rows differences from the origin one.
    I don't want to add an expression as column behave in my sql script to get what I need with query result. I don't want to obtain that way.
    using (SqlConnection c = new SqlConnection(ConnStrMSSQL))
    c.Open();
    // 2
    // Create new DataAdapter
    using (SqlDataAdapter a = new SqlDataAdapter("SELECT SIPNO, SERINO, TARIH FROM SNOHAREKETLER WHERE Cast(TARIH as DATE) BETWEEN '2015/03/20' AND '2015/03/20' AND (TEZNO = 'T23' OR TEZNO = 'T31') AND CIKTI is null", c))
    // 3
    // Use DataAdapter to fill DataTable
    DataTable t = new DataTable();
    a.Fill(t);
    t.Columns.Add("MyColumn", typeof(string));
    DataRow workRow;
    int iGetCount = t.Rows.Count;
    for (int i = 0; i <= iGetCount - 1; i++)
    workRow = t.NewRow();
    workRow["MyColumn"] = i;
    t.Rows.Add(workRow);
    dataGridView1.DataSource = t;

    The extra column isn't applied to only certain rows.  The columns of a table identify what data each row will contain.  Hence adding a column to the table automatically adds them to the rows.  What you're seeing is that all the initial rows
    aren't being assigned a value so they retain their default value of null.  Later you enumerate the rows of the existing table and call AddRow which adds new rows.  This isn't adding columns, but rows.
    To generate values for the existing rows you should ideally simply pass the data back from the database.  DT computed columns can be difficult to set up as it is limited to what it can do.  If you want to use a computed column on the Datatable
    itself then define the column as a computed column and every row will calculate its own value.
    DataTable data = GetData();
    //Add elapsed time column
    var col = new DataColumn("ElapsedTime", typeof(TimeSpan), "expr");
    data.Columns.Add(col);
    dataGridView1.DataSource = data;
    The issue you will run into however is that calculating a diff on DateTime doesn't work in a computed column as the expression doesn't support the necessary functions.  You can google for how people solved this if you are interested in alternatives. 
    Most people just tend to add the column and then hook into the various change events to update the value as needed.

  • Oracle Arrays and getVendorConnection API and Class Cast Exception

    I 've gone through various threads relating to the topic of Oracle Arrays and the getVendorConnecton API call to avoid the class Cast Exception.. i ve used all these but am still facing the problem...
    I would appreciate it if some one could resolve the following queries :
    I am using Weblogic 8.1 SP5 with oracle 8i
    1. I read that the need to use the getVendorConnection API to make pl/sql proc calls with oracle arrays from the WL Server wont be required to avoid classCastException...
    I tried to use the connection from the WL connection pool ..but it didnot work....I used the getVendorConnection API ..which also doesnot seem to work..
    I got the Heurisitc Hazard exception...I used the Oracle 9i driver ie ojdbc14.jar ...after this the exception is not coming but still the code doesnt seem to work...
    the snippet of the code is pasted below :
    ~~~~~~~~~~~~~~~~~~~~~~~code is : ~~~~~~~~~~~~~~~~~~~
    /*below :
    logicalCon is the Connection from the WL connection pool
    JDBCcon is the JDBC connection. */
    <div> try </div>
    <div>{ </div>
    <div>
    <b>vendorConn</b> = ((WLConnection)logicalCon).getVendorConnection();
    </div>
    <div>
    //Calling the procedure
    </div>
    <div>
    //java.util.Map childMap1 = JDBCcon.getTypeMap();
    </div>
    <div>
    java.util.Map childMap1 = <b>vendorConn</b>.getTypeMap();
    </div>
    <div>
    childMap1.put("SST_ROUTE_ENTRY", Class.forName("svm.stport.ejb.StaticRouteEntry"));
    </div>
    <div>
    //JDBCcon.setTypeMap(childMap1);
    <b>vendorConn</b>.setTypeMap(childMap1);
    </div>
    <div>
    // Create an oracle.sql.ARRAY object to hold the values
    </div>
    <div>
    /*oracle.sql.ArrayDescriptor arrayDesc1 = oracle.sql.ArrayDescriptor.createDescriptor("SST_ROUTE_ENTRY_ARR", JDBCcon); */
    </div>
    <div>
    oracle.sql.ArrayDescriptor arrayDesc1 =
    oracle.sql.ArrayDescriptor.createDescriptor("SST_ROUTE_ENTRY_ARR", <b>vendorConn</b>); // here if i use the JDBCcon it works perfectly.... <u>^%^%^%</u>
    </div>
    <div>
    code to fill in the sst route entry array....
    .....arrayValues1 */
    </div>
    <div>
    /* oracle.sql.ARRAY array1 = new oracle.sql.ARRAY(arrayDesc1, JDBCcon, arrayValues1); */
    </div>
    <div>
    oracle.sql.ARRAY array1 = new oracle.sql.ARRAY(arrayDesc1, <b>vendorConn</b>, arrayValues1);
    </div>
    <div>
    callStatement = logicalCon.prepareCall( "? = call procName(?, ?, ?)");
    </div>
    <div>
    /* ..code to set the ?s ie array1 */
    </div>
    <div>
    callStatement.execute();
    </div>
    <div>
    }catch(Exceptio e){
    </div>
    <div>
    }</div>
    <div>
    finally </div>
    </div>{</div>
    <div>System.out.println(" I ve come to finally"); </div>
    <div>}</div>
    <div>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~code snippet ends here ~~~~~~~~~~~~~~``
    </div>
    I have observed that the control immediately comes to the finally block after the call to the createDescriptor line above with <u>^%^%^%</u> in the comment. If i use the JDBCCon in this line...it works perfectly fine.
    Any pointers to where anything is getting wrong.
    I have jst set the vendorCon to null in the end of the file and not closed it. Subsequently i have closed the logicalCon. This has been mentioned in some of the thread in this forum also.
    Thanks,
    -jw

    Jatinder Wadhwa wrote:
    I 've gone through various threads relating to the topic of Oracle Arrays and the getVendorConnecton API call to avoid the class Cast Exception.. i ve used all these but am still facing the problem...
    I would appreciate it if some one could resolve the following queries :
    I am using Weblogic 8.1 SP5 with oracle 8i
    1. I read that the need to use the getVendorConnection API to make pl/sql proc calls with oracle arrays from the WL Server wont be required to avoid classCastException...
    I tried to use the connection from the WL connection pool ..but it didnot work....I used the getVendorConnection API ..which also doesnot seem to work..
    I got the Heurisitc Hazard exception...I used the Oracle 9i driver ie ojdbc14.jar ...after this the exception is not coming but still the code doesnt seem to work...
    the snippet of the code is pasted below :
    ~~~~~~~~~~~~~~~~~~~~~~~code is : ~~~~~~~~~~~~~~~~~~~Hi. Show me the whole exception and stacktrace if you do:
    try
    vendorConn = ((WLConnection)logicalCon).getVendorConnection();
    java.util.Map childMap1 = vendorConn.getTypeMap();
    childMap1.put("SST_ROUTE_ENTRY" Class.forName("svm.stport.ejb.StaticRouteEntry"));
    vendorConn.setTypeMap(childMap1);
    oracle.sql.ArrayDescriptor arrayDesc1 =
    oracle.sql.ArrayDescriptor.createDescriptor("SST_ROUTE_ENTRY_ARR",
    vendorConn);
    oracle.sql.ARRAY array1 = new oracle.sql.ARRAY(arrayDesc1, vendorConn, arrayValues1);
    callStatement = logicalCon.prepareCall( "? = call procName(? ? ?)");
    callStatement.execute();
    }catch(Exception e){
    e.printStackTrace();
    finally
    try{logicalCon.close();}catch(Exception ignore){}
    System.out.println(" I ve come to finally");
    /*below :
    logicalCon is the Connection from the WL connection pool
    JDBCcon is the JDBC connection. */
    <div> try </div>
    <div>{ </div>
    <div>
    <b>vendorConn</b> = ((WLConnection)logicalCon).getVendorConnection();
    </div>
    <div>
    //Calling the procedure
    </div>
    <div>
    //java.util.Map childMap1 = JDBCcon.getTypeMap();
    </div>
    <div>
    java.util.Map childMap1 = <b>vendorConn</b>.getTypeMap();
    </div>
    <div>
    childMap1.put("SST_ROUTE_ENTRY", Class.forName("svm.stport.ejb.StaticRouteEntry"));
    </div>
    <div>
    //JDBCcon.setTypeMap(childMap1);
    <b>vendorConn</b>.setTypeMap(childMap1);
    </div>
    <div>
    // Create an oracle.sql.ARRAY object to hold the values
    </div>
    <div>
    /*oracle.sql.ArrayDescriptor arrayDesc1 = oracle.sql.ArrayDescriptor.createDescriptor("SST_ROUTE_ENTRY_ARR", JDBCcon); */
    </div>
    <div>
    oracle.sql.ArrayDescriptor arrayDesc1 =
    oracle.sql.ArrayDescriptor.createDescriptor("SST_ROUTE_ENTRY_ARR", <b>vendorConn</b>); // here if i use the JDBCcon it works perfectly.... <u>^%^%^%</u>
    </div>
    <div>
    code to fill in the sst route entry array....
    .....arrayValues1 */
    </div>
    <div>
    /* oracle.sql.ARRAY array1 = new oracle.sql.ARRAY(arrayDesc1, JDBCcon, arrayValues1); */
    </div>
    <div>
    oracle.sql.ARRAY array1 = new oracle.sql.ARRAY(arrayDesc1, <b>vendorConn</b>, arrayValues1);
    </div>
    <div>
    callStatement = logicalCon.prepareCall( "? = call procName(?, ?, ?)");
    </div>
    <div>
    /* ..code to set the ?s ie array1 */
    </div>
    <div>
    callStatement.execute();
    </div>
    <div>
    }catch(Exceptio e){
    </div>
    <div>
    }</div>
    <div>
    finally </div>
    </div>{</div>
    <div>System.out.println(" I ve come to finally"); </div>
    <div>}</div>
    <div>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~code snippet ends here ~~~~~~~~~~~~~~``
    </div>
    I have observed that the control immediately comes to the finally block after the call to the createDescriptor line above with <u>^%^%^%</u> in the comment. If i use the JDBCCon in this line...it works perfectly fine.
    Any pointers to where anything is getting wrong.
    I have jst set the vendorCon to null in the end of the file and not closed it. Subsequently i have closed the logicalCon. This has been mentioned in some of the thread in this forum also.
    Thanks,
    -jw

  • Using commandLinks and commandButtons in dataTables

    I'm trying to create a page that displays data from a database and allows you to edit individual rows by clicking on either a commandButton or a commandLink within a dataTable that then takes you to another page where you can edit that particular row of the table.
    When using a commandButton, it works perfectly for all but the last entry in the table. But when the button in the last line is clicked, nothing happens at all, it does not seem to call the action listener and it does not perform the navigation based on the action. But with all the previous buttons it calls the actionListener and navigates perfectly. Can anyone tell me why this would be? The code is as follows:
    <h:dataTable value="#{Categories.categories}" var="category" >
    <h:column>
    <f:facet name="header"><h:outputText value="#{msgs.deptColumnHead}"/></f:facet>
    <h:outputText value="#{category.departmentName}"/>
    </h:column>
    <h:column>
    <f:facet name="header"><h:outputText value="#{msgs.categoriesColumnHead}"/></f:facet>
    <h:outputText value="#{category.categoriesList}"/>
    </h:column>
    <h:column>
    <h:form>
    <h:inputHidden id="dept" value="#{category.departmentId}"/>
    <h:commandButton id="editButton" action="EditCat" actionListener="#{Categories.editListener}" value="{msgs.editSelectedButtonText}"/>
    </h:form>
    </h:column>
    </h:dataTable>
    When using commandLinks, only the first one works (of 4). For the other 3 the page goes into error when the link is clicked and it complains that 'document.forms._id2:3:_id10._id2:3:_id10:idcl is null or not an object'. If anyone could tell me what is wrong with my code, i would be most appreciative.
    <h:dataTable value="#{Categories.categories}" var="category" >
    <h:column>
    <f:facet name="header"><h:outputText value="#{msgs.deptColumnHead}"/></f:facet>
    <h:outputText value="#{category.departmentName}"/>
    </h:column>
    <h:column>
    <f:facet name="header"><h:outputText value="#{msgs.categoriesColumnHead}"/></f:facet>
    <h:outputText value="#{category.categoriesList}"/>
    </h:column>
    <h:column>
    <h:form>
    <h:inputHidden id="dept" value="#{category.departmentId}"/>
    <h:commandLink action="EditCat" actionListener="#{Categories.editListener}">
    <h:outputText value="#{msgs.editSelectedButtonText}"/>
    </h:commandLink>
    </h:form>
    </h:column>
    </h:dataTable>

    1) I have had very odd behavior in JSF when ALL of the
    JSF elements on a page do not have an id attribute. If
    you do not assign an id then JSF will manufacture a
    unique id on the flag. Sometimes the unique id wasn't
    so unique and there were errors like you are seeing or
    just odd behavior on the form, buttons not generating
    events, or incorrect rendering, etc.
    By 'ALL' I mean output text, columns, anything that
    accepts an id attribute. Don't trust the code to
    generate an id correctly for you.Just want it known that while this may be necessary in the short-term to work around bugs, this is definitely not the intent of the EG! We don't want people getting in the habit of
    Also note that this behavior is not consistent
    sometimes it would not appear on a page unless the
    page was updated and more controls added to it.Ah, well that is a known issue; while developing a page, the Sun RI can have problems if you change a page's contents between two submissions. (It doesn't pick up that the .jsp has changed.) I'd recommend:
    - Use client-side state saving.
    - Make sure you're making a new request for a page (not re-POST-ing anything!) when the page's contents have changed.
    If you follow both of those rules, then you should generally be able to get away without explicit IDs everywhere as you actively develop your page.
    Explicit IDs are required if you're inside <c:if>; this is known and documented.
    2) try putting the hidden input control in it's own
    columnNo, that'll give you a bonus set of <td> elements, which isn't what you want.
    -- Adam Winer (EG member)

Maybe you are looking for

  • B2B - Error While sending the document to GXS from Oracle B2B server.

    When I am trying to send the document to GXS, getting the following error. This message is show in the window that pops up when you click on Reports->WireMessage->Details of the Message. I am trying to find what is causing the issue. State ERROR Erro

  • G5 Dual 2.5GHz freezes with a very high pitch sound

    Hi My G5 Dual 2.5GHz freezes with a very high pitch sound from inside the comp. It happens occasionally after a few days of everything running smoothly. Someone can help ? PowerMac G5 Dual 2.5 GHz   Mac OS X (10.4.9)  

  • Navigation bar not visible in edit mode

    Hi, is there somebody who can help me out of this: in edit mode my navigation bar is not visible, however once the site is uploaded the bar is visible. During edit mode i can only see a big dot which positioned in the navigation bar text box. I am us

  • Where are pre-orders in ios6 in case I want to cancel?

    Can find a pre-order book in iBooks Purchases but can't cancel.  Can't even find a pre-ordered album, it is no longer located in Downloads.  Do not want a solution that needs a computer, as this feature existed in ios5.

  • DBIF_DSQL2_DEFAULT_CR_ERROR

    Hi All, While activating the DSO, Activation job failed with below message.. " ABAP/4 processor: DBIF_DSQL2_DEFAULT_CR_ERROR Job cancelled did anyone encountered such error in DSO activation..Please help.. Thanks, Raman