1

MySQL データベースを使用して ac# プロジェクトに取り組んでいます。ログ ファイルがあり、このファイルをデータベースに保存したいと考えています。

実際のファイルをデータベースに保存したいのですが、私が見たのは、それを文字列にエンコードするか、バイトを文字列に書き込んでデータベースに入れる必要があるということです。ファイルを保存する方法です。コマンドにファイルパスを与えるだけで、ソフトウェアですべてのエンコードを行う必要なく、データベースに保存できると思いました。

これで違いが生じる場合は、PHP から再度取得する必要がありますが、これは問題ではないと思います。

4

5 に答える 5

1

これは少しばかげているように聞こえるかもしれませんが、LOAD_FILE 関数を調べる必要があります。

MySQL ドキュメントの例を次に示します。

mysql> UPDATE t
        SET blob_col=LOAD_FILE('/tmp/picture')
        WHERE id=1;

ログ ファイルが BLOB に収まるほど小さい場合は、それが唯一の方法です。

ログ ファイルが大きすぎる場合は、ログ ファイルをどこかにアーカイブし、代わりにファイルの場所を保存します。

于 2012-08-15T20:15:46.860 に答える
1

はい、ファイルを保存するには、文字列またはバイトにエンコードする必要があります。もう 1 つの方法は、ログ ファイルの場所を保存し、代わりにログ ファイルをディスク上のどこかに保存することです。

于 2012-08-15T19:50:42.723 に答える
0

プログラムはログ ファイルを解析し、それを SQL クエリに変換する必要があります。

于 2012-08-15T19:49:39.053 に答える
0

ファイルの内容をデータベースに保存する場合は、はい、エンコードするか、バイトをテーブル列に保存します。それを回避する方法はありません。

ファイルへのパスを単純に保存したい場合は、パスをパラメーターとして渡すだけでMySQLCommand済みますが、ファイルシステム内でファイルを移動すると、レコードは明らかに無効になります。

どちらのアプローチが最適かに関するやや関連する質問へのリンク: ファイルのコンテンツをデータベースに保存するか、単にパスをファイル システムに保存します。

于 2012-08-15T19:50:15.797 に答える
0

Log4Net を使用しないのはなぜですか? データベースに自動的にログを記録する機能があります。データベースを Log4Net に接続する方法の詳細については、https: //logging.apache.org/log4net/release/config-examples.html を参照してください。

orignal decayed link: http://logging.apache.org/log4net/release/sdk/log4net.Appender.AdoNetAppender.html

于 2012-08-15T19:53:19.987 に答える