Stefan Kristensen wrote:
> I en MS SQL Server 2000 database har jeg en tabel med et varbinary(40) felt.
> Nu skal jeg bruge værdien af feltet i VB 60. Jeg har en stored procedure,
> der returnerer et recordset med feltet.
> Hvis jeg udskriver feltet direkte i VB får jeg en stribe ?.
>
> Hvordan hulen får jeg denne hex værdi i feltet lavet om til en VB streng?
Er det ikke et spørgsmål om at du får en streng som indeholder ascii
værdier der ikke findes i det brugte tegnsæt?
Hvis du gerne vil fremvise ascii værdierne fra strengen i et andet
format har du flere muligheder. Prøv at kalde nedenstående
ShowAsciiValues() med din streng fra databasen.
Public Sub ShowAsciiValues(ByVal sMix As String)
Dim i As Integer
Dim sOutAscii As String
Dim sOutHex As String
For i = 1 To Len(sMix)
sOutAscii = sOutAscii & CStr(Asc(Mid(sMix, i, 1))) & " "
sOutHex = sOutHex & ByteAsHex(Asc(Mid(sMix, i, 1))) & " "
Next i
Debug.Print "------------------------------"
Debug.Print sOutAscii
Debug.Print sOutHex
End Sub
Public Function ByteAsHex(ByVal bAscii As Byte) As String
Dim bHigh As Byte
Dim bLow As Byte
bHigh = (bAscii - (bAscii Mod 16)) / 16
bLow = bAscii Mod 16
ByteAsHex = Chr(IIf(bHigh > 9, bHigh + 54, bHigh + 48)) &
Chr(IIf(bLow > 9, bLow + 54, bLow + 48))
End Function
Disclaimer: Det er noget jeg lige bankede sammen så det kan sikkert
optimeres
Vh,
Claus