0

取得したコードから、テーブル名と、テーブルに追加する後続のすべての列を手動で取得する必要があります。すべてのテーブル名を非常に簡単に収集できますが (信じています)、列ごとに探しているものを正確に確認できません。列のデータとデータ型を知る助けが必要です (テーブルを含む古い mysql データベースが失われました)

useroptions.vb :http://pastebin.com/84SxTzfz
useroptionscommon.vb :http://pastebin.com/2rxf3e2y
Connections.vb :http://pastebin.com/CpWqt2m8
userpersistence.vb :http://pastebin.com/TaAex24Q
streamprocessor.vb :http://pastebin.com/Tazr1s8p
serverpersistance.vb :http://pastebin.com/qvnCN2PY
frontpagehub.vb :http://pastebin.com/FYyLH4qP

追加する必要があるテーブル、列、および列のデータ型を把握するために何を探すべきかを誰かが教えてくれたとしても。大変ありがたく存じます。データベースを再構築し、必要なものをすべて把握する方法を見つけるために何日も費やしました。

4

1 に答える 1

0

キーワード INSERT、UPDATE、DELETE、および SELECT を検索して、プログラム ファイル内の SQL ステートメントに到達し、テーブルの名前とテーブルの列を見つけます。SQL ステートメントで使用されるパラメーターに指定された値から、最も近い SQL データ型情報を取得できます。WHERE 句の列に基づいて主キーになる可能性のあるものについてある程度のアイデアが得られるかもしれませんが、非主列も WHERE 句に含まれる可能性があるため、一部の列を主キーとして決定するには、列の使用目的に関する判断と知識が必要です。

たとえば、useroptions.vb ファイルに次のコードがあります。

                Dim Connection As New MySqlConnection(Utils.connectionString) : Connection.Open()
                Dim Command As New MySqlCommand("UPDATE custom_user_data SET `" + name + "`=@value WHERE userID=@userID;", Connection)
                Command.Parameters.AddWithValue("@value", value)
                Command.Parameters.Add("@userID", MySqlDbType.Int32).Value = userID
                Command.ExecuteNonQuery()

ここに UPDATE ステートメントがあります。最初の識別子 custom_user_data はテーブルの名前です。変数名には、把握しなければならない列名が 1 つ含まれています。WHERE 句に列名 userID が含まれています。パラメータからいくつかの SQL データ型情報を取得できます。残念ながら、私は VB プログラマーではないため、これ以上の情報を提供する立場にはありません。誰かが指摘したように、さまざまな制約 (主キー、外部キー、チェック制約)、null 可能性情報、トリガー、ストアド プロシージャなどをプログラムから取得することはほとんど不可能です。幸運を。

于 2013-09-10T04:39:29.623 に答える