SQLの窓

2018年06月20日


WindowsBuilder の JFaceで アプリケーションウインドウとダイアログを使用した基本処理

WindowsBuilder のインストールとプロジェクトの作成

▼ 以下を参照して下さい
Pleiades All in One で、Windows アプリを作成する手順( WindowBuilder + Swing デザイナー or SWT デザイナー[JFace] )

ApplicationWindow を中央に表示
	@Override
	protected Point getInitialLocation(Point initialSize) {

		GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();

		// デスクトップのサイズ
		Point windowSize = new Point(
				env.getMaximumWindowBounds().width,
				env.getMaximumWindowBounds().height);
		Point position = new Point(0,0);

		// デスクトップの中心に表示します
		return new Point(
			position.x + ((windowSize.x - initialSize.x) / 2),
			position.y + ((windowSize.y - initialSize.y) / 2)
		);
	}

ダイアログの呼び出し

呼び出し先から、こちら側のコントロールにアクセスする為、識別する為に名前を setData でセットしています
		Button btnNewButton = new Button(container, SWT.NONE);
		btnNewButton.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				Dialog1 dialog = new Dialog1(getShell());
				int result = dialog.open();
				System.out.println(result);
			}
		});
		btnNewButton.setBounds(10, 10, 75, 25);
		btnNewButton.setText("New Button");
		btnNewButton.setData("name","Button1");



ダイアログを親ウインドウの中央に
	@Override
	protected Point getInitialLocation(Point initialSize) {

		Point windowSize = this.getShell().getParent().getSize();
		Point position = this.getShell().getParent().getLocation();

		return new Point(
			position.x + ((windowSize.x - initialSize.x) / 2),
			position.y + ((windowSize.y - initialSize.y) / 2)
		);
	}



ダイアログから親ウインドウにアクセス

対症療法なので正確では無いですが、parentShell.getChildren() の内容にもう少しチェックを追加すれば使用に問題は無いと思います。コンストラクタにウインドウのインスタンスを渡せば簡単ですが、汎用性はこちらのほうが勝ると思います。
	@Override
	protected void createButtonsForButtonBar(Composite parent) {
		Button button = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
		button.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {

				Shell parentShell = Dialog1.this.getParentShell();
				Control[] controls = parentShell.getChildren();
				Composite con = (Composite)controls[1];

				controls = con.getChildren();

				for( Control control: controls ) {
					Object name = control.getData("name");
					if ( name != null) {
						if ( name.toString().equals("Button1") ) {
							Button btn = (Button) controls[0];
							btn.setText("ボタン");
							break;
						}
					}
				}

				Dialog1.this.setReturnCode(Dialog.OK);
				Dialog1.this.close();

			}
		});
		Button button_1 = createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
		button_1.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				Dialog1.this.setReturnCode(Dialog.CANCEL);
				Dialog1.this.close();
			}
		});
	}





posted by lightbox at 2018-06-20 20:02 | Pleiades | このブログの読者になる | 更新情報をチェックする

Pleiades Oxygen + WindowsBuilder で MySQL を使用して SQL(select) からデータの一覧を表示する

WindowsBuilder のインストールとプロジェクトの作成

Pleiades All in One で、Windows アプリを作成する手順( WindowBuilder + Swing デザイナー or SWT デザイナー[JFace] )

JFace の アプリケーションウインドウを追加します



パースペクティブを Java EE に変更



Oxygen で、WindowBuilder エディターにフォントの設定が効かないので、Java エディタも開いて併用します。
( Java エディタ では、CTRL + プラスキー でフォントが大きくなります )



使えないコントロールを削除

toolBarManager と statusLineManager はコードでしかメンテできそうにないので、メニューでテストは十分なので削除します。



関連する 必要ない Override メソッドも削除します



最後に必要なくなった呼び出し部分も削除します



