Why am I getting ForeignKeyConstraint requires child key value error?

D

dbuchanan

Hello,

Here is the error message;
----------------------------
Exception Message:

ForeignKeyConstraint Lkp_tbl040Cmpt_lkp302SensorType requires the child
key values (5) to exist in the parent table.
----------------------------

I am encountering this error when I try to insert records into table
'tbl040Cmpt' using the DataSet1.Tables("Table").Rows.Add(row)

The relevant data structure goes like this the table 'tbl040Cmpt'
contains a field that stores the value from lookup table
'lkp302SensorType'.


Here is the relationship that exists in the Dataset;
\\
Me.Relations.Add("Lkp_tbl040Cmpt_lkp302SensorType",
Me.Tables("lkp302SensorType").Columns("pkSensorTypeId"),
Me.Tables("tbl040Cmpt").Columns("cmSmallint06"))
//


Here is the 'lkp302SensorType' lookup table;
\\
CREATE TABLE [lkp302SensorType] (
[pkSensorTypeId] [smallint] IDENTITY (1, 1) NOT NULL ,
[SensorType] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL ,
[Ord] [tinyint] NOT NULL CONSTRAINT [DF_lkp302SensorType_Ord] DEFAULT
(0),
[Hide] [bit] NOT NULL CONSTRAINT [DF_lkp302SensorType_Hide] DEFAULT
(0),
CONSTRAINT [PK_lkp302SensorType] PRIMARY KEY CLUSTERED
(
[pkSensorTypeId]
) WITH FILLFACTOR = 90 ON [PRIMARY]
) ON [PRIMARY]
GO
//


Here are table 'tbl040Cmpt'
\\
CREATE TABLE [tbl040Cmpt] (
[pkComponentId] [char] (36) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL CONSTRAINT [DF_tbl040Cmpt_pkComponentId] DEFAULT (newid()),
[fkDevice] [char] (36) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[fkComponentType] [int] NOT NULL ,
[ComponentDescription] [varchar] (100) COLLATE
SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[QuanSharingConfiguration] [tinyint] NOT NULL ,
[QuanConfigured] [tinyint] NOT NULL CONSTRAINT
[DF_tbl040Cmpt_QuanConfigured] DEFAULT (0),
[QuanActuations] [tinyint] NOT NULL CONSTRAINT
[DF_tbl040Cmpt_QuanActuations] DEFAULT (1),
[cmVarchar01] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[cmVarchar02] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[cmVarchar03] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[cmVarchar04] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[cmVarchar05] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[cmVarchar06] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[cmNumeric01] [numeric](5, 3) NULL ,
[cmNumeric02] [numeric](5, 3) NULL ,
[cmNumeric03] [numeric](5, 3) NULL ,
[cmNumeric04] [numeric](5, 3) NULL ,
[cmNumeric05] [numeric](5, 3) NULL ,
[cmNumeric06] [numeric](5, 3) NULL ,
[cmNumeric07] [numeric](5, 3) NULL ,
[cmBit01] [bit] NULL ,
[cmBit02] [bit] NULL ,
[cmBit03] [bit] NULL ,
[cmBit04] [bit] NULL ,
[cmBit05] [bit] NULL ,
[cmBit06] [bit] NULL ,
[cmBit07] [bit] NULL ,
[cmBit08] [bit] NULL ,
[cmBit09] [bit] NULL ,
[cmBit10] [bit] NULL ,
[cmBit11] [bit] NULL ,
[cmSmallint01] [smallint] NULL ,
[cmSmallint02] [smallint] NULL ,
[cmSmallint03] [smallint] NULL ,
[cmSmallint04] [smallint] NULL ,
[cmSmallint05] [smallint] NULL ,
[cmSmallint06] [smallint] NULL ,
[cmSmallint07] [smallint] NULL ,
[cmSmallint08] [smallint] NULL ,
[cmTinyint01] [tinyint] NULL ,
[SooOrder] [numeric](5, 3) NULL ,
[SooPrecedent] [numeric](5, 3) NULL ,
[SooDelay] [numeric](5, 3) NULL ,
[SooNote] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[cmUserNote] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL ,
[cmCreatedOn] [smalldatetime] NOT NULL ,
[cmCreatedBy] [varchar] (25) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL ,
[cmEditedOn] [smalldatetime] NOT NULL ,
[cmEditedBy] [varchar] (25) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL ,
[cmrowversion] [timestamp] NOT NULL ,
CONSTRAINT [PK_tbl040Cmpt] PRIMARY KEY CLUSTERED
(
[pkComponentId]
) WITH FILLFACTOR = 90 ON [PRIMARY] ,
CONSTRAINT [FK_tbl040Cmpt_lkp202ComponentType] FOREIGN KEY
(
[fkComponentType]
) REFERENCES [lkp202ComponentType] (
[pkComponentTypeId]
),
CONSTRAINT [FK_tbl040Cmpt_tbl030Devi] FOREIGN KEY
(
[fkDevice]
) REFERENCES [tbl030Devi] (
[pkDeviceId]
) ON DELETE CASCADE NOT FOR REPLICATION
) ON [PRIMARY]
GO
//

