OLE DB プロバイダーを使用して Fox Pro でテーブルの主キーを一覧表示するにはどうすればよいですか?
C# を使用し、ビルドを x64 ではなく x86 に切り替えると、Fox Pro の oledb プロバイダーを使用してテーブルに関する情報を表示できました。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Data;
namespace obtainFoxSchema
{
class Program
{
static void Main(string[] args)
{
OleDbConnection connection = new OleDbConnection(
"Provider=VFPOLEDB.1;Data Source=X:\\FREETABLES\\DATA;"
);
connection.Open();
DataTable tables = connection.GetSchema(
System.Data.OleDb.OleDbMetaDataCollectionNames.Tables
);
foreach (System.Data.DataRow rowTables in tables.Rows)
{
Console.Out.WriteLine(rowTables["table_name"].ToString());
DataTable columns = connection.GetSchema(
System.Data.OleDb.OleDbMetaDataCollectionNames.Columns,
new String[] { null, null, rowTables["table_name"].ToString(), null }
);
foreach (System.Data.DataRow rowColumns in columns.Rows)
{
Console.Out.WriteLine(
rowTables["table_name"].ToString() + "." +
rowColumns["column_name"].ToString() + " = " +
rowColumns["data_type"].ToString()
);
}
}
Console.Out.WriteLine("stop");
}
}
}
しかし、テーブル間の主キーまたは外部キーを見つけるために、返されたオブジェクトのどこを調べればよいかわかりません。
そのようなものがあるかもしれないアイデアはありますか?
はい、別の質問でこのコードを見つけましたが、Excel 2007 の Get External Data を使用して自分で接続文字列を作成しました。