Q173:@あるクライアントPCから、SQLデータベースに接続したいのですが、接続時に下記エラーが表示されます。データベースのアクセス中にエラーが発生しました(Exception:このドライバは、統合認証を行えるようには構成されていません)
A大量に文字が登録されている項目について、元の管理システム画面上では、改行されて表示されていますが、作成したMZプラットフォーム上では、1行で表示されます。
Q173-1:
@あるクライアントPCから、SQLデータベースに接続したいのですが、接続時に下記エラーが表示されます。
データベースのアクセス中にエラーが発生しました
(Exception:このドライバは、統合認証を行えるようには構成されていません)
行っている事:
・私のPCは正常に接続できますので、私のローカルのsqljdbc4.jarを、該当PCのextフォルダ内にコピー
・該当PCは64bit(Windows7)ですので、マイクロソフトのサイトからjdbc4をダウンロードし、64bit用のsqljdbc_auth.dllをextフォルダ内にコピー
・ODBCでの接続をテストしましたが、問題無いようです。
原因は何でしょうか。
A改行について
先のユーザー情報画面ですが、おかげさまで情報表示がほぼできました。
大量に文字が登録されている項目について、元の管理システム画面上では、改行されて表示されていますが、作成したMZプラットフォーム上では、1行で表示されます。元のデータには改行コードが入っている状態なのですが、MZプラットフォームで何かのtrueをfalseに変えたりして、改行表示を反映させる事は可能でしょうか。FAQを読むと、SQL文で対応する記事がありましたが、どうなのでしょうか。
A173-1:
> @あるクライアントPCから、SQLデータベースに接続したいのですが、接続時に下記エラーが表示されます。
ドライバーファイルへのアクセス権の問題が考えられます。
> ・私のPCは正常に接続できますので、私のローカルのsqljdbc4.jarを、該当PCのextフォルダ内にコピー
>・該当PCは64bit(Windows7)ですので、マイクロソフトのサイトからjdbc4をダウンロードし、64bit用のsqljdbc_auth.dllをextフォルダ内にコピー
このドライバーファイルのどちらか、あるいは両方に、ユーザーにアクセス権がなく、使用できない状態になっている可能性があります。
ドライバファイルのアクセス許可は、適宜状況に合わせて変更をお願い致します。
例えばアドミニストレータ権限のWindowsアカウントでダウンロードしたJDBCドライバファイルを他の一般ユーザーアカウントで利用しようとしても、アクセスできていない場合があります。
もし上記ご確認頂いても、改善されない場合には、どうぞ再度ご連絡下さい。
> A改行について
画面表示に使っている部品は[テキストフィールド]ですが、これは『一行の文字列を入力、表示する』ものです。改行文字が入っていても、一行で表示されます。改行文字は消えてしまう訳ではありません。
[テキストエリア]なら、改行も含めた長い文字列を表示することができますので、改行が含まれると分かっているデータを表示する部品は[テキストエリア]に変更して頂くのが宜しいかと思います。
なお[データベースアクセス]で取得したデータを一旦[テーブル]や[テーブル格納変数]に全データを設定しますが、セルデータに改行文字が含まれていても消えてはいません。
MZPlatform次期バージョンでは[テーブル]の属性情報を変更すると、セルに改行を含む文字列も表示できるようになる予定です。
[文字列格納変数]でも改行文字は保持されます。
※Ver.2.10より、テーブルの文字列型セルに複数行表示機能が追加されました。
追加の可能性として、「64bit用のsqljdbc_auth.dll」を使用して頂いていますが、MZPlatformのJAVA実行環境が32bitのため、上手く動作していない可能性があります。
大変お手数をお掛け致しますが、再度「32bit用のsqljdbc_auth.dll」を入手し、extフォルダ内に入れて下さい。
64bit用は削除するか、念のため取っておく場合には、呼び出されないように拡張子やファイル名を一部変更するなどして下さい。
Q173-2:
本件、@Aともうまくできましたので、そのご報告と、関連した質問をお願致します。
@について、利用者のPCでjdbcをダウンロードし、かつ、32bitのsqljdbc_auth.dllで接続できました。(64bitでは変わらずエラー表示されました。) ありがとうございます。
Aの改行も、テキストエリアの使用で解決致しました。これに関して質問なのですが、複数行あるデータを表示させますと、スクロールバーが一番下に下がった状態で、最下行を基準に表示されます。これを、1行目を基準に表示する方法はありますでしょうか。
A173-2:
JDBCダウンロードについては、大変お手数をお掛け致しました。
> 複数行あるデータを表示させますと、スクロールバーが一番下に下がった状態で、最下行を基準に表示されます。これを、1行目を基準に表示する方法はありますでしょうか。
データ設定直後は、入力カーソルが文字列最後にあり、スクロールバーのスライダー位置が一番下に下がった状態かと思います。
[テキストエリア]のメソッド「scrollsForTop()」を「テキストを設定する(String)」の処理の後に設定して頂ければ、スライダー位置も入力カーソルも先頭に移動します。
英語名のままのメソッドは「起動メソッド情報」設定窓で「全メソッド対象」にチェックマークを入れて頂くと、選択候補として現れるようになります。
Q173-3:
本件につきまして、テキストエリア「テキストを設定する(String)」の下に起動メソッド追加を行い、同番号のテキストエリアに接続して 「scrollsForTop()」を設定しましたが、状況が変わりません。何か原因は考えられますでしょうか。
他、「\」 で登録されている文字が、テキストエリア上に「/」で表示されます。\と表示する方法はありますでしょうか。
A173-3:
大変失礼致しました。お手数をお掛けして申し訳ございません。
画面構成部品の描画処理の関係上、[テキストエリア]にデータが描画される前に、「scrollsForTop()」の描画が前後して行われ、スライダーは一旦上部に移動したが、すぐに文字列の描画により下側に移動してしまっていると推測されます。
解決策としましては、
1)一連の「テキストを設定する」処理の一番最後に、「scrollsForTop()」の処理を追加して、少し処理に時間差があるようにする。
2)1)でも充分でなければ、「フレームを表示する()」処理を、間に追加する。
再描画されますが閉じる訳ではないので、[フレーム]が既に表示されている時に実行しても、特に問題はございません。
順番は
<テキストを設定する>
<テキストを設定する>
:
:
(<フレームを表示する>)
<ScrollsForTop()>
となります。
> 他、「\」 で登録されている文字が、テキストエリア上に「/」で表示されます。\と表示する方法はありますでしょうか。
半角「\」と半角「\」は、同じ文字コード(0x5c)を指していますが、フォントにより見え方が違っているかと思います。
[テキストエリア]で右クリック>[フォント]>[設定する...]で日本語フォントを選ぶと半角「\」で表示されます。
ただ、少し気がかりなのは「\」は特殊記号ですので、SQLServerへデータ追加・更新の際にシングルの「\」は消えてしまう恐れもあることです。
これは[文字列格納変数]で置換し「\\」とするなどの回避方法が考えられます。
環境にもよりますが、お心にお留めおき下さい。
ご連絡:
本件、問題のテキストエリアは一番最後に位置していましたので、2)の方法で解決致しました。\はMSゴシックにして解決致しました。
更新処理はまだ手を付けていませんので、ご指摘頂きました事は、留意致します。
ありがとうございました。
備考:Aは「一般的な質問」の「Q&A171」、「テキストエリア」の「Q&A4」にも掲載。