PC Review Forums Newsgroups Microsoft DotNet Microsoft ADO .NET SQL UniqueIdentifier - OBJECTGUID error

Reply

SQL UniqueIdentifier - OBJECTGUID error

 
Thread Tools Rate Thread
Old 05-04-2006, 08:24 PM   #1
Bmack500
Guest
 
Posts: n/a
Default SQL UniqueIdentifier - OBJECTGUID error


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!

  Reply With Quote
Old 05-04-2006, 10:17 PM   #2
Jim Hughes
Guest
 
Posts: n/a
Default Re: SQL UniqueIdentifier - OBJECTGUID error

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)"


"Bmack500" <brett.mack@gmail.com> wrote in message
news:1144265062.681779.107430@g10g2000cwb.googlegroups.com...
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!


  Reply With Quote
Old 06-04-2006, 01:48 PM   #3
Bmack500
Guest
 
Posts: n/a
Default Re: SQL UniqueIdentifier - OBJECTGUID error

Ouch! Too much copying & pasting... that's why it works in the other
section of my code!

Thanks much!

  Reply With Quote
Reply



Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off