▼ この時点で以下のようなソースになります( タイトルは変更しています )
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class Main extends ApplicationWindow {

	// *******************************
	// コンストラクタ
	// *******************************
	public Main() {
		super(null);
		createActions();
		addMenuBar();
	}

	// *******************************
	// 画面作成
	// *******************************
	@Override
	protected Control createContents(Composite parent) {
		Composite container = new Composite(parent, SWT.NONE);

		return container;
	}

	// *******************************
	// コンストラクタからの初期処理
	// *******************************
	private void createActions() {

	}

	// *******************************
	// メニュー
	// *******************************
	@Override
	protected MenuManager createMenuManager() {
		MenuManager menuManager = new MenuManager("menu");
		return menuManager;
	}

	// *******************************
	// エントリポイント
	// *******************************
	public static void main(String args[]) {
		try {
			Main window = new Main();
			window.setBlockOnOpen(true);
			window.open();
			Display.getCurrent().dispose();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	// *******************************
	// ウインドウ ( Shell )
	// *******************************
	@Override
	protected void configureShell(Shell newShell) {
		super.configureShell(newShell);
		// ウインドウのタイトル
		newShell.setText("MySQL データ表示");
	}

	// *******************************
	// ウインドウサイズ
	// *******************************
	@Override
	protected Point getInitialSize() {
		return new Point(635, 405);
	}
}


テーブルのサイズをウインドウのサイズ変更と同期させる


protected Control createContents(Composite parent) {
	Composite container = new Composite(parent, SWT.NONE);
	container.addControlListener(new ControlAdapter() {
		@Override
		public void controlResized(ControlEvent e) {
			// org.eclipse.swt.graphics.Rectangle;
			Rectangle size = container.getClientArea();
			table.setSize(size.width-21, size.height-24);
		}
	});

	table = new Table(container, SWT.BORDER | SWT.FULL_SELECTION);
	table.setBounds(10, 10, 599, 322);
	table.setHeaderVisible(true);
	table.setLinesVisible(true);

	return container;
}
メニューをデザイナから追加します 1) MenuManager を選択 2) メニュー部分をクリック 3) 新規を選択 4) メニューアイテム部分をクリック 5) メニューアイテムが一つ作成される コードも同時に作成されているので、Override の run を追加して loadMySQL("select * from 社員マスタ"); を追加
// *******************************
// コンストラクタからの初期処理
// *******************************
private void createActions() {

	{
		action = new Action("New Action") {
			@Override
			public void run() {
				table.removeAll();
				loadMySQL("select * from 社員マスタ");
				
			}
		};
	}
}

protected void loadMySQL(String string) {
	
	
}
MySQL 処理部分 private Connection conn = null; private Statement stmt = null; private ResultSet rs = null; private int maxRows = 20;
	protected void loadMySQL(String string) {

		try {
			// MySQL Connector/J 接続
			conn = (Connection) DriverManager.getConnection(
				// mysql-connector-java-8.0.11 で serverTimezone が必要
				"jdbc:mysql://localhost/lightbox?user=root&password=&characterEncoding=UTF-8&serverTimezone=JST"
			);

			stmt = (Statement) conn.createStatement();
			rs = stmt.executeQuery(string);

			// select の結果の列情報の取得
			ResultSetMetaData rsmd = (ResultSetMetaData) rs.getMetaData();

			// 列数
			int columnCount = rsmd.getColumnCount();

			// 前回のテーブル列を全て削除
			int tableColumnCount = table.getColumnCount();
			TableColumn tableColumnWork = null;
			for( int i = tableColumnCount - 1; i >= 0; i--) {
				tableColumnWork = table.getColumn(i);
				tableColumnWork.dispose();
			}

			// 列名
			TableColumn tableColumn = null;
			for( int i = 1; i <= columnCount; i++) {
				tableColumn = new TableColumn(table, SWT.NONE);
				tableColumn.setWidth(100);
				tableColumn.setText(rsmd.getColumnName(i));
			}

			TableItem tableItem = null;
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
			int countRow = 0;
			while( rs.next() && countRow < maxRows ) {

				countRow++;

				String[] columnData = new String[columnCount];

				for( int i = 1; i <= columnCount; i++) {

					if ( rsmd.getColumnTypeName(i).equals("DATETIME") ) {
						columnData[i-1] = sdf.format(rs.getDate(i));
					}
					else {
						columnData[i-1] = rs.getString(i);
					}

				}
				tableItem = new TableItem(table, SWT.NONE);
				tableItem.setText(columnData);
			}

			rs.close();
			stmt.close();
			conn.close();

		} catch (SQLException ex) {
			// handle any errors
			System.out.println("SQLException: " + ex.getMessage());
			System.out.println("SQLState: " + ex.getSQLState());
			System.out.println("VendorError: " + ex.getErrorCode());
		}
	}

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

