タイトルFileMaker Developer 5を使う:Javaからの利用 - プログラムソースカテゴリーJava, データベース
作成日2000/8/9 15:58:28作成者新居雅行
○Applet1.java

package FMP_Access;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.sql.*;

public class Applet1 extends Applet
{
List rList; //アプレット内に配置するリスト

public void init()
{
setLocation(new java.awt.Point(0, 0)); //アプレットの左上を原点に
setLayout(new BorderLayout()); //レイアウトはBorderLayoutを使う
setSize(new java.awt.Dimension(400, 200)); //アプレットのサイズを指定
setBackground(Color.orange); //アプレットの背景はオレンジ色に

add(new AccessButton("Get Data"), "North"); //ボタンをNorthに配置
add(rList = new List(), "Center"); //リストをCenterに配置
}

class AccessButton extends Button implements ActionListener {
public AccessButton(String label) {
super(label);
this.addActionListener(this);
}
public void actionPerformed(ActionEvent e) { //ボタンをクリックした時に呼び出される
Connection fmpCon = null;
try {
Class.forName("com.fmi.jdbc.JdbcDriver"); //JDBCドライバのロード
fmpCon = DriverManager.getConnection("jdbc:fmpro:http://192.168.0.101"); //接続オブジェクトの確保
Statement st = fmpCon.createStatement(); //発行するSQLコマンドの生成
st.setMaxRows(100); //行数の上限を入れないと大きなDBで問題が出た
st.execute("select * from \"テストデータベース\""); //SQLコマンドを実行する
ResultSet rs = st.getResultSet(); //実行した結果セットの取得

rList.add("***フィールド1***/***フィールド2***"); //リストに文字列を設定
while(rs.next()) //結果セットを順次三唱
rList.add(rs.getString("フィールド1") + "/" + rs.getString(2));
//フィールド名による参照とフィールド番号による参照
fmpCon.close(); //接続を閉じる
}
catch(Exception ex) {
System.out.println("#ERROR#"+ex.getMessage());
}
}
}

}



○Applet2.java

package FMP_Access;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import fminc.web.*;

public class Applet2 extends Applet
{
List rList;

public void init()
{
setLocation(new java.awt.Point(0, 0)); //アプレットの左上を原点に
setLayout(new BorderLayout()); //レイアウトはBorderLayoutを使う
setSize(new java.awt.Dimension(400, 200)); //アプレットのサイズを指定
setBackground(Color.pink); //アプレットの背景はピンク色に

add(new AccessButton("Get Data"), "North"); //ボタンをNorthに配置
add(rList = new List(), "Center"); //リストをCenterに配置
}

class AccessButton extends Button implements ActionListener {
public AccessButton(String label) {
super(label);
this.addActionListener(this);
}
public void actionPerformed(ActionEvent e) { //ボタンをクリックした時に呼び出される
try {
FMProProxy fmProxy = new FMProProxy( new java.net.URL( "http://192.168.0.101" ) );
//まず、ファイルメーカーProのプロキシを用意する。URLはWebコンパニオンが稼動しているマシン

FMProRequest req = new FMProRequest(); //リクエストのオブジェクトを作成
req.setDatabaseName( "テストデータベース" ); //データベース名を指定
req.setLayoutName( "レイアウト1" ); //フォーム名を指定
req.setAction(FMProRequest.ACTION_FIND_ALL); //実行するコマンドを指定する

FMProResponse res = fmProxy.processRequest(req); //リクエストを処理する
for( int i=0; i < res.getReturnedCount(); i++) { //応答の結果リストを順に処理する
rList.add(res.getFieldValue(i, "フィールド1")[0] +"/" + res.getFieldValue(i, 1)[0]);
//フィールドの値の取り出し方はちょっと独特
}
} catch(Exception ex) {}
}
}
}
関連リンク