SELECT ERRO VARBINARY?
SELECT CharacterIdx, CONVERT(varbinary(4800), AchievementData), TitleData FROM achievement_title WHERE (CharacterIdx = [ô]449[ô])
Dim Reader As SqlDataReader
oSQLConn.Open()
Reader = Command.ExecuteReader
While Reader.Read()
MsgBox(Reader(1))
End While
msg = éOO = q isso?
alguem pode ajudar trazer valor correto
0x0000000000000000000
seja mais claro por favor.
Ok.
O campo AchievementData é um Image (ou varbinary ou ole etc), que provavelmente é utilizado para guardar documentos ou outros arquivos. Até aÃ, sem problemas, mas acredito que aceite nulos sem possuir um valor padrão. Há como definir um valor padrão para campos desse tipo, assim como para quaisquer outros tipos. [ô]0x0000000000000000000[ô], porém, é equivalente á NULL.
CONVERT(varbinary(4800), AchievementData) pode (talvês até deve) ser substituido por CAST(AchievementData, varbinary), para evitar que o retorno [Ô]exija[Ô] um varbinary (variante binário) de tamanho fixo (variante fixo !?!?).
Ainda assim, o problema efetivo me parece ser um NULL no registro, ainda mais quando você cita a expressão 0x0000000000000000000, que aponta para uma matriz binária (byte) sem conteúdo.
Outro [Ô]pequeno[Ô] detalhe é que um tipo VARBINARY, sendo uma matriz de bytes, precisaria ser convertida em texto antes de aparecer em um MessageBox, mas isso até é automatizado, desde que haja conteúdo. Assim, novamente o NULL parece ser o problema.
Para tirar a dúvida, ou seja, saber se o registro está com o campo nulo, teste o código abaixo:
O campo AchievementData é um Image (ou varbinary ou ole etc), que provavelmente é utilizado para guardar documentos ou outros arquivos. Até aÃ, sem problemas, mas acredito que aceite nulos sem possuir um valor padrão. Há como definir um valor padrão para campos desse tipo, assim como para quaisquer outros tipos. [ô]0x0000000000000000000[ô], porém, é equivalente á NULL.
CONVERT(varbinary(4800), AchievementData) pode (talvês até deve) ser substituido por CAST(AchievementData, varbinary), para evitar que o retorno [Ô]exija[Ô] um varbinary (variante binário) de tamanho fixo (variante fixo !?!?).
Ainda assim, o problema efetivo me parece ser um NULL no registro, ainda mais quando você cita a expressão 0x0000000000000000000, que aponta para uma matriz binária (byte) sem conteúdo.
Outro [Ô]pequeno[Ô] detalhe é que um tipo VARBINARY, sendo uma matriz de bytes, precisaria ser convertida em texto antes de aparecer em um MessageBox, mas isso até é automatizado, desde que haja conteúdo. Assim, novamente o NULL parece ser o problema.
Para tirar a dúvida, ou seja, saber se o registro está com o campo nulo, teste o código abaixo:
[ô]...
Dim iParCode As Integer = 449
Dim parCode As String = [Ô]SELECT [Ô]
parCode &= [Ô]CharacterIdx, [Ô]
parCode &= [Ô]CONVERT(varbinary(4800), AchievementData) AS MATRIZ, [Ô]
parCode &= [Ô]TitleData [Ô]
parCode &= [Ô]FROM [Ô]
parCode &= [Ô]achievement_title [Ô]
parCode &= String.Format([Ô]WHERE (CharacterIdx = {0}) [Ô], iParCode)
Dim tb As New DataTable([Ô]Query1[Ô])
Using da As New SqlDataAdapter(parCode, oSQLConn.ConnectionString)
da.Fill(tb)
End Using
For Each dr As DataRow In tb.Rows
If IsDbNull(dr([Ô]MATRIZ[Ô])) = False Then
MsgBox(String.Format([Ô]{0} está nulo![Ô], iParCode))
Else
MsgBox(String.Format([Ô]{0} tem o tÃtulo {1}[Ô], iParCode, CType(dr([Ô]TitleData[Ô]), String)))
End If
Next
[ô]...
bom ele não traz null so diz q não é possivel converter prompt
tentei exemplo disse erro no cast
tentei exemplo disse erro no cast
ainda estou com problema de exibir varbinary
Tópico encerrado , respostas não são mais permitidas