Oracle allows it in it's primary key.



Message from Shawn Wildermuth 
<[EMAIL PROTECTED]>@DISCUSS.DEVELOP.COM received on 10/25/2005 
11:57 AM

10/25/2005 11:57 AM



Shawn Wildermuth <[EMAIL PROTECTED]>@DISCUSS.DEVELOP.COM

Please respond to "Discussion of advanced .NET topics." 
<ADVANCED-DOTNET@DISCUSS.DEVELOP.COM>
Sent by "Discussion of advanced .NET topics." 
<ADVANCED-DOTNET@DISCUSS.DEVELOP.COM>



        To:     ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
        cc: 
        Subject:        Re: [ADVANCED-DOTNET] Primary Key Bug

While I understand the original poster's complaint, I have to side with
Christopher on this one.  I don't have other RDBMSs around to test, but I
would guess the behavior is the same.  I tested SQL Server with char(10) 
and
varchar(10) with the same result...they don't think spaces in PK's are
significant, so I think that the DataTable's implementation is probably
better suited to deal with PK's that wouldn't violate PKs at the database.
That's where most DataSet data actually resides, right?



Thanks,

Shawn Wildermuth
http://adoguy.com
C# MVP, MCSD.NET, Author and Speaker




-----Original Message-----
From: Discussion of advanced .NET topics.
[mailto:[EMAIL PROTECTED] On Behalf Of Christopher Reed
Sent: Tuesday, October 25, 2005 12:45 PM
To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
Subject: Re: [ADVANCED-DOTNET] Primary Key Bug

>From a data perspective, what makes it different?  It adds nothing to your
data.  For a primary key, the first four characters are equivalent.  The
space is irrelevant from a data perspective.  The space adds nothing to 
your
data.  Thus, the two values are equivalent with respect to the primary 
key.

I experimented in SQL Server with a table that has a column called 
KeyField
that's a Char(10) and set as the primary key.  In the first row, I entered
"key1" while in the second row I tried to enter "key1 ".  I received a
duplicate key error.  So, if this is a bug, then it's in SQL Server as 
well.

As a data purist, one should never have any form of ambiguity with respect
to your primary key.  The values should be clearly distinct.  Then again,
primary key values should never be controlled externally to begin with, 
but
that's a whole other esoteric discussion for academia.

Christopher Reed
Web Applications Supervisor
Information Technology
City of Lubbock
[EMAIL PROTECTED]
"The oxen are slow, but the earth is patient."

>>> [EMAIL PROTECTED] 10:17:37 am 10/25/2005 >>>
No....that's just another BS excuse.  If XML doesn't recognize them as
different then XML is wrong too.  The data is different and no software 
tool
should ever been making assumptions about the data.  IT IS A
BUG!!!!!!!!!!!!!!

Message from Christopher Reed
<[EMAIL PROTECTED]>@DISCUSS.DEVELOP.COM received on 10/25/2005
09:51 AM

10/25/2005 09:51 AM

Christopher Reed <[EMAIL PROTECTED]>@DISCUSS.DEVELOP.COM

Please respond to "Discussion of advanced .NET topics."
<ADVANCED-DOTNET@DISCUSS.DEVELOP.COM>
Sent by "Discussion of advanced .NET topics."
<ADVANCED-DOTNET@DISCUSS.DEVELOP.COM>



        To:     ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
        cc:
        Subject:        Re: [ADVANCED-DOTNET] Primary Key Bug

Let's look at this from another perspective.

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
  <Table1>
    <Key>key1</Key>
  </Table1>
  <Table1>
    <Key>key1 </Key>
  </Table1>
</NewDataSet>

The above is the XML representation of your datatable (in a dataset).
The point is that if you tried to make the Key element unique in the above
XML, it would complain because the spacing is not relevant to an XML
document.  Thus, you should always view data within ADO.NET as if it was
represented by a XML file.  This is not a bug.  This is by design of XML.

Hope this helps!

Christopher Reed
Web Applications Supervisor
Information Technology
City of Lubbock
[EMAIL PROTECTED]
"The oxen are slow, but the earth is patient."

>>> [EMAIL PROTECTED] 5:00:33 pm 10/24/2005 >>>
Anybody noticed that this code errors?  Is this fixed in 2.0?

Module Module1

    Sub Main()
        Dim DT As New DataTable
        DT.Columns.Add("Key", GetType(String))
        DT.Rows.Add(New Object() {"key1"})
        DT.Rows.Add(New Object() {"key1 "})
        DT.PrimaryKey = New DataColumn() {DT.Columns("Key")}
    End Sub

End Module

===================================
This list is hosted by DevelopMentorR  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com



===================================
This list is hosted by DevelopMentorR  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com
===================================
This list is hosted by DevelopMentorR  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com



===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to