• ベストアンサー

ユーザーテーブルとシステムテーブルを区別したい

カテゴリーが違ったらすみません。 VC++のプログラムで SQLTables,SQLBindCol関数を使ってDB上のテーブル名の一覧を取得しています。 この時、システムテーブル(例えば、AccessならMSys_...,Oracle9なら_ALL_INSTANTIATION_DDL等)も取得してしまいます。 ユーザーが生成したテーブルだけの一覧を作りたいので困っています。 ユーザーが生成したテーブルとシステムテーブルを区別する方法があったら教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

SQLBindCol(hstmt,3,SQL_C_CHAR,tableName てな事をしていると思いますが、 SQLBindCol(hstmt,4,SQL_C_CHAR,tableType みたいにして、テーブルタイプが取れます。 後はループの中で "SYSTEM TABLE"(だったかな)をオミット。 ここよか、言語系カテで。

kimitsjin
質問者

お礼

ありがとうございました。 早速、やってみます。

関連するQ&A

  • 「○○~」で始まるテーブル一覧

    SQLで「テーブル名が『○○~』で始まるテーブル一覧を取得」することは可能でしょうか?可能な場合、どのように記述すれば良いのでしょうか?なお、DBはOracleです。

  • テーブルの更新日時取得方法について

    MySQLv5.1+InnoDBエンジンのDBで質問です。 テーブルの最終更新日時とかを取得して、一定時間更新の無いテーブルを 見つける仕組みを作ろうと考えています。 (OracleだとUSER_TABLESなどのLAST_DDL_TIMEを見たい) 既に、「SHOW TABLE STATUS で出てくる、Update_time の項目を見る」 は試してみたんですがNULLになっていて見られないです・・ (InnoDBはUpdate_timeに非対応?) 代替の方法など、もしあれば教えてください。 よろしくお願いします。

  • システムテーブルについて

    こんにちは SQLサーバー2000のシステムテーブルについて質問があります。 現在、DB内の各テーブルがどのファイルグループに属し、 どの物理ファイルがどのファイルグループにリンクしているか、を調べています。 これらの情報を、システムテーブル(sysfilesなど)から一括で取得したいと思っていますが、どなたか取得方法をご存知の方がいれば教えて頂けませんでしょうか?? ちなみに、ひとつのファイルグループに対し、複数の物理ファイルが存在し、どの物理ファイルが現在有効として使用されているのか判断できかねています。 以上宜しくお願いします。

  • Oracle8iでテーブルをエクスポートする方法

    Oracle10gを使用しています。Oracle8iから特定のテーブルを抽出してOracle10gに入れようとしましたが、Oracle10gのexpコマンドは互換性の問題で8iに対して使えませんでした。そこでOracle8iのexpコマンドを使用しようかと考えましたが、テーブルごとのエクスポートができないとのことで不可(データベースが大きすぎるため、そもそも8iのExpコマンドを実行できる権限を持っていないのでできませんが)。 仕方がないのでExpコマンドはあきらめて、テーブル定義抽出→データをCSVまたはSQLで抽出という手順でデータを移そうかと考えています。データの抽出はできたのですが、テーブル定義の取得は10gで使えるdbms_metadata.get_ddlが使用できないので取得できずにこまっています。8iでテーブル定義を取得するにはどうしたらいいのでしょうか? なお当方8iのデータベースのSystem/Sys権限を所有していないません。また8iがインストールされているサーバへログインすることもできません。それを考慮した上で実現可能な方法をご提示願います。

  • 2テーブルが同じユーザテーブル参照するときの結合

    2つのテーブルで、同じユーザテーブルを参照してデータ取得したいのですが、 どうやって結合すれば良いのでしょうか? ■概要 ・ユーザがアクションに挑戦すると、結果を表示 ・その際、「アクション作成者」と「アクション挑戦者(ユーザ)」を表示したい ※「作成者」「挑戦者」は、同じ「user」テーブルで管理したい ■3テーブル ・「result」「action」「user」 ・「result」「action」テーブルには、それぞれ「user_id」カラムがある ・「result」テーブルには、「action_id」カラムがある。1対多? ■知りたいこと ・一気にまとめて一覧として取得する方法 ・最終的に「結果」と、「result」「action」それぞれに対応した「user」テーブルの「name」カラムを取得したい ■試してみたこと ・これだと「挑戦者名」が取得できない       SELECT *        FROM result r         LEFT JOIN `action` a ON r.`action_id` = a.`id`         LEFT JOIN `user` u ON r.`user_id` = u.`id` ・これだと「挑戦者」のユーザIDしか取得できない       SELECT *,a.user_id AS actionuser_id        FROM result r         LEFT JOIN `action` a ON r.`action_id` = a.`id`         LEFT JOIN `user` u ON a.`user_id` = u.`id`

    • ベストアンサー
    • MySQL
  • Oracleの管理用ユーザ

    Oracleの管理ユーザについて質問させてください。 構築したOrace 11.2.0.3.0 データベース上にどのようなユーザ一覧があるのか 調査したところ次のユーザがあることが分かりました。 1 IRISMON 2 PERFSTAT 3 APPQOSSYS 4 DBSNMP 5 ORACLE_OCM 6 DIP 7 OUTLN 8 SYSTEM 9 SYS IRISMON はOracle 11gのDBに初めから存在するユーザなのか知りたいと 思っています。私が構築した環境ではないため、前任者が個別にcreateした ユーザなのか分からず、かつ他に11gの環境が無いため確認ができないのです。 IRISMONが11gに初期からあるユーザなのかご存知であれば教えていただけませんか。

  • 各ユーザーの記事が閲覧できるブログシステム

    (複数人の)ユーザーが記事を投稿し、各ユーザーのURLでそのユーザーの記事が閲覧できるブログシステムを考えております。 しかし、各ユーザのURLにアクセスしたとき、そのユーザーのデータをどのような方法で取得すれば良いのかわからず質問させていただきました。 以下、詳細となります。 ※MYSQLデータベーステーブル ・user_table id 名前 10 山田 11 鈴木 12 伊藤 ・,article_table id user_id url     text 1 10    yamada  山田です。 2 11    suzuki   鈴木です。 3 12    itou     伊藤です。 ※流れ 1,各ユーザーは管理画面にログイン 2,記事投稿ページで本文を入力し、投稿ボタンを押すとarticle_tableにデータが格納される。 3,domain.com/○○○(〇に入るのはyamadaなど、各ユーザーのurl) にアクセスすると、そのユーザーが投稿したarticle_tableのtextが表示される。) ※質問内容 domain.com/〇〇〇に、そのユーザーが投稿したtextを表示されるには、 <?php $st=$db->prepare("select * from article_table where user_id=:user_id"); $st->execute(array(":user_id"=>$user_id)); $data=$st->fetch(); echo $data["text"]; 、、、、 ?> といったように、$user_idによってそのユーザーのデータを引っ張ってくるかと思いますが、このとき$user_idの値はどのように得る方法が一般的なのでしょうか? ・方法(1) URLをdomain.com/〇〇〇?user_id=△△△として$_GETで取得すれば可能ですが、 一般的なアメブロなどのブログシステムでは、そのような変数はURLについていないかと思います。 ・方法(2) あらかじめユーザーごとのフォルダにuser_id.txtのようなファイルを用意し、そこに書かれているidを読み込んでいるのでしょうか? ・方法(3) 管理画面からユーザーが記事を投稿した時に、$user_idをファイルに埋め込んだ動的なphpファイルを生成して保存しているのでしょうか? <?php $user_id=10; $st=$db->prepare("select * from article_table where user_id=:user_id"); $st->execute(array(":user_id"=>$user_id)); $data=$st->fetch(); echo $data["text"]; 、、、、 ?> このソースごと含めてユーザーファイルを生成してしまう。 ただ、やり方が今のところわかっておりません。 ・方法(4) 別のなんらかの方法 ご存知の方いらっしゃれば、ご回答いただければ幸いです。 尚、各ユーザーURLのページは、静的なページ(html)ではなく、動的なページ(php)となります。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PostgreSqlのテーブル一覧が欲しい

    PostgreSqlのテーブル一覧が欲しい pg_class(のrelkind = 'r'の条件)にテーブルの情報が入っています。 これを自作テーブルとシステムが生成したテーブルに別けたいのですが、どの区分を見ればわかりますか?

  • エラー時にテーブル名を取得したい

    エラー時にテーブル名を取得したい タイトルの通り、テーブル名をsqlexception 等の例外アクセスエラー発生時に取得したいと 考えております アクセスできなかった対象テーブル名を SqlExceptionのパラメータなどから 取得できるでしょうか DBはoracle10gです

  • ユーザーの追加について

    環境Oracle 8.0 下記の2データベースが起動しています DB名前:wrk01 ユーザー :USR1,USR2 USR1:全テーブルに読み書き可能 USR2:全テーブルに読みのみ可能 テーブル :TR_JOB1,TR_JOB2,TR_ADDRESS,TR_TEL DB名前:TES01 ユーザー :USR1,USR2 USR1:全テーブルに読み書き可能 USR2:全テーブルに読みのみ可能 テーブル :TR_JOB1,TR_JOB2,TR_ADDRESS,TR_TEL 質問1  DB:TES01 にユーザー:USR3を追加し  テーブル :TR_JOB1 :読み書き可能  テーブル :TR_JOB2 :読みのみ可能  テーブル :TR_ADDRESS:読みのみ可能  テーブル :TR_TEL :読みのみ可能  を構築したい場合、  どのようにすればいいのでしょうか?  SQL文等ご教示くださいます様お願いします