Here is selected code that causes the error'
\\
Private Sub InsertCylnSensor(ByVal s As String)
'Create a data row (collection of fields)
Dim row As DataRow = _dataSet1.Tables(_currentTable).NewRow
'MessageBox.Show("Insert is called for: " & s)

Try
' Data entered automatically
row("pkComponentId") = Guid.NewGuid.ToString
'row("fkDevice") = _pkDeviceIdForFkAndParameter
row("fkDevice") = f030Devi._pkDeviceIdForFkAndParameter
row("fkComponentType") = 7 'Motion sensor
' ClipDriver -
Clip Driver_1 Sensor_1 _ A(??)
row("ComponentDescription") = _
Me.txtComponentDescription.Text.ToString & _
" - " & _componentTypeNameForTitleAndCmptDescrip & "_" & s

row("QuanSharingConfiguration") = 1
row("QuanConfigured") = "0" 'This will be populated
OnSave after user enters data
'TODO - f041Cyln - InsertCylnSensor - QuanActuations -
'Propagate this on to the sensors ~ is this really necessary
row("QuanActuations") = _quanOfComponentActuations
'Propagate this on to the sensors

'TODO - f041Cyln - InsertCylnSensor - row("cmVarchar04") =
"On"
row("cmVarchar04") = "On"
row("cmVarchar06") = _pkCmptIdOfParentForSensorAndParameter

'Give all other positions a FALSE value and only the proper
position a TRUE value
' This allows proper filtering
row("cmBit01") = False 'B
row("cmBit02") = False 'D
row("cmBit04") = False 'C
row("cmBit05") = False 'A

Select Case s
Case "B"
row("cmBit01") = True 'B
Case "D"
row("cmBit02") = True 'D
Case "C"
row("cmBit04") = True 'C
Case "A"
row("cmBit05") = True 'A
End Select

row("cmBit06") = True 'PNP NON
row("cmBit07") = True 'is Motion sensor

row("cmSmallint01") = 1
'Me.cboSensorVoltage.NSelectedValue ~ (1 = 24 volt)
'cmSmallint02
'cmSmallint03
'cmSmallint04
'cmSmallint05
row("cmSmallint06") = 5 'Me.cboSensorType.NSelectedValue
~ (5 = Hall effect)
'cmSmallint07
row("cmSmallint08") = 2
'Me.cboSensorConnection.NSelectedValue ~ (2 = Micro)

row("cmUserNote") = ""
row("cmCreatedOn") = Now.ToString
row("cmCreatedBy") = SystemInformation.UserName.ToString
row("cmEditedOn") = Now.ToString
row("cmEditedBy") = SystemInformation.UserName.ToString

' The following data is entered by the user - later
'row("cmVarchar01") = ucase(Me.txtSensorIOAddress.Text)

' The following data is confirmed by the user - later
'row("cmBit06") = True 'PNP NON

