Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.databases.oracle    |    Overblown overpriced overengineered SHIT    |    2,288 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 2,071 of 2,288    |
|    arvee to All    |
|    "No size set for variable length data" O    |
|    07 Apr 05 16:22:34    |
   
   XPost: microsoft.public.dotnet.framework.adonet   
   From: nospam@spam.not   
      
   Hi - I'm updating an Oracle table with an empty string and getting the   
   error:   
      
   An unhandled exception of type 'System.Exception' occurred in   
   system.data.dll   
   Additional information: Parameter 'p1': No size set for variable length data   
   type: String.   
      
   The column is nullable and of type varchar2(50). I'm aware that I can store   
   DBNull.Value instead and Oracle won't complain, but, I was hoping to avoid   
   testing and converting for that condition. It seems the .NET class lib   
   should handle empty strings, no? There are times I'd like to throw the   
   dataset into a datagrid control and have the user have there way with it,   
   therefore, its not ideal to have to validate each string value on the   
   update.   
      
   Question 1: Is this a bug or am I doing something wrong?   
   Question 2: If its a bug, is there an elegant workaround?   
      
      
   Sample C# code is:   
      
   // create typed dataset (basic customer list: name, address, phone, etc.)   
   CustomerDS dsCustomer = new CustomerDS();   
      
   // create data adapter   
   OracleDataAdapter daCustomers = new OracleDataAdapter("SELECT * FROM   
   Customers", connectionString);   
      
   // use command builder to create update, insert and delete commands based on   
   select   
   OracleCommandBuilder cb = new OracleCommandBuilder(daCustomers);   
      
   // get some data   
   daCustomers.Fill(dsCustomer.CUSTOMERS)   
      
   // delete Middle Name, for example   
   dsCustomer.CUSTOMERS.Rows[0]["MIDDLE_NAME"] = "";   
      
   // store new dataset   
   daCustomers.Update(dsCustomer, "Customers");   
      
   // boom - get error (even though I put it in a try...catch block!)   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca