フォーラムへの返信
-
投稿者投稿
-
松原正和
キーマスターmaronさんこんにちは。
SQL Serverへの接続は、SQL Clientがインストールされていれば、それを使い、インストールされていなければ、内蔵されたUniDACのライブラリが使用されます。
SQL Clientがインストールされていない場合は、インストールしてみてください。SQL CLientがインストールされている場合は、オプションから[SQL Server] の「OLE DB Providerを使わず直接接続する」をONにしてみてください。松原正和
キーマスターgrosjeanさんこんにちは。
すみません、Version 2.15系で「データベースに Keey alive を送信」がOFFでも処理を行ってしまう不具合がありました。修正版をVersion 2.15.2としてリリースしますので少々お待ちください。
(マイクロソフトストアは10/4または10/5あたりに、Vectorは1~2週間で公開されると思います。)松原正和
キーマスターItoさんこんにちは。
ご寄付ありがとうございました。>1.A5M2に登録されているパラメータを一括削除するコマンドは作成可能でしょうか?
これについてですが、「/DelAllDB」を作成しようと思います。ちょっと今週は間に合いませんが、現状でもポータブルモードを利用し、起動ごとにDB登録がから状態のPortableフォルダをコピーする(挿げ替える)などすれば代替も可能と思います。(設定も完全リセットされるのでよりベターかも?)ポータブルモードでないなら、レジストリで「HKEY_CURRENT_USER\SOFTWARE\mmatsubara\A5M2(x64)\DataSources」を削除すればデータベース登録を削除できます。
>2.A5M2.exe /SetDB DB登録名=接続文字列でパラメーターを登録しますが、
> この時、A5M2画面は起動せずにパラメータ登録は可能でしょうか?これについては、「/Exit」コマンドを用意しようと思います。少々お待ちください。
>3.A5M2.exe /Connect DB登録名 で接続した場合、A5M2画面の5行目にある
> ”ターゲットデータベース”が黄色でマーキングされていますが、
> ”ターゲットデータベース”の初期表示を/Connect DB登録名で初期表示可能でしょうか?これは、SQLエディタのDB選択プルダウンでしょうか?。確かにそのほうが良いかもしれないですね。ただ、SQLエディタのDB選択プルダウンの初期値はオプションダイアログの[SQLエディタ]タブの「初期データベースの選択値」(デフォルトは「DBツリーで選択中のデータベース」)の影響もうけることに注意が必要です。
あと、Itoさんの要件の場合、もしかするとA5:SQL Mk-2コマンドラインユーティリティ(https://www.vector.co.jp/soft/winnt/util/se519353.html)のほうも検討されたほうが良いかもしれません。このツールは発展途上で、まだ少々使いにくいツールかもしれませんがもう少々改善したいと考えています。
松原正和
キーマスターa5m2.loveさんこんにちは。(お名前が…ありがとうございます。)
元パソコンで…というのは、それまでリモートで接続していたPCを直接操作した場合、ということでしょうか?。最近、リモートデスクトップ関連での不具合をよく聞きますし、調査してみたいと思います。
松原正和
キーマスターあいだまことさんこんにちは。
IBM System i でしたか。これはちょっと再現テストできないですね…。オプションから[データベース接続]タブで「データベースに Keep alive を送信」にチェックを入れると状況が変わるかもしれません。
ただし、これは指定時間ごとに無意味な(無害な)SQLを実行するオプションです。僅かにサーバーに負荷をかけることになるので注意してください。
リモートデスクトップセッションが切断されたことを検知して、DBを切断できたらよいのかもしれないですね。松原正和
キーマスターNTさんこんにちは。
はい、実はこの辺のUniDACの挙動は私自身よく理解できていません。もう少し調査したいと思いますので、しばらくお待ちいただけたらと思います。松原正和
キーマスター山猫さんこんにちは。
調査したところ、https://forums.devart.com/viewtopic.php?t=39768 の症状かもしれません。
Version 2.16 系では正式リリースまでには使用するUniDACのバージョンを更新する予定ですので、しばらくお待ちください。
あと、SQL Clientは導入されていますでしょうか?。A5:SQL Mk-2はSQL Clientが導入されている場合は、それを使用して接続しますが、SQL Clientが導入されていない場合、UniDAC内蔵ライブラリを使用しますので、こちらの不具合かもしれないです。松原正和
キーマスターbicmanさんこんにちは。
確かに、* 抜きのSQLで発生するようですね。とりあえず、Wiresharkでパケットを眺めてみたのですが、原因はよくわかりませんでした。
プロトコル関連のエラーなのでなかなか対処はむつかしいのですが、対処療法として、*やカラム指定のないSELECT文を実行したときに事前にチェックを行うようにしてみました。Version 2.16.0 beta 8で実装してみましたので、お試しいただければと思います。
…ほかのケースでも、「Unexpected server response:」は起こりえると思うので、根本的に見直せればよいのですが…。松原正和
キーマスターawr さんこんにちは。
Version 2.16.0 beta 8で修正してみましたので、ご確認いただければと思います。松原正和
キーマスターkatsuwoさんこんにちは。
すみません、A5:SQL Mk-2 コマンドラインユーティリティですが、サンプルもなく、ドキュメントも読みにくいため使いづらいですよね。
例えば、SQLServerでlocalhostの1417ポートで待ち受けする “master” に対して、”sa”ユーザー(パスワード: “FUGAFUGA”)で接続し、test.sqlを実行して結果を得るには、以下のようなコマンドを実行します。
A5M2cmd.exe “/Connect=__ConnectionType=Internal;ProviderName=SQL Server;UserName=sa;Password=FUGAFUGA;ServerName=localhost;Port=1417;Database=master” /RunSQL /FileName=test.sql
実行結果はQuery-1.csv, Query-2.csv のようなCSVファイルで出力されます。
同じように、MySQLでlocalhostの3380ポートで待ち受けする “test_db” に対して、”HOGEHOGE”ユーザー(パスワード: “FUGAFUGA”)で接続し、test.sqlを実行して結果を得るには、以下のようなコマンドを実行します。
A5M2cmd.exe /Connect=__ConnectionType=Internal;ProviderName=MySQL;UserName=HOGEHOGE;Password=FUGAFUGA;ServerName=localhost;Port=3306;Database=test_db /RunSQL /FileName=test.sqlA5:SQL Mk-2 コマンドラインユーティリティは(今のところ)DBに付属するコマンドラインツールのように対話的にSQLを実行するというよりは、A5:SQL Mk-2の機能をバッチなどから単発的に呼び出すツールと思っていただければよいかと思います。
松原正和
キーマスターmaiashiさんこんにちは。
これば別件で現在対応中の不具合と同梱ではないかなと思うのですが、Version 2.16.0 beta 7では症状はいかがでしょうか?。
以上よろしくお願いいたします。松原正和
キーマスターawrさんこんにちは。
手元の環境でSQLの入力支援において、ER図を割り当てたときに論理名が出なくなるのは確認しましたが、割り当てていないときはちょっと再現できていません。もうちょっとかかりそうです。おそらく、SQLServerだけで発生する問題ではないかと思います。
松原正和
キーマスターItoさんこんにちは。
Version 2.16.0 beta 7で、/AddDB と /SetDB パラメータを用意しました。次のような指定の仕方をします。
A5M2.exe /AddDB DB登録名=接続文字列
A5M2.exe /SetDB DB登録名=接続文字列どちらも、A5:SQL Mk-2にデータベースを登録するパラメータですが、/AddDBはすでに同じ名前で登録されているときはエラーになるのに対して、/SetDBは上書き保存をします。
接続文字列には、A5:SQL Mk-2内部で使用される接続文字列を指定します。具体的には、「データベースの追加と削除」で「エクスポート」を使用すると作成されるファイル *.dblist の形式です。
(エクスポート機能はパスワードが除去された状態でエクスポートされるので注意してください。)
この接続文字列はしばしば長くなりがちですが、Oracleでは最低限、以下のように指定すればよいはずです。A5M2.exe /AddDB DB登録名=__ConnectionType=Internal;ProviderName=Oracle;Direct=False;TNSNAME=Oracle接続文字列;SavePassword=True;UserName=ユーザー名;Password=パスワード
DB登録の追加と同時に接続するには、以下のようにします。
A5M2.exe /AddDB DB登録名=__ConnectionType=Internal;ProviderName=Oracle;Direct=False;TNSNAME=Oracle接続文字列;SavePassword=True;UserName=ユーザー名;Password=パスワード
/Connect DB登録名DBを複数登録するときは、/AddDB(/SetDB)を複数記述してください。/Connectは/AddDB(/SetDB)の後に指定してください。
松原正和
キーマスターItoさんこんにちは。Amazonギフト券ありがとうございました。
接続情報を登録していないDBへのコマンドラインからの接続ということですよね。これは、実装するのはおそらく大変ではないと思うのですが、仕様決めのほうが大変な気がします。指定された接続先は永続的にA5:SQL Mk-2の設定に残すべきか、その時だけの設定にするべきか…。指定のさせ方はどうするかや、A5:SQL Mk-2はCSEよりも接続できるRDBMSの種類や接続方法が多いため、指定のための文字列は長くなりがちで、使いにくい機能になりかねません。
もうちょっと考えさせてください。(おそらくは、コマンドライン版A5:SQL Mk-2と同じような指定の仕方になるかと思います)松原正和
キーマスターあいだまことさんこんにちは。
タイムアウトなどで、クライアントから切断していないのに接続が切れた場合の挙動ですが、RDBMSの種類や、接続の仕方(専用接続・直接接続・ODBC)で変わってきそうな気がします。どのようなRDBMS・接続方式かお教えいただけるとありがたいです。 -
投稿者投稿