みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。
FileMaker Server 19から出力したTopCallStatsファイルのターゲット列に記載の
「ファイル名::テーブル(120)」という値のテーブル番号?から、どのテーブルオカレンス名かを判別したいのですが
不可能でしょうか?
DDRで、DataSource または、RerationshipGraph をみればわかります。
Offline
https://help.claris.com/ja/server-help/ … l-log.html
にはテーブルIDと書いてあるけど、違うのかな?
ご返信ありがとうございます。
himadaneeさんのリンク先にある「ターゲット」という項目に記載の「テーブルID」で間違いありません。
公式に確認したところ、テーブル、テーブルオカレンス、フィールドといったものが作成されるタイミングで
特定のIDを自動割り振りしているとのことです。
テーブルIDが、どのテーブルオカレンスに紐づいているかはデータベースデザインレポートを見た感じ記載されておりませんでした。
※ブラウザのページソース上にしか表示されない等であれば、そこまで確認できておりません...
テーブルIDなら、色々方法はありますが一つには関数で計算(最後の引数にIDを入れる)
ExecuteSQL ( "SELECT tablename FROM filemaker_tables WHERE tableid=?";"";"";1065090)
1065090は、このファイルの2つ目のTOのものですが、質問の120というのは古いバージョンで作ったファイルなんでしょうかね...
ご返信ありがとうございます。
そうですね。古いバージョンで作成したfmファイルとなります。
なので、数字が120とかになっているんですかね・・・・
とりえず、SQLで取り出し出来るか確認してみます。
度々すみません。。。
例えば、TopCallStatsのターゲット列の項目が
「ファイル名::テーブル(130)::フィールド定義(19)」のような場合は、
<テーブルの場合>
ExecuteSQL ( "SELECT TableName FROM FileMaker_Tables WHERE tableid=?";"";"";130)
<フィールドの場合>
ExecuteSQL ( "SELECT * FROM FileMaker_Fields WHERE FieldId=?";"";"";19)
で、良いのでしょうか・・・?
SQLが違いました。
<フィールドの場合>
ExecuteSQL ( "SELECT FieldName FROM FileMaker_Fields WHERE FieldId=?";"";"";19)
テーブルの方は、DDRでもいいですが「ツール>名前を付けてXMLとして保存」の方でXMLファイルを保存する方が簡単ですかね。テキストエディタで開いて
TableOccurrenceCatalog
を検索すれば情報が見つかります。多すぎて見づらいかもしれませんが。
SQLでフィールド名をやるにはテーブル名も指定しないと
ExecuteSQL ( "SELECT FieldName FROM FileMaker_Fields WHERE tablename=? AND FieldId=?";"";"";"テーブル名";19)
<RelationshipGraph> の <TableList> にありますよ。
Offline
ご返信ありがとうございます。
DDRでの確認方法がいまいちわからず、Shinさんが仰っている<RelationshipGraph> の <TableList> に
IDらしきものを見つけられませんでした。。。
ExecuteSQLでテーブル名とテーブルIDは抽出できましたが、TopCallStatsに記載のテーブル(130)は見つけられませんでした。
※接頭に1065がついたテーブルがいくつかあり、その中で1065130というものはありました。
もしかして、このログのテーブルIDというのがベーステーブル(TOでなく)のIDなのではなかったかな?
DDRでデータソースの方を見ると、v19で作ったファイルでも
<BaseTableCatalog>
<BaseTable id="129" records="16" name="recursive">
129から始まってました。
IDのリストを見たければ、デザイン関数もあります。こっちはTO情報しか得られません。
https://help.claris.com/ja/pro-help/con … tions.html
ご返信ありがとうございます。
BaseTableCatalogで検索したら、それらしきものが出てきました...
クラリスのカスタマーサポートに問い合わせした際は、TopCallStatsのテーブル(130)はテーブルオカレンスですよ
とは言われたんですが、基本となるテーブルの番号っぽいですね。
解決しそうです。ありがとうございました。
Pages: 1
[ Generated in 0.005 seconds, 8 queries executed - Memory usage: 524.08 KiB (Peak: 528.98 KiB) ]