行をダブルクリックした時の行データの取得
		table.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseDoubleClick(MouseEvent e) {
				int row_no = table.getSelectionIndex();
				// 行 は 0 以上
				if ( row_no >= 0 ) {
					// タイトル部分の表示
					TableColumn[] tableColumns = table.getColumns();
					for( TableColumn column: tableColumns ) {
						System.out.println( column.getText() );
					}

					// 行部分の表示
					TableItem tableItem = table.getItem(row_no);
					int columnCount = tableColumns.length;
					for( int i = 0; i < columnCount; i++ ) {
						System.out.println( tableItem.getText(i));
					}
				}
				
			}
		});

関連する記事

WindowBuilder JFace : WEB より JSON を取得して Table に表示する




posted by lightbox at 2018-06-20 17:28 | Pleiades | このブログの読者になる | 更新情報をチェックする

2018年06月18日


Pleiades Oxygen の XAMPP の TOMCAT を Pleiades の JDK8 で動作させる

PC に JDK がインストールされていない場合、Pleiades 内の JDK で起動できます。

XAMPP の TOMCATは、pleiades\xampp にあって、実際起動しているのは pleiades\xampp\catalina_start.bat です。その中でレジストリのチェックをして 『HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit』が無いと起動できません。

▼ 以下を手動で登録します。
[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit]
"JavaHome"="C:\pleiades\java\8"
※ 実際のバッチファイルでは、以下の4種類をチェックして、それぞれについて処理分岐しています
set JDKKeyName64=HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit
set JDKKeyName32=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Development Kit
set JREKeyName64=HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
set JREKeyName32=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment
▼ バッチファイルのチェック部分
:JDKRUN
echo.
echo [XAMPP]: Using JDK
set "CURRENT_DIR=%cd%"
set "CATALINA_HOME=%CURRENT_DIR%\tomcat"

set Cmd=reg query "%KeyName%" /s
for /f "tokens=2*" %%i in ('%Cmd% ^| find "JavaHome"') do set JAVA_HOME=%%j

echo.
echo [XAMPP]: Seems fine!
echo [XAMPP]: Set JAVA_HOME : %JAVA_HOME%
echo [XAMPP]: Set CATALINA_HOME : %CATALINA_HOME%
echo.

if %ERRORLEVEL% == 0 (
	echo %MyPID% > tomcat\logs\catalina.pid
)

"%CATALINA_HOME%\bin\catalina.bat" run
goto END

:JRERUN
echo.
echo [XAMPP]: Using JRE
set "CURRENT_DIR=%cd%"
set "CATALINA_HOME=%CURRENT_DIR%\tomcat"

set Cmd=reg query "%KeyName%" /s
for /f "tokens=2*" %%i in ('%Cmd% ^| find "JavaHome"') do set JRE_HOME=%%j

echo.
echo [XAMPP]: Seems fine!
echo [XAMPP]: Set JRE_HOME : %JRE_HOME%
echo [XAMPP]: Set CATALINA_HOME : %CATALINA_HOME%
echo.

if %ERRORLEVEL% == 0 (
	echo %MyPID% > tomcat\logs\catalina.pid
)

"%CATALINA_HOME%\bin\catalina.bat" run
goto END

