1

私はServerSQL2008を実行しているコンピューターを持っています。それは私がセットアップしたのではなく、インベントリを保持するために購入したこのソフトウェアによってセットアップされました。MYSQLデータベースに転送したいテーブルがあります(私のWebサイトはmysqlで動作するため、転送を実行したい理由です)。

そこで、SQL Server 2008からデータを読み取り、MYSQLのテーブルに挿入するVB.NETを使用してプログラムを作成することにしました。テーブルが同じように設定され、列ごとに同じ列とデータ型を持っていることを確認します。

私は完全にうまく転送するために1つのテーブルを手に入れました。ただし、この特定のテーブルを転送しようとしましたが、BINARY(8)タイプの列があります。MSSM自体を使用してサーバーコンピューターで選択を実行すると、binary(8)列の行に16進値が表示されることに注意してください。したがって、値は0x3920409F332D234のようなものです。

したがって、明らかに同じテーブルをMYSQLに設定しましたが、サーバーsqlからテーブルを引き出してmysqlに挿入しようとすると、エラーがスローされます(この特定の列だけです)。

VB.NETでは、Byte()配列を作成してデータを選択した後、そのデータを取得し、クエリステートメントを使用してそのデータをMYSQLに挿入しようとしましたが、「長すぎます」と表示されます。これがバイナリデータを保持するのに適切な変数であるかどうかはわかりませんでした。

正直なところ、このコラムが必要になるかどうかはわかりません。それが何なのかわかりません。しかし、私が必要とするほとんどのテーブルにはこのデータがあるので、安全に保管したいと思います。

TY

4

2 に答える 2

0

これは、編集の競合を検出するために使用される「タイムスタンプ」または「行バージョン」列のように聞こえます。あなたはおそらくそれを無視することができます。

ただし、コピーする場合は、バイナリをSQLにエンコードする必要があります。MySQLの構文はわかりませんが、SQLServerの場合は次を使用します。

 ''' <summary>'
 ''' Converts binary data to a String for use in an SQLS2005 SQL statement (e.g. "0x000000000000006A")'
 ''' </summary>'
 ''' <param name="data">Required Byte(). 0-based 1-dimensional array of binary data to convert</param>'
 ''' <returns></returns>'
 ''' <remarks></remarks>'
 Public Function Byte2SQL(ByVal data() As Byte) As String
   Dim sbl As New System.Text.StringBuilder("0x")
   For i As Integer = data.GetLowerBound(0) To data.GetUpperBound(0)
     sbl.Append(Right("00" & Hex(data(i)), 2))
   Next i
   Return sbl.ToString
 End Function
于 2012-12-05T00:23:59.747 に答える
0

まず、なぜデータをWebサイトデータベースに転送するのですか?そこに移動して値を読み取って表示できるようにする場合は、その列のコピーをスキップできます。簡単に言えば、データが何であるかさえわからない場合、どのように、そしてなぜデータを表示するのでしょうか。

次に、基本的にマルチユーザー環境での保存チェックとして、小さなバイナリ列(私のソフトウェアでは列名はTimestamp)を使用したソフトウェアを購入しました。基本的に、ソフトウェアはレコードを開くときに値を読み取り、保存するときにデータベース内の値が変更されていないことを確認します。そうでない場合は更新されます。その場合、「別のユーザーがこのレコードを変更しました。変更をやり直して、もう一度やり直してください」などの警告が表示されます。したがって、このバイナリ列がすべてである可能性があります。

ただし、それでもデータをコピーする場合、または少なくともバイナリ列の操作方法を理解する場合は、コードの一部を表示し、発生するエラーをより具体的にする必要があります。または、次のリソースをご覧ください。

MySQLのバイナリデータ

単純なMySQLバイナリデータの挿入

于 2012-12-05T00:29:11.377 に答える