このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

FMProのDBファイルの指定

発言者:iijima
( Date Wednesday, May 08, 1996 17:11:31 )


飯島@NTTです。
いつも質問の書き込みばかりで申し訳ありません。
また質問ですが、宜しくお願いします。

FMProのDBファイルを2つ起動させて、それぞれに
対応したCGIを作り、別々の作業をさせようと考えています。
そこでCGIの中で、DBファイルの指定を行ってますが
うまく切り替わりません。
それどころかDBファイルにアクセスさえしません。
そこで、下記に示すactivateとopen mydbを外して行うと
ちゃんと動作しますが、DBファイルの切り替えができていないようです。
これは、もともと2つのDBファイルの操作はできないのかな〜なんて
涙流して画面を睨む毎日が続いています。
ご指導下さい。

***CGI No1の中身***
property mydb : "Macintosh HD:www:DB1-file"
.....
tell application "ファイルメーカー Pro" 
 try
  activate
  open mydb
.....

***CGI No2の中身***
property mydb : "Macintosh HD:www:DB2-file"
.....
tell application "ファイルメーカー Pro" 
 try
  activate
  open mydb
.....

田中求之 さんからのコメント
( Wednesday, May 08, 1996 17:30:51 )

property myDB:  "Macintosh HD:www:DB1-file"

となっている(myDB にはファイルパス)のでしたら、

tell application "ファイルメーカー Pro" 
  try
   activate
    open file mydb
         ^^^^

というように、file という指定をする必要がるのですが、この点は大丈夫
ですか?(スクリプトの写し間違いかとも思ったのですが)

iijima さんからのコメント
( Thursday, May 09, 1996 14:06:02 )

CGIの中から抜けていました。
open file mydbとして動作しました。
どうもありがとうございました。
一つ思ったのはファイルパスでフォルダ名に*** Folderという
名前を付けると動作しないようです。
フォルダ名をそのまま***と付けないといけないようです。
幼児な内容ですみません。

田中求之 さんからのコメント
( Thursday, May 09, 1996 19:25:15 )

>一つ思ったのはファイルパスでフォルダ名に*** Folderという
>名前を付けると動作しないようです。

フォルダーのパスの場合でも、ファイル操作を行うコマンドのパラメーターとして
使用する場合には file "....." という書き方になります。あるいは alias "...."
を使うことになりますね。

file <path> という指定方法は、ファイルだけでなく、フォルダーにも用いられ
んですよ(FSSpec というデータの型になります)。

フォルダーを指定する場合に、folder <path> という書き方が通用するのは、
Finder の内部で作業を行っているときです。

このへんは、確かに混乱しやすいですね。

初心者佐々木 さんからのコメント
( Friday, September 06, 1996 15:51:04 )

いきなりで申し訳ないのですが、2つのFMProのDBファイルの使用について質
問があるのですが。
 実は2つのファイルを(一つ目のファイルのフィールド数が8・二つ目の
ファイルのフィールド数が10)apple scriptでhtmlファイルに変換しよう
とプログラムしたのですが、”スタックがあふれました”というエラー
メッセージが表示されてうまくいきません。自分なりに考えてみると多分、
フィールド数が18個もあるということと、fmproのファイル2つのデータを
applescriptのプログラムで合成していることと、開いたfmproの2ファイルを
プログラム上で閉じていないこと、これらのいずれかが、起因していると思う
のですが、apple scriptでプログラムを打ちはじめてから1週間ほどしか経て
いないため、どうしたら良いか解りません。
どうか良い解決法を宜しくお願いします。