But that's a problem I'm facing in Oracle. They don't have the concept of nested transactions so as soon as a COMMIT is issued, the transactions is commited and can leave the database in an inconsistent state.
example: A registration needs to add a person and a location, .... I could write a registration SP that call personInsert and locationInsert, but I never can call COMMIT in my lowlevel sp's because that will clear the transaction. Now if I want to call the lowlevel SP directly because I want to do some maintenance I have to handle my transaction using ADO transactions. I could pass in a COMMIT parameter to every store procedure, but now I have to rely on the client doing the right thing. Also if I'm connecting to Oracle using the Oracle OleDB provider (OraOleDB.Oracle) and it sees a commit or rollback it always seems to throw up. It just seems that COM+ transactions relieves this problem and gives me a consistent way to write components. Francis X. Knebels Merck Vaccine Division -----Original Message----- From: Francesco Sanfilippo [mailto:[EMAIL PROTECTED]] Sent: Friday, May 17, 2002 3:29 PM To: [EMAIL PROTECTED] Subject: Re: [DOTNET] OT: N-Tier Design When everything is broken down to this low-level functionality is it better to: (a) create a master sproc for each function, like UpdateCustomer(), which then EXECs other low-level sprocs, like UpdateCustomerTable() and InsertLocation() as needed. Call this sproc ONCE to do all the work from your .NET class. (b) create a method in a .NET class which does all the prelim and validation work and makes as many calls as needed to low-level objects which then shoot low-level commands (UpdateCustomer) to sprocs that do only one low-level operation (UpdateCustomerTable). Francesco >From: "Knebels, Francis" <[EMAIL PROTECTED]> >Reply-To: dotnet discussion <[EMAIL PROTECTED]> >To: [EMAIL PROTECTED] >Subject: Re: [DOTNET] OT: N-Tier Design >Date: Fri, 17 May 2002 11:31:11 -0400 > >How do you resolve transactions that span multiple table classes? Say a >registration need to insert a person and a location if one doesn't exist. >I've been reading the thread on "developing a middle tier" and from what I >got is that you can't use COM+ because it is too slow. I was looking at >doing just that. Low level classes that map to tables which would be >transaction required, but would enlist in transactions in more abstract >classes that would need multiple low-level classes. How are you >controlling >your transactions in this setup. I did the same thing for a small project >and had the store procedures (oracle) handle all the transactions for me. >I >would like to develop a more robust system. I think I need to buy the >Ewald >book. > >Francis X. Knebels >Merck Vaccine Division > > >-----Original Message----- >From: Francesco Sanfilippo [mailto:[EMAIL PROTECTED]] >Sent: Friday, May 17, 2002 11:20 AM >To: [EMAIL PROTECTED] >Subject: Re: [DOTNET] OT: N-Tier Design > > >I have built a DataAccess namespace which has the raw methods that touch >SQL >Server: > >ExecSPRetSC, ExecSPRetDT, ExecSPRetDS, ExecSPRetDR, etc. > >In my next level up, the BusinessLogic namespace, I have classes that are >modeled after tables in my database: > >DBCountry, DBBanner, DBPerson, DBEmailProfile, etc. > >The above classes contain simple methods such as: > >Insert, Update, Delete, SelectOne, SelectAll, GetRandomRow > >as well as more specialized methods one would expect to see. > >Francesco > > > > > > >From: "Rolls, Robert" <[EMAIL PROTECTED]> > >Reply-To: dotnet discussion <[EMAIL PROTECTED]> > >To: [EMAIL PROTECTED] > >Subject: [DOTNET] OT: N-Tier Design > >Date: Fri, 17 May 2002 14:21:20 +1000 > > > >how many of you guys have raw SQL in the business Business Logic layer - >or > >do you have coressponding functions in you Data Access Layer i.e > > > >UI->onClick()->BBL->GetCustomers()->DAL->ExecuteQuery( SQL ); > > > >or > > > >UI->onClick()->BBL->GetCustomers()->DAL->GetCustomers() > > > > > >Regards, > >Robert Rolls > > > > > >**********************************************************************" > >This correspondence is for the named person's use only. It may > >contain confidential or legally privileged information or both. " > >No confidentiality or privilege is waived or lost by any " > >mistransmission. If you receive this correspondence in error, please > >immediately delete it from your system and notify the sender. You > >must not disclose, copy or rely on any part of this correspondence > >if you are not the intended recipient. > > > >Any views expressed in this message are those of the individual sender, > >except where the sender expressly, and with authority, states them to > >be the views of Vodafone. > > > >This email has been checked for viruses. > >*************************************************************************** >******************* > > > >You can read messages from the DOTNET archive, unsubscribe from DOTNET, >or > >subscribe to other DevelopMentor lists at http://discuss.develop.com. > > > > >_________________________________________________________________ >Send and receive Hotmail on your mobile device: http://mobile.msn.com > >You can read messages from the DOTNET archive, unsubscribe from DOTNET, or >subscribe to other DevelopMentor lists at http://discuss.develop.com. > >--------------------------------------------------------------------------- --- >Notice: This e-mail message, together with any attachments, contains >information of Merck & Co., Inc. (Whitehouse Station, New Jersey, USA) that >may be confidential, proprietary copyrighted and/or legally privileged, and >is intended solely for the use of the individual or entity named on this >message. If you are not the intended recipient, and have received this >message in error, please immediately return this by e-mail and then delete >it. > >=========================================================================== === > >You can read messages from the DOTNET archive, unsubscribe from DOTNET, or >subscribe to other DevelopMentor lists at http://discuss.develop.com. _________________________________________________________________ Chat with friends online, try MSN Messenger: http://messenger.msn.com You can read messages from the DOTNET archive, unsubscribe from DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com. ------------------------------------------------------------------------------ Notice: This e-mail message, together with any attachments, contains information of Merck & Co., Inc. (Whitehouse Station, New Jersey, USA) that may be confidential, proprietary copyrighted and/or legally privileged, and is intended solely for the use of the individual or entity named on this message. If you are not the intended recipient, and have received this message in error, please immediately return this by e-mail and then delete it. ============================================================================== You can read messages from the DOTNET archive, unsubscribe from DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.