Catch ane As ArgumentNullException
'The exception that is thrown when a null reference
(Nothing in Visual Basic) is passed to a method that does 'not accept
it as a valid argument.
Throw New DBAccessException("You are passing a 'Nothing' as
a parameter to a method where an actual value is required.", ane)
Catch ce As ConstraintException
'Represents the exception that is thrown when attempting an
action that violates a constraint.
Throw New DBAccessException("You have attempted an action
that violates a constraint.", ce)
Catch e As Exception
'Represents errors that occur during application execution.
Throw New DBAccessException("An unanticipated exception has
ocurred.", e)
End Try


Try
_dataSet1.Tables(_currentTable).Rows.Add(row) '<<<This
line causes the error
Catch diee As Data.InvalidExpressionException
'Represents the exception that is thrown when attempting to
add a DataColumn
Throw New DBAccessException("The data column you are
attempting to add contains an error.", diee)
Catch dsee As SyntaxErrorException
'Represents the exception that is thrown when the
Expression property of a DataColumn contains a syntax error.
Throw New DBAccessException("The data column you are
attempting to add contains a syntax error.", dsee)
Catch e As Exception
MessageBox.Show("Exception Message: " & vbCrLf & e.Message)
MessageBox.Show("Exception Source: " & vbCrLf & e.Source)
MessageBox.Show("Exception StackTrace: " & vbCrLf &
e.StackTrace)
'Represents errors that occur during application execution.
'Throw New DBAccessException("An unanticipated exception
has ocurred.", e)
End Try

End Sub
//


The error says
ForeignKeyConstraint Lkp_tbl040Cmpt_lkp302SensorType requires the child
key values (5) to exist in the parent table.

The "5" is the value that is given to the field cmSmallint06 in the
line shown here;
\\
row("cmSmallint06") = 5 'Me.cboSensorType.NSelectedValue ~ (5 =
Hall effect)
//

I don't understand why I am getting this error when I am passing the
required value. Can someone explain what might be casusing this?

(5 = Hall effect)

Please help me.

Thank you,
dbuchanan
 
C

Cor Ligthert [MVP]

Dbuchan,

AFAIK, does it says that there is one or more child rows from which the
related key does not exist in your parent datatable while it does in the
child, so it cannot set the relation to the parent.

That is all.

Cor
 
D

dbuchanan

Cor,

I am having difficulty understanding your post.

"does is says" > does it SAY

does *what* say? my code?, the error?

"one or more child rows" (?) are you saying you think the error is
about "one or more child rows" - no the error does not say anything
about one or more rows, just about child key values.
That value is (5) because that is what I assigned to it. See the code.

"related key does not exist" - no there is nothing missing in the
relationship. The relationship *is* correctly composed. If it were not
the code would not compile. I would get the squiggly lines.

It is difficult for me to understand your post. ~ There is one
relationship between the table and the lookup table for the field
'cmSmallint06'. and it is correctly composed. Please review my post
again.

Thank you,
dbuchanan
 
S

Sahil Malik [MVP]

"related key does not exist" - no there is nothing missing in the
relationship. The relationship *is* correctly composed. If it were not
the code would not compile. I would get the squiggly lines.

The relationship is indeed set correctly - atleast as far as the compiler is
concerned, but at the time you are adding the relationship to your dataset,
the dataset at that time contains certain offending rows where the foreign
key is not satisfied. The problem is not in your code, it's in the data that
is loaded in the dataset.

- Sahil Malik [MVP]
ADO.NET 2.0 book -
http://codebetter.com/blogs/sahil.malik/archive/2005/05/13/63199.aspx
 
C

Cor Ligthert [MVP]

dbuchanan,
"does is says" > does it SAY
Can you tell me where I wrote that quoted text that you don't understand?

I cannot find it in the text, that I have showed you.

Cor
 
S

Sahil Malik [MVP]

Hope your news reader can do HTML .. see below

- SM

Cor Ligthert said:
Dbuchan,

AFAIK, does it says that there is one or more child rows from which the
related key does not exist in your parent datatable while it does in the
child, so it cannot set the relation to the parent.

That is all.

Cor
 
C

Cor Ligthert [MVP]

That is not what Dbuchan told that I wrote.

Cor

"Sahil Malik [MVP]" <[email protected]> schreef in bericht Hope your news reader can do HTML .. see below

- SM

Cor Ligthert said:
Dbuchan,

AFAIK, does it says that there is one or more child rows from which the
related key does not exist in your parent datatable while it does in the
child, so it cannot set the relation to the parent.

That is all.

Cor
 
D

dbuchanan

Sahil,

Thank you for your reply.
The problem is not in your code, it's in the data that is loaded in the dataset.

If you are saying data that is existing in the database - That is not
exactly true because the relationship is present before the data is
filled (loaded) in the form. The relationship is present before the
data is loaded - it is defined in the dataset.

The data fills (loads into) the form while the relationship in place
without an error ocurring. The error occurs at the time when a new row
is added. Here is the line that causes the error;

\\
_dataSet1.Tables(_currentTable).Rows.Add(row)
//

Because this line causes the error it seems to imply that the data I am
sending does not supply the value required to satisfy the relationship.
However the required value *is* supplied!

Below is the data I am sending (Cleaned up for clarity). I have
indicated the statement where the value is assigned to the required
field.

\\
row("pkComponentId") = Guid.NewGuid.ToString
row("fkDevice") = "39128253-37fd-4c8f-9bea-c13db0c2cacc"
row("fkComponentType") = 7
row("ComponentDescription") = "Cyl - Degate - Cyln - MSens_B"
row("QuanSharingConfiguration") = 1
row("QuanConfigured") = "0"
row("QuanActuations") = "1"
row("cmVarchar04") = "On"
row("cmVarchar04") = "On"
row("cmVarchar06") = "08795d8a-1669-4991-87ac-a6fffcb683e5"
row("cmBit01") = False
row("cmBit02") = False
row("cmBit04") = False
row("cmBit05") = False

Select Case s
Case "B"
row("cmBit01") = True
Case "D"
row("cmBit02") = True
Case "C"
row("cmBit04") = True
Case "A"
row("cmBit05") = True
End Select

row("cmBit06") = True
row("cmBit07") = True
row("cmSmallint01") = 1
row("cmSmallint06") = 5 '(5 = Hall effect) <<< This where the required
value is assigned.
row("cmSmallint08") = 2
row("cmUserNote") = ""
row("cmCreatedOn") = Now.ToString
row("cmCreatedBy") = SystemInformation.UserName.ToString
row("cmEditedOn") = Now.ToString
row("cmEditedBy") = SystemInformation.UserName.ToString
//

The question remains ~ Why am I getting this error?

dbuchanan
 
S

Sahil Malik [MVP]

Okay the below code is much smaller than the previous wall of ascii, so it's
actually something I can read.

Could you verify for me if ..

cmSmallint06 <-- the datatypes of the column in both tables?
the definition of the datarelation
the fact that "5" exists in the other datatable at the moment you are trying
to add that row.

I am *quite* certain that the error is in your data, I'm just trying to zero
in on what specific data :).

If all else fails, could you help me help you by letting me recreate your
error easily at my end by

a) Right before the add(row) statement, please do
dataset1.writexml(datafile), dataset1.writexmlschema(schemafile) <-- attach
these 2 files with the reply
b) a real teenie weenie code sample, hopefully less than 15 lines ;) which
loads the above schemafile and data file in a new dataset, and attempts to
load the row - and hence recreates the error in a rather simple manner
(rather than me having to setup the database etc. on my end - hey I do have
another job) :).

Once I can recreate your world on my desktop, I think I'll be easily able to
point you to the specific error.

