Visual Studio 2005 VB.net XREAのMySQL DBへWindows FormアプリケーションからSSH接続するの巻
XREAのMySQLデータベースは外部からのアクセスが制限されている。
しかしSSHポートフォワーディングを利用する事で、
Windows Formアプリケーションからアクセスできるようだ。
とりあえずXREAの管理メニューからSSHホスト情報登録する。

テスト用にXREAにMySQLのDBを作成する。

テストデータはphpMyAdminで作るのでログインする。


データベースを選択する。


以下のテーブル作成SQLを実行する。
CREATE TABLE test (
id int,
name varchar(20),
ins date
);


以下のテストデータ作成SQLを実行する。
INSERT INTO test (id, name, ins) VALUES
(1, 'あいう', '2014-08-10'),
(2, 'xxx', '2014-08-15'),
(3, 'かきく', '2014-09-11'),
(2, 'さしす', '2014-08-31'),
(4, 'ハンカク', '2014-08-31');


SSH.NET Libraryのバイナリをダウンロードし、適当な場所に解凍する。

VB.netからMySQLのDBへのアクセスはConnector/Netを利用する。

Windowsフォームアプリケーションを新規作成し、リストボックスとデータグリッドビューを配置する。

参照設定でSSH.NET LibraryとConnector/Netを追加する。

フォームのコードに以下をコピペする。
※XREAサーバ、ftpアカウント、ユーザ名、パスワード等は◆要変更◆。
リストボックスのテーブル名を選択すると、テーブル内容がデータグリッドに表示される。

いつも応援ありがとうございます。m(__)m
しかしSSHポートフォワーディングを利用する事で、
Windows Formアプリケーションからアクセスできるようだ。
とりあえずXREAの管理メニューからSSHホスト情報登録する。

テスト用にXREAにMySQLのDBを作成する。

テストデータはphpMyAdminで作るのでログインする。


データベースを選択する。


以下のテーブル作成SQLを実行する。
CREATE TABLE test (
id int,
name varchar(20),
ins date
);


以下のテストデータ作成SQLを実行する。
INSERT INTO test (id, name, ins) VALUES
(1, 'あいう', '2014-08-10'),
(2, 'xxx', '2014-08-15'),
(3, 'かきく', '2014-09-11'),
(2, 'さしす', '2014-08-31'),
(4, 'ハンカク', '2014-08-31');


SSH.NET Libraryのバイナリをダウンロードし、適当な場所に解凍する。

VB.netからMySQLのDBへのアクセスはConnector/Netを利用する。

Windowsフォームアプリケーションを新規作成し、リストボックスとデータグリッドビューを配置する。

参照設定でSSH.NET LibraryとConnector/Netを追加する。

フォームのコードに以下をコピペする。
※XREAサーバ、ftpアカウント、ユーザ名、パスワード等は◆要変更◆。
リストボックスのテーブル名を選択すると、テーブル内容がデータグリッドに表示される。


スポンサーサイト
2014/10/30 Thu. 14:41 |
trackback: -- |
comment: --
| edit
Visual Studio 2005 VB.net StatusStripにプログレスバーを自力で描くの巻
元々StatusStripにはプログレスバーを配置できるので
あんまり意味ないけど、Paintイベントで描画してみた。
実行するとこんな感じ。

フォームデザイナーでStatusStripとButtonを貼り付けて、
以下のコードをコピペ。
実行後Button1をクリックするとデモ開始。
ソースのダウンロードは→こちら←をクリック。
いつも応援ありがとうございます。m(__)m
あんまり意味ないけど、Paintイベントで描画してみた。
実行するとこんな感じ。

フォームデザイナーでStatusStripとButtonを貼り付けて、
以下のコードをコピペ。
実行後Button1をクリックするとデモ開始。
ソースのダウンロードは→こちら←をクリック。

2014/09/17 Wed. 11:18 |
trackback: -- |
comment: --
| edit
Visual Studio 2005 VB.net で縦倍角(?)フォントを使うの巻
テキストボックスとデータグリッドビュー(表示のみ)で
縦倍角(?)フォントを使ってみた。
こんな感じ。

方針としては、CreateFontIndirectでフォント作成、
テキストボックスにはSendMessage、WM_SETFONTで設定。
データグリッドビューはCellPaintingイベントで自前描画。
フォームデザイナーでにテキストボックスとデータグリッドビューを貼り付けて、
以下のコードをコピペ。
ソースのダウンロードは→こちら←をクリック。
いつも応援ありがとうございます。m(__)m
縦倍角(?)フォントを使ってみた。
こんな感じ。

方針としては、CreateFontIndirectでフォント作成、
テキストボックスにはSendMessage、WM_SETFONTで設定。
データグリッドビューはCellPaintingイベントで自前描画。
フォームデザイナーでにテキストボックスとデータグリッドビューを貼り付けて、
以下のコードをコピペ。
ソースのダウンロードは→こちら←をクリック。