reg query /s は、レジストリのツリーの下位を全て再帰的に検索します。そして、JDK の場合は JavaHome が見つかったらその値を環境変数の JAVA_HOME にセットして "%CATALINA_HOME%\bin\catalina.bat" を実行します。



posted by lightbox at 2018-06-18 23:24 | Pleiades | このブログの読者になる | 更新情報をチェックする

2018年05月15日


Pleiades Eclipse 4.7 Oxygen 2 Windows 64bit Ultimate Full Edition のインストールといろいろな準備

目的は、Pleiades(Eclipse 4.7 Oxygen 2) Ultimate Full Edition でインストール済、または準備されているソフトウェアをインストールして利用可能にする事です。

大きなソフトウェアでは、以下のようになります

1) Java ( Eclipse 内で JDK 6,7,8,9 が使用可能です / インストールされています )
2) Tomcat ( Tomcat は 6,7,8,9 が同梱されて選択して使用可能です / xampp にも Tomcat7 が入っています )
3) php ( php(x86) は xampp に入っていますが、既存のものを使用できます )
4) Ruby (Ruby そのものはインストールが必要です)Ruby 2.4 で GET/POST メソッドを想定した CGI 用の簡易テンプレートを作成してみましたRuby 2.4 で GET/POST メソッドを想定した CGI 用のテンプレート改良版( FORM で MySQL 参照と更新 )
5) Python (Python の 2(x64) と 3(x64) が同梱されて実行可能)
    MySQL の接続を行う場合は、Windows インストーラで Python をあらためてインストールが必要です
6) Perl ( perl(x86) は xampp に入っています )
7) C++/C ( MinGW GCC が入っていてビルドできます )

これらの開発環境は、Eclipse の UI よりプロジェクトを作成してプログラムを作成する事ができます。

8) xampp

これは開発する為のサーバー環境で、インストール済のものとインストールが必要なものがあります。

インストール済のサーバー用ソフトウェア

a) Apache  ( xampp から起動してすぐ使えます )
    ※既にインストール済の www サーバーや スクリプトベースの簡易サーバーも使えます
b) MySQL ( xampp から起動してすぐ使えます )
c) perl ( インストール済です )
d) php ( PHP 5.6.32 がインストール済です )
e) phpMyAdmin ( Apache に定義済の URL で使用できます )
f) sendmail ( fake sendmail という Windows 用の sendmail が入っています )
g) Tomcat ( xampp 環境で Eclipse とは別にインストールされています )

インストールが必要なサーバー用ソフトウェア

a) FileZillaFTP ( インストールする必要があります )
b) MercuryMail ( インストールする必要があります )

Pleiades のダウンロード

MergeDoc Project より Eclipse 4.7 Oxygen に入り、Windows 64bit Ultimate Full Edition をクリックしてダウンロードします。

http://ftp.jaist.ac.jp/pub/mergedoc/pleiades/4.7/pleiades-4.7.2-ultimate-win-64bit-jre_20171225.zip と表示が出てダウンロードされます。 



ここから、お約束の注意事項

Pleiades の中に入っている環境を問題無く使用する為には、二つのルールが昔からあります。

1) zip 書庫の名前を短くして( ここでは pleiades.zip )、c:\pleiades.zip とする。
2) 解凍ソフトとして 安全なのは Windows エクスプローラー
   7-ZipWinRAR で高速解凍 (パスの長さ制限を超えても正常に解凍できるため注意が必要)

ここでは、7-zip を( 昔から ) 使用しています。

最初の実行は、eclipse.exe -clean.cmd

これもお約束で、追加でソフトウェアをインストールしたり、環境が変化した場合に実行するようにしています。



最初のこの "c:\pleiades\eclipse\eclipse.exe -clean.cmd" の実行で、xampp の初期設定がされるようです。



ワークスペースを準備する

いろいろな言語や環境が利用可能なので、環境別のフォルダを用意してまず Java の Hello World を行います。



