Can I use a struct pointer inside a struct?

System: Red Hat Linux Enterprise 4
BDB: 4.5.2.NC
Language: C
My data structure list below:
typedef struct a
int length;
float area;
}A;
typedef struct b
A * A1;
int others;
}B;
Because the length of array A1 is various, so I want to create at run time by malloc().
Codes list below:
B b1;
b1.A1 = (A*) malloc(sizeof(A)*n); /*n is set by parameter*/
for (int i = 0; i < n; i++)
b1.A1.length = x;
b1.A1.area = y;
memset(&Data, 0, sizeof(DBT));
Data.data = &b1;
Data.size = sizeof(B) + sizeof(A)*n;
ret = dbp->put(dbp, NULL, &Key, &Data, DB_NOOVERWRITE);
There was no error when putting data into BDB, but I can't get the data properly.
ret = dbp->get(dbp, NULL, &Key, &Data, 0);
B * b1;
b1 = (B*)(Data.data);
for (int j = 0; j < n; j++)
printf("%d, %dn", b1.A1[j].length, b1.A1[j].area);
Error appears when I access the item of array A1. : "Segementation fault"
I got the information from DB manual ''C Getting Started Guide: Chapter 3. Database Records". It's read from the very beginning:"They can therefore be used to store anything from simple primitive data to complex structures so long as the information you want to store resides in a single contiguous block of memory."
Does it mean that data.data can just be a block of memory? I mean that I have to specify the size of a char array (length of a string), etc.? Should not I use a dynamic size array? If could, how to do with it?

Hi Lesslie,
BDB stores data that is located at a specified address and of a particular size. Your data contains a field that points to dynamically allocated memory, meaning that data can be located in different, not necessarily contiguous, locations in the heap.
To resolve this the most efficient and easiest way is to pack your data into a single memory location (a buffer that can hold your data) and then store the data in that location (this is called marshalling).
So, you should pack the n structures of type A, and provide the Data DBT with the address of the buffer where they are marshaled and the size of the buffer holding the structures.
For more information consult the following section in the GSG guide for C on storing structures with pointers:
http://www.oracle.com/technology/documentation/berkeley-db/db/gsg/C/BerkeleyDB-Core-C-GSG.pdf
Regards,
Andrei