2014/08/27 Wed. 13:52 |
trackback: -- |
comment: --
| edit
CreateObject("Scripting.FileSystemObject")オートメーションエラーで嵌まった
環境はWindows7 pro x86 sp1。
vbやvbaでCreateObject("Scripting.FileSystemObject")を実行すると、
「オートメーションエラーです。ライブラリは登録されていません。」
とのエラー。
前々からエラーになるのは知っていたが、どうしても必要なオブジェクトではないので
だましだましコーディングで回避していた。
しかし、いつまでも放っておくのは気持ちが悪いので
真剣に解決策を模索してみた。
scrrun.dllのレジストリ登録がうまくいっていないのは知っていたが、
何度も試したregsvr32 scrrun.dllを再度実行。
「うまくいったよ」メッセージが出るがやっぱり現象は変わらない。
scrrun.dllの依存ファイルはMSVCRT.dll、ScrrnJP.dllの様だがどちらもSystem32に存在する。
regsvr32 /u scrrun.dllでレジストリ登録削除を試みると、
「dllUnRegisterServerがエラーコード0x8002801dを返した」とのエラーとなる。
検索しても、このエラーコードの意味はよくわからなかったが、レジストリがらみなのは間違いない。
別のXPマシンのエクセルvbaではCreateObject("Scripting.FileSystemObject")でエラーが発生しないので、
両方のマシンのレジストリをキーワード「scrrun.dll」で検索し、違いを探ることにする。
で結局、違いは、
[HKEY_CLASSES_ROOT\TypeLib\{420B2830-E718-11CF-893D-00A0C9054228}]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{420B2830-E718-11CF-893D-00A0C9054228}]
だった。
Windows7のほうは、[HKEY_CLASSES_ROOT\TypeLib\{420B2830-E718-11CF-893D-00A0C9054228}]は、
存在するが、中身は空っぽで、なおかつフルコントロール権限が無い。
また、[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{420B2830-E718-11CF-893D-00A0C9054228}]は、
存在すらしない。
[HKEY_CLASSES_ROOT\TypeLib\{420B2830-E718-11CF-893D-00A0C9054228}]のアクセス権を
フルコントロールに設定し、XPからエクスポートしたレジストリ情報を取り込んで無事解決。
なおレジストリのアクセス権変更は、
変更するレジストリキーを右クリック→「アクセス許可」→「グループ名またはユーザ」でhogehogeを選んで
→「詳細設定」ボタン→「所有者」タブ→「所有者の変更」でhogehogeを選んで「OK」
→「hogehogeのアクセス許可」で「フルコントロール」にチェック→「OK」

vbやvbaでCreateObject("Scripting.FileSystemObject")を実行すると、
「オートメーションエラーです。ライブラリは登録されていません。」
とのエラー。
前々からエラーになるのは知っていたが、どうしても必要なオブジェクトではないので
だましだましコーディングで回避していた。
しかし、いつまでも放っておくのは気持ちが悪いので
真剣に解決策を模索してみた。
scrrun.dllのレジストリ登録がうまくいっていないのは知っていたが、
何度も試したregsvr32 scrrun.dllを再度実行。
「うまくいったよ」メッセージが出るがやっぱり現象は変わらない。
scrrun.dllの依存ファイルはMSVCRT.dll、ScrrnJP.dllの様だがどちらもSystem32に存在する。
regsvr32 /u scrrun.dllでレジストリ登録削除を試みると、
「dllUnRegisterServerがエラーコード0x8002801dを返した」とのエラーとなる。
検索しても、このエラーコードの意味はよくわからなかったが、レジストリがらみなのは間違いない。
別のXPマシンのエクセルvbaではCreateObject("Scripting.FileSystemObject")でエラーが発生しないので、
両方のマシンのレジストリをキーワード「scrrun.dll」で検索し、違いを探ることにする。
で結局、違いは、
[HKEY_CLASSES_ROOT\TypeLib\{420B2830-E718-11CF-893D-00A0C9054228}]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{420B2830-E718-11CF-893D-00A0C9054228}]
だった。
Windows7のほうは、[HKEY_CLASSES_ROOT\TypeLib\{420B2830-E718-11CF-893D-00A0C9054228}]は、
存在するが、中身は空っぽで、なおかつフルコントロール権限が無い。
また、[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{420B2830-E718-11CF-893D-00A0C9054228}]は、
存在すらしない。
[HKEY_CLASSES_ROOT\TypeLib\{420B2830-E718-11CF-893D-00A0C9054228}]のアクセス権を
フルコントロールに設定し、XPからエクスポートしたレジストリ情報を取り込んで無事解決。
なおレジストリのアクセス権変更は、
変更するレジストリキーを右クリック→「アクセス許可」→「グループ名またはユーザ」でhogehogeを選んで
→「詳細設定」ボタン→「所有者」タブ→「所有者の変更」でhogehogeを選んで「OK」
→「hogehogeのアクセス許可」で「フルコントロール」にチェック→「OK」

2014/04/22 Tue. 14:52 |
trackback: -- |
comment: --
| edit
| h o m e |