▼ コンソール Java 用のワークスペースを作成します



ワークスペースを作る毎に何故か 『システム PYTHONPATH の変更が検出されました』と出るので、良く解らないので気持ち悪いですが適用します。( いろいろ調べたんですが謎 )



言語毎に パースペクティブが用意されています。



Java のプロジェクトを作成します



プロジェクト名を入力して完了します( 他はデフォルトです )



パースペクティブは、JavaEE がシンプルなので変更して、開始コードを追加します。

▼ パースペクティブ変更


▼ 開始コードを追加




フォントを好みに変更します。



編集ボタンをクリックしてフォントを選択します。



Meiryo UI は、上へスクロール2回



実行の構成を作成します( 他の言語の事もあるのでこれに慣れたほうがいいです )
( ツールバーの実行ボタンの右の ▼ をクリックしてメニューを表示 )



Java アプリケーションをダブルクリックすると新しい構成が追加されるのでそのまま実行します。



ソースはこんな感じで行いました。以降の実行はツールバーからクリックして実行されます。




関連する記事Pleiades Oxygen 2 の XAMPP 内の FileZilla Server をインストールして使用するPleiades Oxygen 2 の XAMPP 内の MercuryMail をインストールして使用するPleiades Oxygen 2 の XAMPP 内の MySQL を利用可能にしてテストデータ(販売管理)を登録するPleiades Eclipse 4.7 Oxygen で Python を使って MySQL にアクセスする


fake sendmail for windows を使って、PHP でごく普通に( mb_send_mail で )メール送信 : Gmail なので ssl(465)

Pleiades Oxygen : Python と Ruby のパースペクティブでワークスペースを開いて最初に現れる『RemoteSystemsTempFiles』を削除する

Pleiades All in One(NEON) で、サーブレットとJSP を作成する手順

Java 8 で、sun.jdbc.odbc.JdbcOdbcDriver を使う手順



posted by lightbox at 2018-05-15 13:58 | Pleiades | このブログの読者になる | 更新情報をチェックする

2018年04月05日


Pleiades Oxygen 2 の XAMPP 内の MercuryMail をインストールして使用する

XAMPP 内の MercuryMail フォルダは空

Pleiades Eclipse 4.7 Oxygen 2 Windows 64bit Ultimate Full Edition の中に XAMPP が入っていますが、FileZilla Server(FTP)MercuryMail の二つはフォルダのみあるだけで後からインストールするようになっています。

Pleiades Oxygen 2 の XAMPP 内の FileZilla Server をインストールして使用する

Mercury/32 Mail のダウンロードとインストール

English versions of Pegasus Mail and Mercury よりダウンロードします。( 2018/04/05 時点で m32-480.exe )



4.74 は解りませんが、4.80 では XAMPP から Mercury/32 Mail を実行すると IMAP4 サービスが起動できません。しかし、xampp-control.exe のショートカットを作成して作業ディレクトリを "C:\pleiades\xampp\MercuryMail" にすると動作します。( 他のアプリも今のところそれで問題無く起動されています。)


XAMPP の xampp-control.exe より管理できるように、MercuryMail フォルダの中に インスールします。

▼ ここから開始ですが、かなり長いです

▼ NetWare は関係ありません


▼ 参照は無いので、エクスプローラで中に入ってアドレスバーからコピーします


▼ これはクライアントメールソフトなので必要ありません


▼ メールボックスの場所です


▼ SMTP、POP3、IMAP4 をインストールします




▼ MercuryE を選択します( 内部テスト用なので、25番ポートを使います )

【参考】送信先SMTPサーバへ直接メールを配送するSMTPクライアント。OP25Bが適用されている環境では利用不可できないので、その場合はMercuryCを利用する

▼ HOSTS ファイルに適当なドメインを登録して使用します