Similar Messages

  • Can i use a environment variable inside a *.sql file?

    Hello,
    I want to create a external table.
    So i am using the command
    create or replace directory abc as 'C:\folder'.... inside a sql file.
    Now i want the path "C:\folder" to be dynamic as i am using this path in many other places also inside the sql file.So i thought to create a environment variable and put this value there.I tried using as %PATH% but it gives error..... where %PATH%=C:\folder.
    Can i use a environment variable inside a *.sql file?
    But how to do that or is there any other way.
    Thanks
    Swapna
    Edited by: user11018268 on Feb 19, 2010 1:03 AM

    user11018268 wrote:
    Actually what i want is the path "C:\folder" is not fixed it can be anything which i may not know the user may decide it later. Not supported. A directory object refers to a specific physical location (directory/folder) on a file system. Not a path.
    You can work around it by (creating and) using a function (running under a super user schema with authid definer privs). The caller (e.g. schema scott ) calls it with a physical path. E.g. GetDirectoryObject( 'C:\folder\2010\feb\week4' ).
    This function determines if there is an existing directory object for the path. If not, it uses a wildcard search to determine if there are any directory objects for parents in the path (e.g. for C:\folder\2010\feb or C:\folder\2010 or C:\folder ).
    If it finds a directory object, it interrogates the data dictionary to determine if the caller, schema scott for example, has read/write access on that directory object. If it has, it creates a new directory object and grants the caller read/write access to it. The function then returns the name of the directory object to the caller.
    The caller thus do not deal directly with directory objects. The function returns the object name given a physical path as input. Also, only a single base directory needs to be created (e.g. for C:\folder ) and access granted to the schema on it. Any sub-directory in that base directory can now be dynamically accessed by the schema.

  • How can I use existing anchor point as a new one?

    Can anyone help?
    I'm tracing over a drawing, and I'm trying to use an existing anchor point as an anchor point for another curve. So, from c, I want to click and drag on anchor point b to make a new curve. If I click where b is, then I just delete b. Can I make b my initial anchor point so that I can use it to complete my tooth? When I get to the next teeth Ill have to do the same thing. Has anyone any ideas?

    > Each tooth should be a closed path.
    Why?
    > If I click where b is, then I just delete b.
    Ugh, turn off Auto Add/Delete Anchor Point and watch your rage levels instantly decrease. You can then put your final point anywhere you want, including smack dab on top of B.

  • Can't use the erase tool inside a Layer Mask

    Recently after updating Photoshop CC I noticed that I can no longer use the erase tool inside of a Layer Mask to add or remove areas from/to the mask. The paint brush tool still works inside the mask but the erase tool does not. Any ideas why?

    Make sure your foreground/background colors are set to BW. And, make sure your foreground color is set to the same color you want to erase from the Layer Mask: Black if you want to erase (turn white) the black part of the mask, White if you want to erase (turn black) the white part of the mask.

  • How can I use a public variable inside a CachedResultSet

    The public variable that I declared cannot be called inside the CachedResultSet class....
    Heres a part of the code:
         public String type;
         public String getType()
             return type;
         public void setType(String s)
             type = s;
         public CachedRowSet first_report(){
              try {
              String t=type;<<it cannot get the String type declared outside.....     
              Statement stmt = con.createStatement();
              String query = "select stock_code, shares_prices, new_shares, trans_date, prev_close from allTrans where name_broker='"+type+"' order by stock_code";
              ResultSet rs = stmt.executeQuery(query);
                CachedRowSetImpl crset = new CachedRowSetImpl();
                crset.populate(rs);
              rs.close();
              stmt.close();
              con.close();
              return crset;
               catch (Exception e)
              {   System.out.println(e.getMessage());
                  return null;
         }

    I am not getting any error but the value of String type is null when entering the CachedRowSet...I don't know why it is null and yet the String type can be used by other classes...Like the getType...
    Heres the code:
    import java.sql.*;
    import sun.jdbc.rowset.*;
    import com.sun.rowset.*;
    import javax.sql.rowset.CachedRowSet;
    public class views
          String url, uname, pwd;
          Connection con;
         public String type;
          public String hstock;
          public String hbroker;
         public String getType()
         {  System.out.println("get:"+type);
             return type;
              public void setType(String s)
             type = s;
         public views()
               try
               Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
               url = "jdbc:odbc:***";
               uname = "root";
               pwd = "yes";
               con = DriverManager.getConnection(url, uname, pwd);
               } catch (Exception e)
                    System.out.println(e.getMessage());
    public CachedRowSet first_report(){
              try {
              String t=type;
                System.out.println(t);
                System.out.println(type);     
              Statement stmt = con.createStatement();
              String query = "select stock_code, shares_prices, new_shares, trans_date, prev_close from allTrans where name_broker='"+type+"' order by stock_code";
              ResultSet rs = stmt.executeQuery(query);
                CachedRowSetImpl crset = new CachedRowSetImpl();
                crset.populate(rs);
              rs.close();
              stmt.close();
              con.close();
              return crset;
               catch (Exception e)
              {   System.out.println(e.getMessage());
                  return null;
         }

  • Can I use my bonus points to apply extra coverage to another person's Verizon account (not part of my account)?

    I received a Verizon email today stating that I could use 5,000 bonus points to purchase an additional 1GB of data for a month - wondering if I could use my points so that my daughter could take advantage of this extra data usage (since I don't need it)?

    If your daughter is on her own plan she can login and use her own rewards to get the 1gb bonus,

  • How can i use SpryHTMLPanel or SpryHTMLDataSet inside SprySlidingPanels?

    I am working on a web project using Adobe Spry. I have used SpryHTMLPanel to create the pages but one of the pages has too many contents increasing the filesize. I thought it is the best way calling an external html page inside the dynamic SlidingPanel to decrease the filesize since it is already a <DIV>. But i didn't manage it, the external page i called, always opens in a new blank page as a static <A> link. I guess there is a small trick to use showPanel() and loadContent() simultaneously for any onclick() event of any <A> link...
    <head>
    <link href="css/SprySlidingPanels.css" rel="stylesheet" type="text/css" />
    <link href="css/samples.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
    /* some extra css styling *>
    </style>
    <script type="text/javascript" src="js/SprySlidingPanels.js"></script>
    <script type="text/javascript" src="js/SpryHTMLPanel.js"></script>
    </head>
    <body>
    <a href="#" onclick="sp1.showPanel('p1'); return false;">p1</a> |
    <a href="#" onclick="sp1.showPanel('p2'); extpg.loadContent('extpg.html') return false;">p2</a> |
    <a href="#" onclick="sp1.showPanel('p3'); return false;">p3</a> |
    <hr />
    <div id="main" class="SlidingPanels" tabindex="0">
        <div class="SlidingPanelsContentGroup">
            <div id="p1" class="SlidingPanelsContent">Panel 1</div>
            <div id="p2" class="SlidingPanelsContent">Panel 2<br />
            <div class="liveSample" id="innerpg">
            <p>This is static content.</p>
            </div>
            <script type="text/javascript">
            var extpg = new Spry.Widget.HTMLPanel("innerpg",{evalScripts:true});
            </script>
            </div>
            <div id="p3" class="SlidingPanelsContent">Panel 3</div>
        </div>
        </div>
        <script type="text/javascript">
        var sp1 = new Spry.Widget.SlidingPanels('main');
        </script>
    </body>
    Thanks in advance!

    Woo! So fastly!!!
    I have just managed it by just a small change...
    <div id="main" class="SlidingPanels" tabindex="0">
        <div class="SlidingPanelsContentGroup">
            <div id="p1" class="SlidingPanelsContent">Panel 1</div>
            <div id="p2" class="SlidingPanelsContent">Panel 2<br />
            <div class="liveSample" id="innerpg">
            <p>This is static content.</p>
            </div>
            <script type="text/javascript">
            var extpg = new Spry.Widget.HTMLPanel("innerpg");
            </script>
            </div>
            <div id="p3" class="SlidingPanelsContent">Panel 3</div>
        </div>
        </div>
        <script type="text/javascript">
        var sp1 = new Spry.Widget.SlidingPanels('main',{evalScripts:true});
        </script>

  • Can you use a presentation widget inside a tab panel widget?

    http://www.armourcompanies.com/horse-stall-packages
    When I placed these, they initially looked fine but now the first menu/button is black?

    Hi,
    Are you referring to the Home button or the Sliding Door button ?
    Any ways both are looking good to me. Can you share a screen shot of what you see..??
    Regards,
    Abhishek Maurya

  • Can we use UCM web services inside BPEL?

    We want to call UCM webservices functions like getFile etc. but it is not same as calling a webservice which is not in ucm.ucm wants authorization(or sth. like that) from bpel.Can anyone help please?

    does this help :
    http://newsoalife.blogspot.com/2010/02/invoking-ucm-secured-web-services-in.html

  • How can I use my Html/CSS Navigation bar to control an Edge Stage?

    I have an HTML/CSS navigation bar set up in my EDGE created page. The Navbar is not created in edge. I would like to use these buttons to control the stage. 
    Inside the stage the main timeline has labels and stop actions every 1.5 secs to create a horizontally sliding site.
    The labels are as follows: home, work, blog, profile, and contact. I can easily use a symbol created inside edge for example:
    sym.play("home");
    and animate a 6000px width symbol across my 1000px stage in 1000px increments.
    I do not want to use a symbol inside of edge to do this because I cannot create the effect that the html/css navbar has on mouseover inside of edge.
    So I am interested in knowing if I can use this bar to control my main timeline so I don't have to sacrifice design for functionality.
    currently the link list is setup with the standard hyperlink. What code would I use to play the stage on click of the html navbar?
    Many thanks to anyone who can help with this!
    Here is the code for the navbar:
    <div id="menu"><ul class="block-menu">
                        <li><a href="/home" class="three-d">
                                  Dynamic
                                  <span class="three-d-box"><span class="front">Dynamic</span><span class="back">Artisans</span></span>
                        </a></li>
                        <li><a href="/demos" class="three-d">
                                  Work
                                  <span class="three-d-box"><span class="front">Work</span><span class="back">Work</span></span>
                        </a></li>
                        <li><a href="/deals" class="three-d">
                                  Blog
                                  <span class="three-d-box"><span class="front">Blog</span><span class="back">Blog</span></span>
                        </a></li>
                        <li><a href="/about" class="three-d">
                                  Profile
                                  <span class="three-d-box"><span class="front">Profile</span><span class="back">Profile</span></span>
                        </a></li>
            <li><a href="/about" class="three-d">
                                  Contact
                                  <span class="three-d-box"><span class="front">Contact</span><span class="back">Contact</span></span>
                        </a></li>
              </ul>
    <span class="block-menu"></span></div>
    Full HTML:
    <!DOCTYPE html>
    <html>
    <head>
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
              <meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
              <title>Untitled</title>
    <!--Adobe Edge Runtime-->
        <script type="text/javascript" charset="utf-8" src="workapp_edgePreload.js"></script>
        <style>
            .edgeLoad-EDGE-57204389 { visibility:hidden; }
                  .block-menu {
                                  display: block;
                                  background: #000;
                        .block-menu li {
                                  display: inline-block;
                        .block-menu li a {
                                  color: #fff;
                                  display: block;
                                  text-decoration: none;
                                  font-family: 'Passion One',Arial,sans-serif;
                                  -webkit-font-smoothing: antialiased;
                                  -moz-font-smoothing: antialiased;
                                  font-smoothing: antialiased;
                                  text-transform: uppercase;
                                  overflow: visible;
                                  line-height: 20px;
                                  font-size: 24px;
                                  padding: 15px 10px;
                        /* animation domination */
                        .three-d {
                                  -webkit-perspective: 200px;
                                  -moz-perspective: 200px;
                                  perspective: 200px;
                                  -webkit-transition: all .07s linear;
                                  -moz-transition: all .07s linear;
                                  transition: all .07s linear;
                                  position: relative;
                                  .three-d:not(.active):hover {
                                            cursor: pointer;
                                  .three-d:not(.active):hover .three-d-box,
                                  .three-d:not(.active):focus .three-d-box {
                                            -moz-transform: translateZ(-25px) rotateX(90deg);
                                            -webkit-transform: translateZ(-25px) rotateX(90deg);
                                            -o-transform: translateZ(-25px) rotateX(90deg);
                                            transform: translateZ(-25px) rotateX(90deg);
                        .three-d-box {
                                  -webkit-transition: all .3s ease-out;
                                  -moz-transition: all .3s ease-out;
                                  -ms-transition: all .3s ease-out;
                                  -o-transition: all .3s ease-out;
                                  transition: all .3s ease-out;
                                  -webkit-transform: translatez(-25px);
                                  -moz-transform: translatez(-25px);
                                  -o-transform: translatez(-25px);
                                  transform: translatez(-25px);
                                  -webkit-transform-style: preserve-3d;
                                  -moz-transform-style: preserve-3d;
                                  -ms-transform-style: preserve-3d;
                                  -o-transform-style: preserve-3d;
                                  transform-style: preserve-3d;
                                  pointer-events: none;
                                  position: absolute;
                                  top: 0;
                                  left: 0;
                                  display: block;
                                  width: 100%;
                                  height: 100%;
                        .front {
                                  -webkit-transform: rotatex(0deg) translatez(25px);
                                  -moz-transform: rotatex(0deg) translatez(25px);
                                  -o-transform: rotatex(0deg) translatez(25px);
                                  transform: rotatex(0deg) translatez(25px);
                        .back {
                                  -webkit-transform: rotatex(-90deg) translatez(25px);
                                  -moz-transform: rotatex(-90deg) translatez(25px);
                                  -o-transform: rotatex(-90deg) translatez(25px);
                                  transform: rotatex(-90deg) translatez(25px);
                                  color: #FFE7C4;
                        .front, .back {
                                  display: block;
                                  width: 100%;
                                  height: 100%;
                                  position: absolute;
                                  top: 0;
                                  left: 0;
                                  background: black;
                                  padding: 15px 10px;
                                  color: white;
                                  pointer-events: none;
                                  -moz-box-sizing: border-box;
                                  box-sizing: border-box;
        </style>
    <!--Adobe Edge Runtime End-->
    </head>
    <body>
    <div id="menu"><ul class="block-menu">
                        <li><a href="/home" class="three-d">
                                  Dynamic
                                  <span class="three-d-box"><span class="front">Dynamic</span><span class="back">Artisans</span></span>
                        </a></li>
                        <li><a href="/demos" class="three-d">
                                  Work
                                  <span class="three-d-box"><span class="front">Work</span><span class="back">Work</span></span>
                        </a></li>
                        <li><a href="/deals" class="three-d">
                                  Blog
                                  <span class="three-d-box"><span class="front">Blog</span><span class="back">Blog</span></span>
                        </a></li>
                        <li><a href="/about" class="three-d">
                                  Profile
                                  <span class="three-d-box"><span class="front">Profile</span><span class="back">Profile</span></span>
                        </a></li>
            <li><a href="/about" class="three-d">
                                  Contact
                                  <span class="three-d-box"><span class="front">Contact</span><span class="back">Contact</span></span>
                        </a></li>
              </ul>
    <span class="block-menu"></span></div>
    <div  id="Stage" class="EDGE-57204389">
    </div>
    </body>
    </html>

    I've come across this from the Edge API:
    Edge.getComposition(compId)
    Anyone having trouble with this same issue should try this:
    var targetComp = AdobeEdge.getComposition('TARGETCOMPID');
       targetComp.getStage().play();
    in their trigger or event handler.
    How I got it to work:
    <li><a href="javascript:var targetComp = AdobeEdge.getComposition('EDGE-57204389');
       targetComp.getStage().play();" class="three-d">
                                  Dynamic
                                  <span class="three-d-box"><span class="front">Dynamic</span><span class="back">Artisans</span></span>
                        </a></li>

  • Use a package function inside a select of the same package

    Hi.
    How can i use a function defined inside a package, with a select used inside that same package ?
    Example
    ... package example
    CREATE OR REPLACE PACKAGE BODY pkg_example
    AS
         FUNCTION sum_two_values(p_val1 NUMBER,p_val2 NUMBER) RETURN NUMBER
         IS
         BEGIN
         RETURN p_val1 + p_val2;
         END sum_two_values;
         FUNCTION use_another_function_example RETURN VARCHAR2
         IS
         v_value NUMBER;
         BEGIN
         SELECT sum_two_values(2,2) INTO v_value FROM dual;
         RETURN 'waaaazzzzupppppp'
         END use_another_function_example;
    END pkg_example;
    This will not work
    -- SELECT sum_two_values(2,2) INTO v_value FROM dual;
    How can i call a function inside a select statement, a function of the same package where the query is being called.
    (i have Oracle 9.2x)
    Cheers.

    are you sure? you are not using package1, you are using pack1
    SQL> CREATE OR REPLACE PACKAGE package1
      2  IS
      3     FUNCTION f1
      4        RETURN NUMBER;
      5 
      6     FUNCTION f2
      7        RETURN NUMBER;
      8  END;
      9  /
    Package created.
    SQL> CREATE OR REPLACE PACKAGE BODY package1
      2  IS
      3     a   NUMBER;
      4 
      5     FUNCTION f1
      6        RETURN NUMBER
      7     IS
      8     BEGIN
      9        RETURN 1;
    10     END;
    11 
    12     FUNCTION f2
    13        RETURN NUMBER
    14     IS
    15     BEGIN
    16        SELECT package1.f1
    17          INTO a
    18          FROM DUAL;
    19 
    20        RETURN a;
    21     END;
    22  END;
    23  /
    Package body created.
    Why not just this
    SQL> ed
    Wrote file afiedt.buf
      1  CREATE OR REPLACE PACKAGE BODY package1
      2  IS
      3     a   NUMBER;
      4     FUNCTION f1
      5        RETURN NUMBER
      6     IS
      7     BEGIN
      8        RETURN 1;
      9     END;
    10     FUNCTION f2
    11        RETURN NUMBER
    12     IS
    13     BEGIN
    14        a:= f1;
    15 RETURN a;
    16     END;
    17* END;
    SQL> /
    Package body created.formatted
    Message was edited by:
    devmiral

  • Extproc: DLL function requires struct pointer, howto ?

    Hi there !
    Does anybody know if and how it's possible to pass
    a struct pointer like
    typedef struct _NETRESOURCE {
    DWORD dwScope;
    DWORD dwType;
    DWORD dwDisplayType;
    DWORD dwUsage;
    LPTSTR lpLocalName;
    LPTSTR lpRemoteName;
    LPTSTR lpComment;
    LPTSTR lpProvider;
    } NETRESOURCE;
    to an external DLL function ? Currently i've created
    a wrapper DLL which accepts ordinary datatypes and fills
    the struct properly. But i would like to have a more
    'generic' way to use DLLs.
    Any Ideas ??? Thanks in advance !

    Hi!
    I am also in need of the solution to this, but could not get it right yet!
    Would you perhaps share your current solution (writing the wrapper) with me?....
    I will keep you posted if I find a way of using ora_ffi with a C Struct
    Bye!

  • If we use DML statement in function then that function can be used inside s

    if we use DML statement in function then that function can be used inside select query or any DML query?

    select f from t2;I think you meant to query t1.
    It works if the function is an autonomous transaction:
    create or replace function f return number
    is
    PRAGMA AUTONOMOUS_TRANSACTION;
    begin
        update t1 set c=2;
        commit;
        return 1;
    end;
    select f from t1But as Billy said why would you want to do DML this way. And this is not the way autonomous procedures should be used either.
    An an answer to an interview question though nothing wrong with it.

  • How do we use if statement in labview?moreover can i use if statement inside for loop?

    how do we use if statement in labview?moreover can i use if statement inside for loop?

    The if statement in LabVIEW is the Case structure. You can find that on the Structures palette right next to the For Loop. If you're still on the same subject about terminating a for loop early, then what you do is enclose your functions inside the loop with a case statment and make one of the case's empty except for one or more constants that you might have to wire. Hopefully, the attached picture will explain what I mean. Also, as I mentioned in one of your other posts, I think this technique is not as good as using a while loop. The array in the attached example is the same size no matter what and you may have to handle stripping extra or invalid elements.
    Attachments:
    For_Loop_with_Case.jpg ‏21 KB

  • I am locked out of my account and can't use my Best Buy points

    Hi,
    I am an Elite Plus customer and really upset with Best Buy as they decided to lock me out of my account due to an audit and I can't use in inspite of having $2000 in my account that I bank. I called Best Buy 3 days ago after receiving an email that my account had been updated and they decidid to do an audit and lock my account without informing me. I keep getting "check in 24hrs" message since 3 days and it doesn't let me issues certificates. I found out after calling Reward Zone that my account was updated as I was re-enrolled in the Elite Plus program. I keep getting a response from Reward Zone that corporate is auditing my account for fraudulent activity. While I appreciate that, I don't expect them to shut me off my account for more than 3 days when I need to purchased items using my $2000 worth of banked points. This is RIDICULOUS and noone from Reward Zone wants to take ownership of this issue. I just spoke to the manager named Kenya Case ID: {edited per forum guidelines} and all she did was directed me to the website and asked me to email corporate. This is complete NONSENSE and expect a professional company like Best Buy to figure out their processes and not shut out customers from their program without informing them. I am hoping that someone from the right department can pick this up and resolve this issue as I need to purchase items this weekend and am sick of seeing the "check back in 24 hrs" error.
    I am a loyal customer of Best Buy but things like this makes me reconsider my decision of buying things from Best Buy again.

    Good afternoon VJ, and thank you for your patience,
    I would like to discuss your My Best Buy™ account with you, so I will be sending you a private message.  To check your private messages, please make sure you are logged into the forum and click on the yellow envelope icon located at the top of the screen.
    Warm Regards,
    Derek|Social Media Specialist | Best Buy® Corporate
     Private Message

Maybe you are looking for

  • How do I install "Apple Mobile Device", how do I install "Apple Mobile Device"

    I am trying to move my iPod library (all CD's I have downloaded to iPod) to my iphone but it is telling me "iphone cannot be used because the Apple Mobile Device is not installed"  yet there are no instructions on how to do that.  No icon appears whe

  • Ipod Mini Song Problem

    I have a song that plays perfectly fine in Itunes. Once on my ipod, it plays for about 20 seconds, then skips to the next song. If you try to "fast forward" through it, the whole song is blank. I've already tried deleting the song and resetting my ip

  • Older Software Question

    I have some older software (Creative Suite Premier from 2006).  I have been using it without issue for the most part but am now looking to either load it onto a new computer or upgrade to a cloud version.  Is my only option to sign up as a new custom

  • SATA Raptor HD in a Quicksilver 2002

    The speed and reported reliability of the WD Raptor is hard to beat. Since installation in G4 requires a PCI adapter card and the PCI slots are only 33MHz, would a Raptor actually be able to shine in my quicksilver in terms of speed... drive reliabil

  • Page flow consistency

    I have a case where the screen has two dropdownlist boxes bound to a database table. Each of the dropdowns is set up to populate a list box underneth them that show detail for the item selected in the drop down. This is done in the value change metho