|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.ComponentModel;
using Harlinn.Common;
using Harlinn.DBTool.DataSources.Oracle.DB;
namespace Harlinn.DBTool.DataSources.Oracle
{
public class DBOracleTableConstraints : DBOracleElement
{
private static readonly log4net.ILog sfLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
private static void LogException(Exception exc, System.Reflection.MethodBase method)
{
Logger.LogException(sfLog, exc, method);
}
public DBOracleTableConstraints()
{
}
public DBOracleTableConstraints(DBOracleTable parent)
: base(parent, "Constraints")
{
}
[Browsable(false)]
public DBOracleTable Table
{
get
{
DBOracleTable result = (DBOracleTable)Parent;
return result;
}
}
[Browsable(false)]
public DBOracleTableConstraint this[string name]
{
get
{
DBOracleTableConstraint result = GetChildByName<DBOracleTableConstraint>(name);
return result;
}
}
[Browsable(false)]
public DBOracleTableConstraint this[int index]
{
get
{
DBOracleTableConstraint result = (DBOracleTableConstraint)Children[index];
return result;
}
}
public override DBOracleElementType ElementType
{
get
{
return DBOracleElementType.UserTableConstraints;
}
}
public override void Refresh()
{
try
{
base.Refresh();
string userName = Parent.Parent.Parent.Parent.Name;
string tableName = Parent.Name;
ConstraintsReader reader = new ConstraintsReader(userName, tableName);
using (reader)
{
while (reader.Read())
{
if (reader.ConstraintType != "R")
{
DBOracleTableConstraint dbElement = new DBOracleTableConstraint(this, reader);
Children.Add(dbElement);
}
}
}
}
catch (Exception exc)
{
LogException(exc, MethodBase.GetCurrentMethod());
throw;
}
}
public DBOracleTableConstraint GetPrimaryKey()
{
DBOracleTableConstraint result = null;
foreach (DBOracleTableConstraint constraint in Children)
{
if (constraint.ConstraintType == "P")
{
result = constraint;
break;
}
}
return result;
}
public List<DBOracleTableConstraint> GetReferetialConstraints()
{
List<DBOracleTableConstraint> result = new List<DBOracleTableConstraint>();
foreach (DBOracleTableConstraint constraint in Children)
{
if (constraint.ConstraintType == "R")
{
result.Add(constraint);
}
}
return result;
}
public List<DBOracleTableConstraint> GetUniqueConstraints()
{
List<DBOracleTableConstraint> result = new List<DBOracleTableConstraint>();
foreach (DBOracleTableConstraint constraint in Children)
{
if (constraint.ConstraintType == "U")
{
result.Add(constraint);
}
}
return result;
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Chief Architect - Sea Surveillance AS.
Specializing in integrated operations and high performance computing solutions.
I’ve been fooling around with computers since the early eighties, I’ve even done work on CP/M and MP/M.
Wrote my first “real” program on a BBC micro model B based on a series in a magazine at that time. It was fun and I got hooked on this thing called programming ...
A few Highlights:
- High performance application server development
- Model Driven Architecture and Code generators
- Real-Time Distributed Solutions
- C, C++, C#, Java, TSQL, PL/SQL, Delphi, ActionScript, Perl, Rexx
- Microsoft SQL Server, Oracle RDBMS, IBM DB2, PostGreSQL
- AMQP, Apache qpid, RabbitMQ, Microsoft Message Queuing, IBM WebSphereMQ, Oracle TuxidoMQ
- Oracle WebLogic, IBM WebSphere
- Corba, COM, DCE, WCF
- AspenTech InfoPlus.21(IP21), OsiSoft PI
More information about what I do for a living can be found at:
harlinn.com or
LinkedIn
You can contact me at
espen@harlinn.no