■20865 / inTopicNo.3) |
Re[2]: クエリ名一覧、クエリ名をキーにSQL文取り出し |
□投稿者/ やぎ (2回)-(2008/06/18(Wed) 19:04:38)
|
bad14mgさん、レスありがとうございました。
> この辺り > http://msdn.microsoft.com/ja-jp/library/system.data.oledb.oledbconnection.getoledbschematable.aspx
一度読んだんですよ...、このページ。>< だけど制約列とか意味分からん単語が出てきて理解を諦めたんですが、やっぱりこのページですか。
んで、試行錯誤でやってみました。 意味を理解してやっていないのですが。 こんなんでいいんですかね...。
// クエリ名とそのSQL文を取得 private static Dictionary<string, string> GetViewSchema(string connectionStr) { OleDbConnection oleConn = new OleDbConnection(connectionStr); oleConn.Open(); DataTable schemaTable = oleConn.GetOleDbSchemaTable(OleDbSchemaGuid.Views, new object[] { }); oleConn.Close();
Dictionary<string, string> mapSQL = new Dictionary<string, string>(); foreach (DataRow dataRow in schemaTable.Rows) { object queryName = dataRow["TABLE_NAME"]; object sql = dataRow["VIEW_DEFINITION"]; mapSQL.Add(queryName.ToString(), sql.ToString()); }
return mapSQL; }
GetOleDbSchemaTableの引数の意味が分からなかったのですが、 【引数1】戻り値のDataTableのスキーマを指定 【引数2】戻り値のDataTableの行を絞り込むための条件 で良いのかなぁ。
教えてもらったページにある例では、第2引数で与えられるobject[]の3番目(0開始)の要素に"TABLE"が指定されているから、 TABLE_NAMEというフィールド(0開始で3番目の列)のうち、値が"TABLE"であるものだけが戻り値のDataTableの行として追加されて返されているわけですね?
|
解決済み
|