- Sahil Malik [MVP]
ADO.NET 2.0 book -
http://codebetter.com/blogs/sahil.malik/archive/2005/05/13/63199.aspx
 
D

dbuchanan

Hi Sahil,

Here is the verification, dataset and dataschema you requested;
cmSmallint06 <-- the datatypes of the column in both tables?

Here are partial definitions for the tables;
\\
CREATE TABLE [lkp302SensorType] (
[pkSensorTypeId] [smallint] IDENTITY (1, 1) NOT NULL ,
...
//


\\
CREATE TABLE [tbl040Cmpt] (
...
[cmSmallint06] [smallint] NULL ,
...
//

the definition of the datarelation

Here is the relation
\\
Me.Relations.Add("Lkp_tbl040Cmpt_lkp302SensorType",
Me.Tables("lkp302SensorType").Columns("pkSensorTypeId"),
Me.Tables("tbl040Cmpt").Columns("cmSmallint06"))
//
the fact that "5" exists in the other datatable at the moment you are trying
to add that row.

Here is the data contained in lkp302SensorType in the form of CSV;
\\
pkSensorTypeId,SensorType,Ord,Hide
1,"Bar Code",1,False
2,"Capacitive",2,False
3,"Color",3,False
4,"Diffuse",4,False
5,"Hall Effect",5,False
6,"Inductive",6,False
7,"Limit Switch",7,False
8,"Pressure",8,False
9,"Reed",9,False
10,"Retro-Reflective",10,False
11,"Through Beam",11,False
12,"Ultrasonic",12,False
//

Here is the dataset;
\\
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<tbl040Cmpt>
<pkComponentId>8bf25abb-cb5d-40ec-8e37-2baf565a3cde</pkComponentId>
<fkDevice>9fbbd7c8-a833-48a1-8036-f2fb5c02a718</fkDevice>
<fkComponentType>2</fkComponentType>
<ComponentDescription>Cyl - Clip Driver -
Cyln</ComponentDescription>
<QuanSharingConfiguration>4</QuanSharingConfiguration>
<QuanConfigured>4</QuanConfigured>
<QuanActuations>1</QuanActuations>
<cmVarchar04>(see valve)</cmVarchar04>
<cmNumeric02>1.500</cmNumeric02>
<cmNumeric03>2.000</cmNumeric03>
<cmNumeric04>0.375</cmNumeric04>
<cmNumeric05>1.000</cmNumeric05>
<cmNumeric07>3.162</cmNumeric07>
<cmBit01>false</cmBit01>
<cmBit02>false</cmBit02>
<cmBit04>true</cmBit04>
<cmBit05>false</cmBit05>
<cmBit07>true</cmBit07>
<cmBit08>true</cmBit08>
<cmBit09>false</cmBit09>
<cmBit10>true</cmBit10>
<cmSmallint05>1</cmSmallint05>
<cmTinyint01>0</cmTinyint01>
<cmUserNote />
<cmCreatedOn>2005-11-27T16:28:00.0000000-05:00</cmCreatedOn>
<cmCreatedBy>dbuchanan</cmCreatedBy>
<cmEditedOn>2005-11-27T16:28:00.0000000-05:00</cmEditedOn>
<cmEditedBy>dbuchanan</cmEditedBy>
<cmrowversion>AAAAAAAAxzI=</cmrowversion>
</tbl040Cmpt>
<lkp101PortSize>
<pkPortSizeId>7</pkPortSizeId>
<PortSize>1/8 G</PortSize>
<Ord>1</Ord>
<Hide>false</Hide>
</lkp101PortSize>
<lkp101PortSize>
<pkPortSizeId>1</pkPortSizeId>
<PortSize>1/8 NPT</PortSize>
<Ord>1</Ord>
<Hide>false</Hide>
</lkp101PortSize>
<lkp101PortSize>
<pkPortSizeId>2</pkPortSizeId>
<PortSize>10-32 Straight</PortSize>
<Ord>2</Ord>
<Hide>false</Hide>
</lkp101PortSize>
<lkp101PortSize>
<pkPortSizeId>8</pkPortSizeId>
<PortSize>1/4 G</PortSize>
<Ord>3</Ord>
<Hide>false</Hide>
</lkp101PortSize>
<lkp101PortSize>
<pkPortSizeId>3</pkPortSizeId>
<PortSize>1/4 NPT</PortSize>
<Ord>3</Ord>
<Hide>false</Hide>
</lkp101PortSize>
<lkp101PortSize>
<pkPortSizeId>9</pkPortSizeId>
<PortSize>3/8 G</PortSize>
<Ord>4</Ord>
<Hide>false</Hide>
</lkp101PortSize>
<lkp101PortSize>
<pkPortSizeId>4</pkPortSizeId>
<PortSize>3/8 NPT</PortSize>
<Ord>4</Ord>
<Hide>false</Hide>
</lkp101PortSize>
<lkp101PortSize>
<pkPortSizeId>10</pkPortSizeId>
<PortSize>1/2 G</PortSize>
<Ord>5</Ord>
<Hide>false</Hide>
</lkp101PortSize>
<lkp101PortSize>
<pkPortSizeId>5</pkPortSizeId>
<PortSize>1/2 NPT</PortSize>
<Ord>5</Ord>
<Hide>false</Hide>
</lkp101PortSize>
<lkp101PortSize>
<pkPortSizeId>11</pkPortSizeId>
<PortSize>3/4 G</PortSize>
<Ord>6</Ord>
<Hide>false</Hide>
</lkp101PortSize>
<lkp101PortSize>
<pkPortSizeId>6</pkPortSizeId>
<PortSize>3/4 NPT</PortSize>
<Ord>6</Ord>
<Hide>false</Hide>
</lkp101PortSize>
</NewDataSet>
//

Here is the schemafile
\\
<?xml version="1.0" standalone="yes"?>
<xs:schema id="NewDataSet" xmlns=""
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="tbl010Job">
<xs:complexType>
<xs:sequence>
<xs:element name="pkJobId" msdata:ReadOnly="true">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="36" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="JobNumber">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="7" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CustomerName">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="35" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="JobDescription">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="75" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ReferenceJobNumber" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="7" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ShopPsi" type="xs:unsignedByte"
minOccurs="0" />
<xs:element name="SystemVoltage" type="xs:short"
minOccurs="0" />
<xs:element name="SystemPhase" type="xs:short"
minOccurs="0" />
<xs:element name="SystemAmps" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="3" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="HasCircuitBreakersYN" type="xs:boolean"
/>
<xs:element name="AllProcessesAddedYN" type="xs:boolean"
/>
<xs:element name="AllTasksAddedYN" type="xs:boolean" />
<xs:element name="AllProcessesConfiguredYN"
type="xs:boolean" />
<xs:element name="ApprovedYN" type="xs:boolean" />
<xs:element name="CompletedYN" type="xs:boolean" />
<xs:element name="IsMasterYN" type="xs:boolean" />
<xs:element name="Archive" type="xs:boolean" />
<xs:element name="jcUserNote">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="jcCreatedOn" type="xs:dateTime" />
<xs:element name="jcCreatedBy">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="25" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="jcEditedOn" type="xs:dateTime" />
<xs:element name="jcEditedBy">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="25" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="jcrowversion" type="xs:base64Binary"
minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="tbl020Proc">
<xs:complexType>
<xs:sequence>
<xs:element name="pkProcessId" msdata:ReadOnly="true">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="36" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="fkJob">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="36" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="fkDeviceType" type="xs:int" />
<xs:element name="QuanIndividualProcesses"
type="xs:unsignedByte" />
<xs:element name="QuanIndividualProcessesConfigured"
type="xs:unsignedByte" />
<xs:element name="mpUserNote">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="mpCreatedOn" type="xs:dateTime" />
<xs:element name="mpCreatedBy">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="25" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="mpEditedOn" type="xs:dateTime" />
<xs:element name="mpEditedBy">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="25" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="mprowversion" type="xs:base64Binary"
minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="tbl030Devi">
<xs:complexType>
<xs:sequence>
<xs:element name="pkDeviceId" msdata:ReadOnly="true">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="36" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="fkProcess">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="36" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DeviceDescription">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="QuanOfActuations"
type="xs:unsignedByte" />
<xs:element name="CustomDeviceYN" type="xs:boolean" />
<xs:element name="QuanCylinders" type="xs:unsignedByte"
/>
<xs:element name="QuanValves" type="xs:unsignedByte" />
<xs:element name="QuanSensors" type="xs:unsignedByte" />
<xs:element name="QuanAirServices" type="xs:unsignedByte"
/>
<xs:element name="QuanElectServices"
type="xs:unsignedByte" />
<xs:element name="QuanHMIs" type="xs:unsignedByte" />
<xs:element name="QuanCylindersConfigured"
type="xs:unsignedByte" />
<xs:element name="QuanValvesConfigured"
type="xs:unsignedByte" />
<xs:element name="QuanSensorsConfigured"
type="xs:unsignedByte" />
<xs:element name="QuanAirServicesConfigured"
type="xs:unsignedByte" />
<xs:element name="QuanElectServicesConfigured"
type="xs:unsignedByte" />
<xs:element name="QuanHMIsConfigured"
type="xs:unsignedByte" />
<xs:element name="QuanMotionSensorsConfigured"
type="xs:unsignedByte" />
<xs:element name="DeviceConfigCompleteYN"
type="xs:boolean" />
<xs:element name="dsUserNote">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="dsCreatedOn" type="xs:dateTime" />
<xs:element name="dsCreatedBy">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="25" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="dsEditedOn" type="xs:dateTime" />
<xs:element name="dsEditedBy">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="25" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="dsrowversion" type="xs:base64Binary"
minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="tbl040Cmpt">
<xs:complexType>
<xs:sequence>
<xs:element name="pkComponentId" msdata:ReadOnly="true">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="36" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="fkDevice">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="36" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="fkComponentType" type="xs:int" />
<xs:element name="ComponentDescription">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="QuanSharingConfiguration"
type="xs:unsignedByte" />
<xs:element name="QuanConfigured" type="xs:unsignedByte"
/>
<xs:element name="QuanActuations" type="xs:unsignedByte"
/>
<xs:element name="cmVarchar01" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="cmVarchar02" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="cmVarchar03" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="cmVarchar04" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="cmVarchar05" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="cmVarchar06" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="cmNumeric01" type="xs:decimal"
minOccurs="0" />
<xs:element name="cmNumeric02" type="xs:decimal"
minOccurs="0" />
<xs:element name="cmNumeric03" type="xs:decimal"
minOccurs="0" />
<xs:element name="cmNumeric04" type="xs:decimal"
minOccurs="0" />
<xs:element name="cmNumeric05" type="xs:decimal"
minOccurs="0" />
<xs:element name="cmNumeric06" type="xs:decimal"
minOccurs="0" />
<xs:element name="cmNumeric07" type="xs:decimal"
minOccurs="0" />
<xs:element name="cmBit01" type="xs:boolean"
minOccurs="0" />
<xs:element name="cmBit02" type="xs:boolean"
minOccurs="0" />
<xs:element name="cmBit03" type="xs:boolean"
minOccurs="0" />
<xs:element name="cmBit04" type="xs:boolean"
minOccurs="0" />
<xs:element name="cmBit05" type="xs:boolean"
minOccurs="0" />
<xs:element name="cmBit06" type="xs:boolean"
minOccurs="0" />
<xs:element name="cmBit07" type="xs:boolean"
minOccurs="0" />
<xs:element name="cmBit08" type="xs:boolean"
minOccurs="0" />
<xs:element name="cmBit09" type="xs:boolean"
minOccurs="0" />
<xs:element name="cmBit10" type="xs:boolean"
minOccurs="0" />
<xs:element name="cmBit11" type="xs:boolean"
minOccurs="0" />
<xs:element name="cmSmallint01" type="xs:short"
minOccurs="0" />
<xs:element name="cmSmallint02" type="xs:short"
minOccurs="0" />
<xs:element name="cmSmallint03" type="xs:short"
minOccurs="0" />
<xs:element name="cmSmallint04" type="xs:short"
minOccurs="0" />
<xs:element name="cmSmallint05" type="xs:short"
minOccurs="0" />
<xs:element name="cmSmallint06" type="xs:short"
minOccurs="0" />
<xs:element name="cmSmallint07" type="xs:short"
minOccurs="0" />
<xs:element name="cmSmallint08" type="xs:short"
minOccurs="0" />
<xs:element name="cmTinyint01" type="xs:short"
minOccurs="0" />
<xs:element name="SooOrder" type="xs:decimal"
minOccurs="0" />
<xs:element name="SooPrecedent" type="xs:decimal"
minOccurs="0" />
<xs:element name="SooDelay" type="xs:decimal"
minOccurs="0" />
<xs:element name="SooNote" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="cmUserNote">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="cmCreatedOn" type="xs:dateTime" />
<xs:element name="cmCreatedBy">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="25" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="cmEditedOn" type="xs:dateTime" />
<xs:element name="cmEditedBy">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="25" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="cmrowversion" type="xs:base64Binary"
minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="tbl050Oper">
<xs:complexType>
<xs:sequence>
<xs:element name="pkOperId" msdata:ReadOnly="true">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="36" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="sqfkJob">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="36" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="sqComponentDescription">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="sqAction" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="sqDuration" type="xs:decimal"
minOccurs="0" />
<xs:element name="sqSooOrder" type="xs:decimal"
minOccurs="0" />
<xs:element name="sqSooPrecedent" type="xs:decimal"
minOccurs="0" />
<xs:element name="sqSooDelay" type="xs:decimal"
minOccurs="0" />
<xs:element name="sqIOAddress" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="sqSooNote" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="sqCreatedOn" type="xs:dateTime" />
<xs:element name="sqCreatedBy">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="25" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="sqEditedOn" type="xs:dateTime" />
<xs:element name="sqEditedBy">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="25" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="sqrowversion" type="xs:base64Binary"
minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="tblUnion1">
<xs:complexType>
<xs:sequence>
<xs:element name="pkID_u1" msdata:ReadOnly="true">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="36" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="fkJob_u1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="36" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="tbl_u1" type="xs:short" />
<xs:element name="cmptDescription_u1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Action_u1" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Duration_u1" type="xs:decimal"
minOccurs="0" />
<xs:element name="Order_u1" type="xs:decimal"
minOccurs="0" />
<xs:element name="Precedent_u1" type="xs:unsignedByte"
minOccurs="0" />
<xs:element name="Delay_u1" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="IOAddress_u1" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Note_u1" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CreatedOn_u1" type="xs:dateTime" />
<xs:element name="CreatedBy_u1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="25" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="EditedOn_u1" type="xs:dateTime" />
<xs:element name="EditedBy_u1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="25" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="rowversion_u1" type="xs:base64Binary"
minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="tblUseAudit">
<xs:complexType>
<xs:sequence>
<xs:element name="ClipUser">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Computer" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ClipVersion">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DateTime" type="xs:dateTime" />
<xs:element name="Selection">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="lst00MasterList">
<xs:complexType>
<xs:sequence>
<xs:element name="pkMasterListId" msdata:ReadOnly="true"
msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1"
msdata:AutoIncrementStep="-1" type="xs:int" />
<xs:element name="TableName">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="25" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="FriendlyName">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="25" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="UserInstruction" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Ord" type="xs:unsignedByte" />
<xs:element name="Hide" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="lst002ViewList">
<xs:complexType>
<xs:sequence>
<xs:element name="pkViewListId" msdata:ReadOnly="true"
msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1"
msdata:AutoIncrementStep="-1" type="xs:int" />
<xs:element name="ViewName">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="25" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="prefix">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="4" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Ord" type="xs:unsignedByte" />
<xs:element name="Hide" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="lkp101PortSize">
<xs:complexType>
<xs:sequence>
<xs:element name="pkPortSizeId" msdata:ReadOnly="true"
msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1"
msdata:AutoIncrementStep="-1" type="xs:short" />
<xs:element name="PortSize">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Ord" type="xs:unsignedByte" />
<xs:element name="Hide" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="lkp102Phase">
<xs:complexType>
<xs:sequence>
<xs:element name="pkPhaseId" msdata:ReadOnly="true"
msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1"
msdata:AutoIncrementStep="-1" type="xs:short" />
<xs:element name="Phase">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Ord" type="xs:unsignedByte" />
<xs:element name="Hide" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="lkp103SensorConnection">
<xs:complexType>
<xs:sequence>
<xs:element name="pkSensorConnectionId"
msdata:ReadOnly="true" msdata:AutoIncrement="true"
msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1"
type="xs:short" />
<xs:element name="SensorConnection">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Ord" type="xs:unsignedByte" />
<xs:element name="Hide" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="lkp104Voltage">
<xs:complexType>
<xs:sequence>
<xs:element name="pkVoltageId" msdata:ReadOnly="true"
msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1"
msdata:AutoIncrementStep="-1" type="xs:short" />
<xs:element name="Voltage">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="3" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Ord" type="xs:unsignedByte" />
<xs:element name="Hide" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="lkp105PanelLocation">
<xs:complexType>
<xs:sequence>
<xs:element name="pkPanelLocationId"
msdata:ReadOnly="true" msdata:AutoIncrement="true"
msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1"
type="xs:short" />
<xs:element name="PanelLocation">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Ord" type="xs:unsignedByte" />
<xs:element name="Hide" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="lkp201DeviceType">
<xs:complexType>
<xs:sequence>
<xs:element name="pkDeviceTypeId" msdata:ReadOnly="true"
msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1"
msdata:AutoIncrementStep="-1" type="xs:int" />
<xs:element name="DeviceName">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Prefix">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="4" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Valve" type="xs:boolean" />
<xs:element name="Cylinder" type="xs:boolean" />
<xs:element name="Sensors" type="xs:boolean" />
<xs:element name="AirServ" type="xs:boolean" />
<xs:element name="ElecServ" type="xs:boolean" />
<xs:element name="HMI" type="xs:boolean" />
<xs:element name="Note">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Ord" type="xs:unsignedByte" />
<xs:element name="Hide" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="lkp202ComponentType">
<xs:complexType>
<xs:sequence>
<xs:element name="pkComponentTypeId"
msdata:ReadOnly="true" msdata:AutoIncrement="true"
msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1"
type="xs:int" />
<xs:element name="ComponentName">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Prefix">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="4" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Ord" type="xs:unsignedByte" />
<xs:element name="Hide" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="lkp301ValveType">
<xs:complexType>
<xs:sequence>
<xs:element name="pkValveTypeId" msdata:ReadOnly="true"
msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1"
msdata:AutoIncrementStep="-1" type="xs:short" />
<xs:element name="ValveType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Ord" type="xs:unsignedByte" />
<xs:element name="Hide" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="lkp302SensorType">
<xs:complexType>
<xs:sequence>
<xs:element name="pkSensorTypeId" msdata:ReadOnly="true"
msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1"
msdata:AutoIncrementStep="-1" type="xs:short" />
<xs:element name="SensorType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Ord" type="xs:unsignedByte" />
<xs:element name="Hide" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="lkp303HmiType">
<xs:complexType>
<xs:sequence>
<xs:element name="pkHmiTypeId" msdata:ReadOnly="true"
msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1"
msdata:AutoIncrementStep="-1" type="xs:short" />
<xs:element name="HmiType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ION">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="3" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Ord" type="xs:unsignedByte" />
<xs:element name="Hide" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:unique name="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//tbl010Job" />
<xs:field xpath="pkJobId" />
</xs:unique>
<xs:unique name="tbl020Proc_Constraint1"
msdata:ConstraintName="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//tbl020Proc" />
<xs:field xpath="pkProcessId" />
</xs:unique>
<xs:unique name="tbl030Devi_Constraint1"
msdata:ConstraintName="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//tbl030Devi" />
<xs:field xpath="pkDeviceId" />
</xs:unique>
<xs:unique name="tbl040Cmpt_Constraint1"
msdata:ConstraintName="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//tbl040Cmpt" />
<xs:field xpath="pkComponentId" />
</xs:unique>
<xs:unique name="tbl050Oper_Constraint1"
msdata:ConstraintName="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//tbl050Oper" />
<xs:field xpath="pkOperId" />
</xs:unique>
<xs:unique name="tblUnion1_Constraint1"
msdata:ConstraintName="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//tblUnion1" />
<xs:field xpath="pkID_u1" />
</xs:unique>
<xs:unique name="lst00MasterList_Constraint1"
msdata:ConstraintName="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//lst00MasterList" />
<xs:field xpath="pkMasterListId" />
</xs:unique>
<xs:unique name="lst002ViewList_Constraint1"
msdata:ConstraintName="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//lst002ViewList" />
<xs:field xpath="pkViewListId" />
</xs:unique>
<xs:unique name="lkp101PortSize_Constraint1"
msdata:ConstraintName="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//lkp101PortSize" />
<xs:field xpath="pkPortSizeId" />
</xs:unique>
<xs:unique name="lkp102Phase_Constraint1"
msdata:ConstraintName="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//lkp102Phase" />
<xs:field xpath="pkPhaseId" />
</xs:unique>
<xs:unique name="lkp103SensorConnection_Constraint1"
msdata:ConstraintName="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//lkp103SensorConnection" />
<xs:field xpath="pkSensorConnectionId" />
</xs:unique>
<xs:unique name="lkp104Voltage_Constraint1"
msdata:ConstraintName="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//lkp104Voltage" />
<xs:field xpath="pkVoltageId" />
</xs:unique>
<xs:unique name="lkp105PanelLocation_Constraint1"
msdata:ConstraintName="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//lkp105PanelLocation" />
<xs:field xpath="pkPanelLocationId" />
</xs:unique>
<xs:unique name="lkp201DeviceType_Constraint1"
msdata:ConstraintName="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//lkp201DeviceType" />
<xs:field xpath="pkDeviceTypeId" />
</xs:unique>
<xs:unique name="lkp202ComponentType_Constraint1"
msdata:ConstraintName="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//lkp202ComponentType" />
<xs:field xpath="pkComponentTypeId" />
</xs:unique>
<xs:unique name="lkp301ValveType_Constraint1"
msdata:ConstraintName="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//lkp301ValveType" />
<xs:field xpath="pkValveTypeId" />
</xs:unique>
<xs:unique name="lkp302SensorType_Constraint1"
msdata:ConstraintName="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//lkp302SensorType" />
<xs:field xpath="pkSensorTypeId" />
</xs:unique>
<xs:unique name="lkp303HmiType_Constraint1"
msdata:ConstraintName="Constraint1" msdata:primaryKey="true">
<xs:selector xpath=".//lkp303HmiType" />
<xs:field xpath="pkHmiTypeId" />
</xs:unique>
<xs:keyref name="Lkp_tbl040Cmpt_lkp103SensorConnection"
refer="lkp103SensorConnection_Constraint1">
<xs:selector xpath=".//tbl040Cmpt" />
<xs:field xpath="cmSmallint08" />
</xs:keyref>
<xs:keyref name="Lkp_tbl040Cmpt_lkp303HmiType"
refer="lkp303HmiType_Constraint1">
<xs:selector xpath=".//tbl040Cmpt" />
<xs:field xpath="cmSmallint07" />
</xs:keyref>
<xs:keyref name="Lkp_tbl040Cmpt_lkp302SensorType"
refer="lkp302SensorType_Constraint1">
<xs:selector xpath=".//tbl040Cmpt" />
<xs:field xpath="cmSmallint06" />
</xs:keyref>
<xs:keyref name="Lkp_tbl040Cmpt_lkp101PortSize"
refer="lkp101PortSize_Constraint1">
<xs:selector xpath=".//tbl040Cmpt" />
<xs:field xpath="cmSmallint05" />
</xs:keyref>
<xs:keyref name="Lkp_tbl040Cmpt_lkp301ValveType"
refer="lkp301ValveType_Constraint1">
<xs:selector xpath=".//tbl040Cmpt" />
<xs:field xpath="cmSmallint04" />
</xs:keyref>
<xs:keyref name="Lkp_tbl040Cmpt_lkp105PanelLocation"
refer="lkp105PanelLocation_Constraint1">
<xs:selector xpath=".//tbl040Cmpt" />
<xs:field xpath="cmSmallint03" />
</xs:keyref>
<xs:keyref name="Lkp_tbl040Cmpt_lkp102Phase"
refer="lkp102Phase_Constraint1">
<xs:selector xpath=".//tbl040Cmpt" />
<xs:field xpath="cmSmallint02" />
</xs:keyref>
<xs:keyref name="Lkp_tbl040Cmpt_lkp104Voltage"
refer="lkp104Voltage_Constraint1">
<xs:selector xpath=".//tbl040Cmpt" />
<xs:field xpath="cmSmallint01" />
</xs:keyref>
<xs:keyref name="FK_tbl020Proc_lkp201DeviceType"
refer="lkp201DeviceType_Constraint1">
<xs:selector xpath=".//tbl020Proc" />
<xs:field xpath="fkDeviceType" />
</xs:keyref>
<xs:keyref name="FK_tbl010Job_lkp102Phase"
refer="lkp102Phase_Constraint1">
<xs:selector xpath=".//tbl010Job" />
<xs:field xpath="SystemPhase" />
</xs:keyref>
<xs:keyref name="FK_tbl010Job_lkp104Voltage"
refer="lkp104Voltage_Constraint1">
<xs:selector xpath=".//tbl010Job" />
<xs:field xpath="SystemVoltage" />
</xs:keyref>
</xs:element>
</xs:schema>
//

Thank you,
dbuchanan
 
D

dbuchanan

Sahil,

I found the problem. I overlooked the fact that though the child key
value existed in the database the dataset table had not been filled.

dbuchanan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

SQL Server Error: 8629 2

Top