※ 以下のコマンドでメモ帳を管理者権限で起動して編集して下さい。
cmd.exe /c powershell -NoProfile -ExecutionPolicy unrestricted -WindowStyle hidden -Command "start notepad.exe %SystemRoot%\system32\drivers\etc\hosts -verb runas"
▼ メール中継の設定ですが、ローカル用なのであまり気にしなくていいと思います。 ▼ この場所はほぼ見る事は無いと思います ▼ 【重要】サービスとして登録しません ▼ 終了です ▼ これでダイアログを閉じます xampp-control.exe の設定 xampp-control.exe は管理者権限で実行する必要があるので、エクスプローラから右クリックしてプロパティの『互換性』タブで管理者として実行するチェックを ON にします。 さらに、xampp-control.exe を実行して構成で保管すると xampp-control.ini が現在の状態で書き込まれるので、初めて xampp-control.exe を実行する場合は xampp-control.ini を現在の状態で作成してください。 その後、終了させる為に必ず終了ボタンをクリックして下さい( x ボタンでは終了しません / タスクバーに存在します ) 【重要】IMAP4 をインストールした場合は、xampp-control.exe のショートカットを作成して作業フォルダを "C:\pleiades\xampp\MercuryMail" に変更します xampp-control.exe を実行して確認 xampp-control.exe を実行すると以下のようになります。 そして、開始ボタンをクリックします。 Mercury/32 Mail の設定 xampp-control.exe の 管理ボタンをクリックします ▼ ユーザを追加してもいいですが、とりあえず Admin を使ってテストします ▼ パスワードを使ってテストしたいので入力します Telnet を使用してメールのテストをします ▼ Windows の Telnet クライアントを有効にします ▼ コマンドプロンプトを開きます(PowerShell から cmd と入力でもかまいません) 『telnet localhost 25』と入力して接続し、以下を一行づつコピーしてコマンドプロントに右クリックで貼り付けて Enter キーを押します( コマンドプロントの簡易編集モードにチェックが必要です )
HELO localhost
MAIL FROM: test@test.com
RCPT TO: <Admin@my.jp>
DATA
Subject: test
ABCDEFG01234567890
Hello MercuryMail
.
quit
この後、C:\pleiades\xampp\MercuryMail\MAIL\Admin 内にメールが届いているのでテキストエディタで確認します。
Received: from spooler by my.jp (Mercury/32 v4.80.149); 5 Apr 2018 11:46:29 +0900
X-Envelope-To: <Admin@my.jp>
Return-path: test@test.com
Received: from localhost (127.0.0.1) by my.jp (Mercury/32 v4.80.145) ID MG000002;
   5 Apr 2018 11:46:05 +0900
