Q70:サンプルの「データベース_アクセス(機能拡張版)」について
Q70-1:
サンプルのデータベース_アクセス(機能拡張版)について教えて頂きたいのです。SQLSERVER2005(ODBC経由)で動かそうとするとツリー表示が対応できないため、ツリー表示を外して、SQL文で表示したデータに対して、行を選択して参照・挿入・更新・削除を行う形に直そうとしているのですが、なかなか理解できないため進みません。
参考になる資料やサンプルがありましたらお願いします。
A70-1:
ODBC経由でのデータベースへの接続では、動作不正が少なからず発生するため、 特にODBCである必要がない場合には、私どもではJDBC接続をお勧めしております。
JDBCを利用したSQL Serverへの接続方法は以下の通りです。
(1)『Microsoftダウンロードセンター』から「Microsoft SQL Server 2005 JDBC Driver 1.2」を入手します。
(2) ダウンロードして解凍したフォルダーの中にある「sqljdbc.jar」を
\MZPlatform\Java\jre6\lib\extフォルダーの中にコピーして入れます。
Windows認証方式をお使いの場合は、
「sqljdbc_1.2\jpn\auth\x86またはX64¥sqljdbc_auth.dll」も入れます。
(3) \MZPlatform\2.2\AP_DATA\Sampleフォルダー内の「データベースアクセス _1.mzax」をアプリケーションビルダーからロードし、実行します。
(4) 小さな画面の接続文字列を以下のように書き換えます。
ドライバ com.microsoft.sqlserver.jdbc.SQLServerDriver
サーバ jdbc:sqlserver:// サーバ名:1433
(ユーザー 必須
パスワード 必須
ポート省略時デフォルト:1433
データベース指定時文字列:
jdbc:sqlserver://サーバー名:1433;databaseName=データベース名)
(また、Windows統合認証を使用する場合は、integratedSecurity=trueをデータベース名;の後に付けます)
(4)については、接続文字列を書き換えたサンプルアプリケーションを掲載致しますので、ご参考になれば幸いです。このサンプルは『データベースアクセスチュートリアル』に基づいていますが、さらに機能を拡張したものです。
関連ファイル:データベースアクセス_3(機能拡張版SQLServer).mzax
Q70-2:
早速、関連ファイルを実行してみました。データベースのへのアクセスはOK、SQLによるテーブル表示はOK、ツリーのテーブルを選択すると以下のようなエラーメッセージが出ます。
データベースのアクセス中にエラーが発生しました[データベースアクセス[ID:5-2](KEY:”データベースアクセス2”)]
(Exception:オブジェクト名’データベース名.テーブル名’が無効です。)
となってしまいます。どうしてでしょうか。教えてください。よろしくお願いします。
A70-2:
まだ調査の途中なのですが、現時点で考えられることについてご報告します。
アプリケーションを起動したときの小さな方のウィンドウで、[スキーマ使用]にチェックを入れ、スキーマ名を指定してください。スキーマ名が分からない場合には、「dbo」と入れてみてください。
これはSQL Serverのユーザ権限等に関わることなのですが、運用時にはスキーマ名を指定する必要があるのだそうです。
Q70-3:
先日いただいたサンプルについて質問です。データベースアクセス_3(機能拡張版SQLServer).mzaxの接続設定をして実行します。参照を実行し、うまくいったのを確認して別名で保存します。保存したファイルを実行すると、参照の時に指定したデータ以外にも表示されてしまいます。
A70-3:
以前お送りしました「データベースアクセス_3(機能拡張版SQLServer).mzax」は\MZPlatform\2.3\AP_DATA\Sampleフォルダ内にある「データベースアクセス_3(機能拡張版).mzax」ファイルと同様のものです。
お知らせ頂いた不具合は、自動的にデータの内容に合わせてコンポーネントを生成・配置しており、場合によって生成されたコンポーネントが残ることがあったためですが、最近のバージョンでは改善されています。
大変お手数ですが、お手元にある「データベースアクセス_3(機能拡張版).mzax」の接続画面の文字列を書換えてお試し下さい。
小さな画面の接続文字列を以下のように書き換えます。
ドライバ com.microsoft.sqlserver.jdbc.SQLServerDriver
サーバ jdbc:sqlserver:// サーバ名:1433;
データベース名 databaseName=データベース名(空欄可)
スキーマ名を入力し、スキーマ使用にチェック
(Windows統合認証を使用する場合は、
integratedSecurity=trueをデータベース名;の後に付けます)
Sampleフォルダ内のアプリケーションファイルでお試し頂いても、改善されない場合は、どうか再度御連絡頂ければ幸いです。