oledb 接続を使用して、vb.net で foxpro フリー テーブルを開く必要があります。
しかし...列名だけを取得する必要があります。何かを「選択」する必要はありません。すべての空きテーブルを動的に参照し、すべてのファイルからすべての列のリストを設定し、各列の説明を含む別の空きテーブルに xref しようとしています。
私は現在、実用的なモデルを持っていますが、そうする必要があります...
SELECT TOP 1 FROM "File" ORDER BY 1
しかし、最大のテーブルでは、最初のレコードを読み取るだけで 2 分以上かかり、250 を超えるテーブルがあります。全体で、15 ~ 20 分かかります。
または、「ORDER BY」を使用せずにテーブルの最初のレコードのみを取得する別の方法はありますか?
これが私がこれまでに持っているものです。「ファイル」はパラメーターとして渡されます。
「C:\data\table1.dbf」のような情報が含まれます
Dim filePath As String
filePath = IO.Path.GetDirectoryName(file)
myOledbConnection = New OleDbConnection("Provider=VFPOLEDB.1;Data Source=" & filePath & ";Collating Sequence=MACHINE")
myOledbCommand = New OleDbCommand
myOledbDataAdapter = New OleDbDataAdapter
Dim fields, from, order As String
fields = "select top 1 *"
from = " from " & file
order = " order by 1"
myOledbCommand.CommandText = fields & from & order
myOledbCommand.Connection = myOledbConnection
myOledbDataAdapter.SelectCommand = myOledbCommand
myOledbDataAdapter.Fill(dt)
次に、データ テーブル (dt) を取得し、ループして列情報を取得します。
データセットを作成し、ウィザードを使用してディレクトリからすべてのテーブルをロードするときに、Visual Studio と同じくらい速く処理したいと考えています。テーブルからデータを読み取ることなく、すべての列情報を非常に迅速に見つけることができます。
さらに情報が必要な場合はお知らせください。
ありがとう。