Subject: test
ABCDEFG01234567890
Hello MercuryMail
X-UC-Weight: [##  ] 102
X-CC-Diagnostic: Test 'Garbage 25' (51), Not Header "Date" Exists (51)


さらに、このメールを telnet で接続して確認します。

『telnet localhost 110』と入力して接続後、以下のように一行づつ貼り付けて下さい
USER Admin
PASS password
LIST
RETR 1
quit
※ password は、Admin 用の変更したパスワードです 関連する記事Pleiades Eclipse 4.7 Oxygen 2 Windows 64bit Ultimate Full Edition のインストールといろいろな準備Pleiades Oxygen 2 の XAMPP 内の FileZilla Server をインストールして使用するPleiades Oxygen 2 の XAMPP 内の MySQL を利用可能にしてテストデータ(販売管理)を登録するPleiades Eclipse 4.7 Oxygen で Python を使って MySQL にアクセスする
posted by lightbox at 2018-04-05 10:11 | Pleiades | このブログの読者になる | 更新情報をチェックする

2018年04月03日


Pleiades Oxygen 2 の XAMPP 内の MySQL を利用可能にしてテストデータ(販売管理)を登録する

xampp-control.exe の設定

xampp-control.exe は管理者権限で実行する必要があるので、エクスプローラから右クリックしてプロパティの『互換性』タブで管理者として実行するチェックを ON にします。



my.ini の設定( サーバーをUTF-8 に設定 )



C:\pleiades\xampp\mysql\bin\my.ini の以下の部分のコメントを削除します。



開発用のソフトウェアを準備

SQLの窓 Build C++ と、販売管理C でテスト環境を構築します 。

手順1 ( MySQL の ODBC ドライバ)

SQLの窓 Build C++ は 32ビットアプリケーションなので、まず MySQL の ODBC ドライバ(32ビット)をダウンロードしてインストールします。

Connector/ODBC 5.3

※ 何も選択せずにダイアログ内で進めればOK です

手順2 (SQLの窓 Build C++)

次に、SQLの窓 Build C++ をダウンロードして解凍して WinOfSql.exe を実行して下さい。

※ レジストリは使用しません。
※ 複数のフォルダにいくつあっても動作します。
※ 削除すればアンインストールです。

実行後 M ボタンをクリックして MySQL 接続用のダイアログを開き、ODBC アドミニストレータボタンで ODBC の DSN を作成する Windows の管理ツール(32ビット) を実行します。



手順3 ( DSN 登録 )

ここで、xampp-control.exe を実行し、開始ボタンで MySQL を開始します。(初期設定なので失敗しないようにこのタイミングで実行しています / 以降は必要な時でいいです)



ユーザDSN => 追加 => MySQL ODBC 5.3 Unicode Driver

( ODBC32ビットドライバの一覧は、HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ODBC\ODBCINST.INI より確認できます)

▼ Details ボタンで全て開いて Character Set で cp932 を選択して下さい。


データベースは、まだユーザ用を作成していないので mysql を選択します。これは後で変更しなくとも、接続時に変更しますのでこのままでいいです。

入力が終わったら、データベースの右の Test ボタンで接続が成功するのを確認します。接続に成功したら、OK で登録します。

手順4 ( SQLの窓 Build C++ で接続して DB 作成 )



M ボタンで接続ダイアログを表示して、DSN に登録した情報で接続します



右側のテキストエリアで create database 自分用のデータベース名 で、Action ボタンをクリックして作成します。





作成後は、いったん終了して再度 SQLの窓 Build C++ を実行します(オペミスを防ぐためです)。そして再度 M ボタンで、今度は作成したデータベース(ここでは lightbox)で接続します。( 接続情報を保存する為です )




手順5 ( 作成した データーベース の確認 )

接続後、テーブルが無いのでなにも表示されませんが、メニューに登録済みの SQL で内容を確認できます。

『データベース一覧』で、登録したデータベースと既に存在するデータベースを確認できます。





『システム変数の値』で、キャラクタセットを確認します





手順6 ( 販売管理C.mdb をインポート )

▼ 学習用 MDB データのダウンロード


解凍した中にある 販売管理C.mdb を SQLの窓 Build C++ の左側のリストにドラッグ&ドロップします。



次にリストの中のテーブルを、SHIFTキーを使って選択して(まず先頭をクリックして、SHIFTキーを押しながら最後をクリック)から、処理 => エクスポート => MySQL を選択



直前の接続が選択されているので、下欄のチェックボックスを二つ選択して実行します


※ チェックボックスが無いと、主キーが無い状態でデータのみがエクスポートされます( 後からキー設定は可能ですがテーブルを全て設定するのは面倒です )

完了すると左下にメッセージが出るので、x ボタンで閉じます。



閉じたら、そこは MDB の接続なので、M ボタンで切り替えて下さい。テーブルの一覧が表示されるはずです。

※ テーブルをダブルクリックすると、テーブルデータが表示されて直接変更が可能です。( 更新は 『編集』メニューから更新です )







関連する記事

Pleiades Eclipse 4.7 Oxygen 2 Windows 64bit Ultimate Full Edition のインストールといろいろな準備


Pleiades Oxygen 2 の XAMPP 内の FileZilla Server をインストールして使用する


Pleiades Eclipse 4.7 Oxygen で Python を使って MySQL にアクセスする



posted by lightbox at 2018-04-03 11:42 | Pleiades | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり