初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2022-09-03 15:28:36

ゆかり
Guest

ODBC接続について

質問させて下さい。
FileMakerServer19.5.3 にPHPから接続したいので
システムDNSにFileMakerODBCDriverで登録しました。
登録時のテストでは問題なく完了しました。

FileMakerFile : 入金管理.fmp12
TO : 入金管理
テーブル : 入金管理

PHPから

$dsn = 'add'; //登録したdsn名
$user = 'admin';
$password = 'パスワード';
$conn = odbc_connect($dsn,$user,$password);
$sql = 'select * FROM "入金管理" WHERE "有効flg"=1';
$result = odbc_exec($conn, $sql);

として接続してみたのですが、下記のエラーが返ってきます。
odbc_exec(): SQL error: [FileMaker][FileMaker] FQL0001/(1:32): There is an error in the syntax of the query., SQL state 42000 in SQLExecDirect in C:\Program Files\FileMaker\FileMaker Server\HTTPServer\conf\odbc_test\odbc_01.php on line 7

単純なSQLだと思うのですが何がSQLエラーなのか。。。
locolhost上のFileMakerServerにアクセスするのには、FileMakerODBCDriverのインストールだけでよいのでしょうか?クライアントは必要なのでしょうか?
わかる方いらっしゃったらお願いします。

---ゆかり

#2 2022-09-03 15:45:46

himadanee
Guest

Re: ODBC接続について

文法エラーですから、そのSQL文をデータビューアで実行してみては?

#3 2022-09-03 15:56:21

ゆかり
Guest

Re: ODBC接続について

himadanee wrote:

文法エラーですから、そのSQL文をデータビューアで実行してみては?

ご返信ありがとうございます。

データビューアでSQLを実行できるのでしょうか?
すみません調べたのですがちょっと方法がわかりませんでした。。。

---ゆかり

#4 2022-09-03 16:08:31

ゆかり
Guest

Re: ODBC接続について

私のPCにPHPとFileMakerODBCDriverをインストールして、ローカルファイルにアクセスしてデータビューアを監視するという事ですかね。
ゆかり

#5 2022-09-03 19:13:31

himadanee
Guest

Re: ODBC接続について

いや、そのファイルをFMで開けばExecuteSQL関数でSQLを実行できます。

#6 2022-09-04 10:12:06

ゆかり
Guest

Re: ODBC接続について

追加情報です。
ExecuteSQLは問題なく通りました。
調べていくとどうもメモリが関係しているようです。
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 2607045148673 bytes)

さてIISなのかPHPなのかODBCDriverなのかFileMakerServerなのか問題の切り分けが難しいです。。。

---ゆかり

#7 2022-09-04 10:47:57

himadanee
Guest

Re: ODBC接続について

PHPのメモリ設定が256MBなのでは?余裕があるならもっと増やすか、SQLの結果が少なくなるように条件を追加しないとだめなんでしょう。
と思ったら、「2607045148673 bytes」と言ってるので、2.5TBぐらい必要ってことで、増やす方は無理そうですね。。。

#8 2022-09-05 14:24:24

himadanee
Guest

Re: ODBC接続について

SQLをCOUNT(*)にすれば実行できますかね?
結果の件数が多いのでなく単純にPHPのコードがミスってて無限ループ的になってるとかもありえるかも...

#9 2022-09-05 15:24:45

ゆかり
Guest

Re: ODBC接続について

himadanee wrote:

SQLをCOUNT(*)にすれば実行できますかね?
結果の件数が多いのでなく単純にPHPのコードがミスってて無限ループ的になってるとかもありえるかも...

ご返信ありがとうございます。
SQL変えても状態変わらずですね泣
Fatal error: Out of memory (allocated 2097152) (tried to allocate 2065879269632 bytes) in C:\Program Files\FileMaker\FileMaker Server\HTTPServer\conf\odbc_test\odbc_01.php on line 7

FilerMakerServer19.5.3の同梱ODBCDriver(19.5.1.2)側の問題でしょうか?
---ゆかり

#10 2022-09-05 15:52:09

himadanee
Guest

Re: ODBC接続について

COUNT(*)ならデータは1行しかないので、それで2TBもメモリが必要になるのはODBCとかFMとは関係なくPHPのコードがおかしいんだと思います。
しかし、今回は設定の上限に達する以前にメモリが不足してますね。
サーバのメモリは十分ありますか?

#11 2022-09-06 05:57:46

ゆかり
Guest

Re: ODBC接続について

himadanee wrote:

COUNT(*)ならデータは1行しかないので、それで2TBもメモリが必要になるのはODBCとかFMとは関係なくPHPのコードがおかしいんだと思います。
しかし、今回は設定の上限に達する以前にメモリが不足してますね。
サーバのメモリは十分ありますか?

16Gあるので充分だと思われます。
—-ゆかり

#12 2022-09-06 07:04:33

himadanee
Guest

Re: ODBC接続について

ハードの実装メモリでなく、現在使用可能なメモリ量です。
1回目のエラーメッセージでは、PHPの設定サイズを超えたエラーですが、2回目のは、そこに達する前にエラーになってるので、空きメモリが2MBぐらいしかなかったのだと思います。
よくわからないなら、一度再起動してみては?
しかし「(tried to allocate 2065879269632 bytes) 」と、2TB使用しようとしてますから、どっちにしてもPHPのプログラム(odbc_01.php)を直さないとエラーは解決しないでしょう。

#13 2022-09-08 10:51:24

ゆかり
Guest

Re: ODBC接続について

お騒がせしました。
PDOで接続できました〜
himadanee様 最後まで付き合っていただきありがとうございました(m__m)
—-ゆかり

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 521.32 KiB (Peak: 525.86 KiB) ]