Skip to content

Instantly share code, notes, and snippets.

@espenrl
Last active May 22, 2017 08:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save espenrl/4c14fc86eea6a6473f14c3fa9e449f8e to your computer and use it in GitHub Desktop.
Save espenrl/4c14fc86eea6a6473f14c3fa9e449f8e to your computer and use it in GitHub Desktop.
dotConnect for Oracle - SDO_GEOMETRY
// register geometry UDTs with connection (must be open)
OracleType.GetObjectType("MDSYS.SDO_GEOMETRY", conn).UdtType = typeof(SdoGeometry);
OracleType.GetObjectType("MDSYS.SDO_POINT_TYPE", conn).UdtType = typeof(SdoPointType);
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace espenrl
{
using System;
using System.Data;
using Devart.Data.Oracle;
public class SdoGeometry : Devart.Data.Oracle.ICustomOracleObject {
private bool isNull;
private decimal sdoGtype;
private decimal? sdoSrid;
private SdoPointType sdoPoint;
private Devart.Data.Oracle.OracleArray sdoElemInfo;
private Devart.Data.Oracle.OracleArray sdoOrdinates;
public SdoGeometry() {
}
public SdoGeometry(Devart.Data.Oracle.OracleObject oraObject) {
this.isNull = oraObject.IsNull;
if (this.isNull) {
return;
}
object attributeValue;
attributeValue = oraObject["SDO_GTYPE"];
if ((attributeValue == System.DBNull.Value)) {
this.sdoGtype = decimal.Zero;
}
else {
this.sdoGtype = ((decimal)(attributeValue));
}
attributeValue = oraObject["SDO_SRID"];
if ((attributeValue == System.DBNull.Value)) {
this.sdoSrid = decimal.Zero;
}
else {
this.sdoSrid = ((decimal)(attributeValue));
}
attributeValue = oraObject["SDO_POINT"];
if ((attributeValue == System.DBNull.Value)) {
this.sdoPoint = null;
}
else {
this.sdoPoint = new SdoPointType(((OracleObject)(attributeValue)));
}
attributeValue = oraObject["SDO_ELEM_INFO"];
if ((attributeValue == System.DBNull.Value)) {
this.sdoElemInfo = null;
}
else {
this.sdoElemInfo = ((OracleArray)(((OracleArray)(attributeValue)).Clone()));
}
attributeValue = oraObject["SDO_ORDINATES"];
if ((attributeValue == System.DBNull.Value)) {
this.sdoOrdinates = null;
}
else {
this.sdoOrdinates = ((OracleArray)(((OracleArray)(attributeValue)).Clone()));
}
}
public bool IsNull {
get {
return this.isNull;
}
set {
this.isNull = value;
}
}
public decimal SdoGtype {
get {
return this.sdoGtype;
}
set {
this.sdoGtype = value;
}
}
public decimal? SdoSrid {
get {
return this.sdoSrid;
}
set {
this.sdoSrid = value;
}
}
public SdoPointType SdoPoint {
get {
return this.sdoPoint;
}
set {
this.sdoPoint = value;
}
}
public Devart.Data.Oracle.OracleArray SdoElemInfo {
get {
return this.sdoElemInfo;
}
set {
this.sdoElemInfo = value;
}
}
public Devart.Data.Oracle.OracleArray SdoOrdinates {
get {
return this.sdoOrdinates;
}
set {
this.sdoOrdinates = value;
}
}
public decimal GetDims(OracleConnection connection) {
OracleParameterCollection parameters = new Devart.Data.Oracle.OracleParameterCollection();
OracleParameter parameter;
parameter = new OracleParameter("RESULT", Devart.Data.Oracle.OracleDbType.Number);
parameter.Direction = System.Data.ParameterDirection.ReturnValue;
parameters.Add(parameter);
OracleObject.ExecuteMethod(this, connection, "MDSYS.SDO_GEOMETRY", "GET_DIMS", parameters);
if ((parameters["Result"].Value == System.DBNull.Value)) {
return decimal.Zero;
}
else {
return ((decimal)(parameters["Result"].Value));
}
}
public decimal GetGtype(OracleConnection connection) {
OracleParameterCollection parameters = new Devart.Data.Oracle.OracleParameterCollection();
OracleParameter parameter;
parameter = new OracleParameter("RESULT", Devart.Data.Oracle.OracleDbType.Number);
parameter.Direction = System.Data.ParameterDirection.ReturnValue;
parameters.Add(parameter);
OracleObject.ExecuteMethod(this, connection, "MDSYS.SDO_GEOMETRY", "GET_GTYPE", parameters);
if ((parameters["Result"].Value == System.DBNull.Value)) {
return decimal.Zero;
}
else {
return ((decimal)(parameters["Result"].Value));
}
}
public decimal GetLrsDim(OracleConnection connection) {
OracleParameterCollection parameters = new Devart.Data.Oracle.OracleParameterCollection();
OracleParameter parameter;
parameter = new OracleParameter("RESULT", Devart.Data.Oracle.OracleDbType.Number);
parameter.Direction = System.Data.ParameterDirection.ReturnValue;
parameters.Add(parameter);
OracleObject.ExecuteMethod(this, connection, "MDSYS.SDO_GEOMETRY", "GET_LRS_DIM", parameters);
if ((parameters["Result"].Value == System.DBNull.Value)) {
return decimal.Zero;
}
else {
return ((decimal)(parameters["Result"].Value));
}
}
public byte[] GetWkb(OracleConnection connection) {
OracleParameterCollection parameters = new Devart.Data.Oracle.OracleParameterCollection();
OracleParameter parameter;
parameter = new OracleParameter("RESULT", Devart.Data.Oracle.OracleDbType.Blob);
parameter.Direction = System.Data.ParameterDirection.ReturnValue;
parameters.Add(parameter);
OracleObject.ExecuteMethod(this, connection, "MDSYS.SDO_GEOMETRY", "GET_WKB", parameters);
if ((parameters["Result"].Value == System.DBNull.Value)) {
return null;
}
else {
return ((byte[])(parameters["Result"].Value));
}
}
public string GetWkt(OracleConnection connection) {
OracleParameterCollection parameters = new Devart.Data.Oracle.OracleParameterCollection();
OracleParameter parameter;
parameter = new OracleParameter("RESULT", Devart.Data.Oracle.OracleDbType.Clob);
parameter.Direction = System.Data.ParameterDirection.ReturnValue;
parameters.Add(parameter);
OracleObject.ExecuteMethod(this, connection, "MDSYS.SDO_GEOMETRY", "GET_WKT", parameters);
if ((parameters["Result"].Value == System.DBNull.Value)) {
return "";
}
else {
return ((string)(parameters["Result"].Value));
}
}
public decimal StCoorddim(OracleConnection connection) {
OracleParameterCollection parameters = new Devart.Data.Oracle.OracleParameterCollection();
OracleParameter parameter;
parameter = new OracleParameter("RESULT", Devart.Data.Oracle.OracleDbType.Number);
parameter.Direction = System.Data.ParameterDirection.ReturnValue;
parameters.Add(parameter);
OracleObject.ExecuteMethod(this, connection, "MDSYS.SDO_GEOMETRY", "ST_COORDDIM", parameters);
if ((parameters["Result"].Value == System.DBNull.Value)) {
return decimal.Zero;
}
else {
return ((decimal)(parameters["Result"].Value));
}
}
public decimal StIsvalid(OracleConnection connection) {
OracleParameterCollection parameters = new Devart.Data.Oracle.OracleParameterCollection();
OracleParameter parameter;
parameter = new OracleParameter("RESULT", Devart.Data.Oracle.OracleDbType.Number);
parameter.Direction = System.Data.ParameterDirection.ReturnValue;
parameters.Add(parameter);
OracleObject.ExecuteMethod(this, connection, "MDSYS.SDO_GEOMETRY", "ST_ISVALID", parameters);
if ((parameters["Result"].Value == System.DBNull.Value)) {
return decimal.Zero;
}
else {
return ((decimal)(parameters["Result"].Value));
}
}
public void FromOracleObject(Devart.Data.Oracle.NativeOracleObject oraObject) {
this.isNull = oraObject.IsNull;
if (this.isNull) {
return;
}
object attributeValue;
attributeValue = oraObject["SDO_GTYPE"];
if ((attributeValue == System.DBNull.Value)) {
this.sdoGtype = decimal.Zero;
}
else {
this.sdoGtype = ((decimal)(attributeValue));
}
attributeValue = oraObject["SDO_SRID"];
if ((attributeValue == System.DBNull.Value)) {
this.sdoSrid = decimal.Zero;
}
else {
this.sdoSrid = ((decimal)(attributeValue));
}
attributeValue = oraObject["SDO_POINT"];
if ((attributeValue == System.DBNull.Value)) {
this.sdoPoint = null;
}
else {
this.sdoPoint = new SdoPointType();
((ICustomOracleObject)(this.sdoPoint)).FromOracleObject(((NativeOracleObject)(attributeValue)));
}
attributeValue = oraObject["SDO_ELEM_INFO"];
if ((attributeValue == System.DBNull.Value)) {
this.sdoElemInfo = null;
}
else {
this.sdoElemInfo = new OracleArray(((NativeOracleArray)(attributeValue)).ObjectType);
((ICustomOracleArray)(this.sdoElemInfo)).FromOracleArray(((NativeOracleArray)(attributeValue)));
}
attributeValue = oraObject["SDO_ORDINATES"];
if ((attributeValue == System.DBNull.Value)) {
this.sdoOrdinates = null;
}
else {
this.sdoOrdinates = new OracleArray(((NativeOracleArray)(attributeValue)).ObjectType);
((ICustomOracleArray)(this.sdoOrdinates)).FromOracleArray(((NativeOracleArray)(attributeValue)));
}
}
public Devart.Data.Oracle.NativeOracleObject ToOracleObject(Devart.Data.Oracle.OracleConnection connection) {
NativeOracleObject oracleObjectOci;
oracleObjectOci = new NativeOracleObject("MDSYS.SDO_GEOMETRY", connection);
if (this.isNull) {
return oracleObjectOci;
}
oracleObjectOci["SDO_GTYPE"] = this.sdoGtype;
oracleObjectOci["SDO_SRID"] = this.sdoSrid;
if ((this.sdoPoint == null)) {
oracleObjectOci["SDO_POINT"] = null;
}
else {
oracleObjectOci["SDO_POINT"] = ((ICustomOracleObject)(this.sdoPoint)).ToOracleObject(connection);
}
if ((this.sdoElemInfo == null)) {
oracleObjectOci["SDO_ELEM_INFO"] = null;
}
else {
oracleObjectOci["SDO_ELEM_INFO"] = ((ICustomOracleArray)(this.sdoElemInfo)).ToOracleArray(connection);
}
if ((this.sdoOrdinates == null)) {
oracleObjectOci["SDO_ORDINATES"] = null;
}
else {
oracleObjectOci["SDO_ORDINATES"] = ((ICustomOracleArray)(this.sdoOrdinates)).ToOracleArray(connection);
}
return oracleObjectOci;
}
}
}
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace espenrl
{
using System;
using System.Data;
using Devart.Data.Oracle;
public class SdoPointType : Devart.Data.Oracle.ICustomOracleObject {
private bool isNull;
private decimal x;
private decimal y;
private decimal z;
public SdoPointType() {
}
public SdoPointType(Devart.Data.Oracle.OracleObject oraObject) {
this.isNull = oraObject.IsNull;
if (this.isNull) {
return;
}
object attributeValue;
attributeValue = oraObject["X"];
if ((attributeValue == System.DBNull.Value)) {
this.x = decimal.Zero;
}
else {
this.x = ((decimal)(attributeValue));
}
attributeValue = oraObject["Y"];
if ((attributeValue == System.DBNull.Value)) {
this.y = decimal.Zero;
}
else {
this.y = ((decimal)(attributeValue));
}
attributeValue = oraObject["Z"];
if ((attributeValue == System.DBNull.Value)) {
this.z = decimal.Zero;
}
else {
this.z = ((decimal)(attributeValue));
}
}
public bool IsNull {
get {
return this.isNull;
}
set {
this.isNull = value;
}
}
public decimal X {
get {
return this.x;
}
set {
this.x = value;
}
}
public decimal Y {
get {
return this.y;
}
set {
this.y = value;
}
}
public decimal Z {
get {
return this.z;
}
set {
this.z = value;
}
}
public void FromOracleObject(Devart.Data.Oracle.NativeOracleObject oraObject) {
this.isNull = oraObject.IsNull;
if (this.isNull) {
return;
}
object attributeValue;
attributeValue = oraObject["X"];
if ((attributeValue == System.DBNull.Value)) {
this.x = decimal.Zero;
}
else {
this.x = ((decimal)(attributeValue));
}
attributeValue = oraObject["Y"];
if ((attributeValue == System.DBNull.Value)) {
this.y = decimal.Zero;
}
else {
this.y = ((decimal)(attributeValue));
}
attributeValue = oraObject["Z"];
if ((attributeValue == System.DBNull.Value)) {
this.z = decimal.Zero;
}
else {
this.z = ((decimal)(attributeValue));
}
}
public Devart.Data.Oracle.NativeOracleObject ToOracleObject(Devart.Data.Oracle.OracleConnection connection) {
NativeOracleObject oracleObjectOci;
oracleObjectOci = new NativeOracleObject("MDSYS.SDO_POINT_TYPE", connection);
if (this.isNull) {
return oracleObjectOci;
}
oracleObjectOci["X"] = this.x;
oracleObjectOci["Y"] = this.y;
oracleObjectOci["Z"] = this.z;
return oracleObjectOci;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment