Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / .NET Framework / ADO.NET / April 2006

Tip: Looking for answers? Try searching our database.

SQL UniqueIdentifier - OBJECTGUID error

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Bmack500 - 05 Apr 2006 20:24 GMT
Thank you in Advance!
I'm storing a record for an AD object using the
Object GUID and storing it as a UniqueIdentifier in SQL server, like
this:

svrStruct is a Structure with svrStruct as: Dim oGUID as GUID
'***************
       Dim objectGUID As Guid

       svrStruct.oError = False
'Fetch the GUID from AD, then...
       Try
           objectGUID = New
Guid(DirectCast(oResult.Properties("objectGUID")(0), Byte()))
           svrStruct.oGUID = objectGUID
       Catch ex As Exception
           strGUID = "No objectGUID Found"
       End Try
'***************
no problems. I then need to go back and update the record, so I use the

following code:

'**************
strSQL = "UPDATE pma_SERVERINFO " _
& "SET DOMAIN = @domain, HOSTNAME = @hostname, NAME = @name, DN =
@distinguishedname, " _
& "DESCRIPTION = @description, OS = @os, OS_VERSION = @os_version, TZ =

@tz, " _
@create_date, " _
& "SPMAJOR = @sp_major, SPMINOR = @sp_minor " _
& "WHERE (OBJECTGUID = '@GUID')"

Dim sqlCMD As SqlClient.SqlCommand = New SqlCommand(strSQL,
sqlConnection)
sqlCMD.CommandType = CommandType.Text
sqlCMD.Parameters.Add(New SqlParameter("@GUID", SqlDbType.VarChar,
20)).Value = svrInfo.oGUID
sqlCMD.Parameters.Add(New SqlParameter("@domain", SqlDbType.VarChar,
20)).Value = svrInfo.oDomain
sqlCMD.Parameters.Add(New SqlParameter("@hostname", SqlDbType.VarChar,
150)).Value = svrInfo.oDNSHOSTNAME
sqlCMD.Parameters.Add(New SqlParameter("@name", SqlDbType.VarChar,
50)).Value = svrInfo.oNAME
sqlCMD.Parameters.Add(New SqlParameter("@distinguishedname",
SqlDbType.VarChar, 250)).Value = svrInfo.oDN
sqlCMD.Parameters.Add(New SqlParameter("@description",
SqlDbType.VarChar, 150)).Value = svrInfo.oDescription
sqlCMD.Parameters.Add(New SqlParameter("@os", SqlDbType.VarChar,
50)).Value = svrInfo.oOS
sqlCMD.Parameters.Add(New SqlParameter("@os_version",
SqlDbType.VarChar, 50)).Value = svrInfo.oOSVersion
sqlCMD.Parameters.Add(New SqlParameter("@tz", SqlDbType.Int, 0)).Value
= svrInfo.oTZ
sqlCMD.Parameters.Add(New SqlParameter("@mng_by", SqlDbType.VarChar,
250)).Value = svrInfo.oManagedBy
sqlCMD.Parameters.Add(New SqlParameter("@last_logon",
SqlDbType.DateTime, 0)).Value = svrInfo.oLastLogon
sqlCMD.Parameters.Add(New SqlParameter("@create_date",
SqlDbType.DateTime, 0)).Value = svrInfo.oCreateDate
sqlCMD.Parameters.Add(New SqlParameter("@sp_major", SqlDbType.Int,
0)).Value = svrInfo.oSPMajor
sqlCMD.Parameters.Add(New SqlParameter("@sp_minor", SqlDbType.Int,
0)).Value = svrInfo.oSPMinor
           If sqlConnection.State = ConnectionState.Closed Then
               sqlConnection.Open()
           End If
           Try
               rowsAffected = sqlCMD.ExecuteNonQuery()
           Catch ex As Exception
               writeLog("UPDATE SERVER INFO sql error: " & ex.Message)

               writeLog("UPDATE SERVER INFO sql string: " &
sqlCMD.CommandText)
               writeLog("Server: " & svrInfo.oDNSHOSTNAME &
ControlChars.CrLf & "GUID: " &  svrInfo.oGUID.ToString)

writeLog("*****************************************************************­**********")

               Exit Function
           Finally
               sqlCMD.Dispose()
           End Try
'**************
My logs show the following error:
UPDATE SERVER INFO sql error: Syntax error converting from a character
string to uniqueidentifier.

I don't get it - I'm able to use almost the same syntax to search, so
why doesn't this work? Thanks in advance!
Jim Hughes - 05 Apr 2006 22:17 GMT
Change

sqlCMD.Parameters.Add(New SqlParameter("@GUID", SqlDbType.VarChar,

to

sqlCMD.Parameters.Add(New SqlParameter("@GUID", SqlDbType.UniqueIdentifier)

and

& "WHERE (OBJECTGUID = '@GUID')"

to

& "WHERE (OBJECTGUID = @GUID)"

Thank you in Advance!
I'm storing a record for an AD object using the
Object GUID and storing it as a UniqueIdentifier in SQL server, like
this:

svrStruct is a Structure with svrStruct as: Dim oGUID as GUID
'***************
       Dim objectGUID As Guid

       svrStruct.oError = False
'Fetch the GUID from AD, then...
       Try
           objectGUID = New
Guid(DirectCast(oResult.Properties("objectGUID")(0), Byte()))
           svrStruct.oGUID = objectGUID
       Catch ex As Exception
           strGUID = "No objectGUID Found"
       End Try
'***************
no problems. I then need to go back and update the record, so I use the

following code:

'**************
strSQL = "UPDATE pma_SERVERINFO " _
& "SET DOMAIN = @domain, HOSTNAME = @hostname, NAME = @name, DN =
@distinguishedname, " _
& "DESCRIPTION = @description, OS = @os, OS_VERSION = @os_version, TZ =

@tz, " _
@create_date, " _
& "SPMAJOR = @sp_major, SPMINOR = @sp_minor " _
& "WHERE (OBJECTGUID = '@GUID')"

Dim sqlCMD As SqlClient.SqlCommand = New SqlCommand(strSQL,
sqlConnection)
sqlCMD.CommandType = CommandType.Text
sqlCMD.Parameters.Add(New SqlParameter("@GUID", SqlDbType.VarChar,
20)).Value = svrInfo.oGUID
sqlCMD.Parameters.Add(New SqlParameter("@domain", SqlDbType.VarChar,
20)).Value = svrInfo.oDomain
sqlCMD.Parameters.Add(New SqlParameter("@hostname", SqlDbType.VarChar,
150)).Value = svrInfo.oDNSHOSTNAME
sqlCMD.Parameters.Add(New SqlParameter("@name", SqlDbType.VarChar,
50)).Value = svrInfo.oNAME
sqlCMD.Parameters.Add(New SqlParameter("@distinguishedname",
SqlDbType.VarChar, 250)).Value = svrInfo.oDN
sqlCMD.Parameters.Add(New SqlParameter("@description",
SqlDbType.VarChar, 150)).Value = svrInfo.oDescription
sqlCMD.Parameters.Add(New SqlParameter("@os", SqlDbType.VarChar,
50)).Value = svrInfo.oOS
sqlCMD.Parameters.Add(New SqlParameter("@os_version",
SqlDbType.VarChar, 50)).Value = svrInfo.oOSVersion
sqlCMD.Parameters.Add(New SqlParameter("@tz", SqlDbType.Int, 0)).Value
= svrInfo.oTZ
sqlCMD.Parameters.Add(New SqlParameter("@mng_by", SqlDbType.VarChar,
250)).Value = svrInfo.oManagedBy
sqlCMD.Parameters.Add(New SqlParameter("@last_logon",
SqlDbType.DateTime, 0)).Value = svrInfo.oLastLogon
sqlCMD.Parameters.Add(New SqlParameter("@create_date",
SqlDbType.DateTime, 0)).Value = svrInfo.oCreateDate
sqlCMD.Parameters.Add(New SqlParameter("@sp_major", SqlDbType.Int,
0)).Value = svrInfo.oSPMajor
sqlCMD.Parameters.Add(New SqlParameter("@sp_minor", SqlDbType.Int,
0)).Value = svrInfo.oSPMinor
           If sqlConnection.State = ConnectionState.Closed Then
               sqlConnection.Open()
           End If
           Try
               rowsAffected = sqlCMD.ExecuteNonQuery()
           Catch ex As Exception
               writeLog("UPDATE SERVER INFO sql error: " & ex.Message)

               writeLog("UPDATE SERVER INFO sql string: " &
sqlCMD.CommandText)
               writeLog("Server: " & svrInfo.oDNSHOSTNAME &
ControlChars.CrLf & "GUID: " &  svrInfo.oGUID.ToString)

writeLog("*****************************************************************­**********")

               Exit Function
           Finally
               sqlCMD.Dispose()
           End Try
'**************
My logs show the following error:
UPDATE SERVER INFO sql error: Syntax error converting from a character
string to uniqueidentifier.

I don't get it - I'm able to use almost the same syntax to search, so
why doesn't this work? Thanks in advance!
Bmack500 - 06 Apr 2006 13:48 GMT
Ouch! Too much copying & pasting... that's why it works in the other
section of my code!

Thanks much!

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.