SQLの窓 イラストAC フリー素材

画狼

まとめ


注目
【VBS】WshShell.Runによる外部プログラムの実行のバリエーションと注意事項複数行のグループデータを1行にまとめるSQL
IE11 ( JScript : UI ) C# PHP JavaScript / jQuery HTML/CSS Android Java その他 WSH ( JScript : バッチ ) JScript を使用して( 拡張子は WSF )、CScript.exe に呼び出されるコンソールアプリケーションです
🍄 【メール送信 : fake sendmail】
fake sendmail for windows でメールを送信する

🐬 【データベース : エクスポート】
.accdb より Excel へのエクスポート
MySQL から Excel へのエクスポート
MySQL から SQLServer へのエクスポート

【データベース : Excel : エクスポート : CSV : 標準出力】
名前の定義がされた範囲をテーブルとして SELECT 文で 標準出力に CSV 出力【HTTP : Msxml2.ServerXMLHTTP : GET】
Msxml2.ServerXMLHTTP の GET で WEB 上の文字列を取得して JSON オブジェクトに変換して利用する【HTTP : Msxml2.ServerXMLHTTP : POST】
簡単にバイナリファイルをアップロードする【PUTをPHPでサポート】

【基本部分】
JScript の基本
MsgBox と InputBox を使う
IE11 ( JScript : UI ) IE11 で画面を作成して、一般的な JavsScript を使用して実行されるアプリケーションです。 ※ ここでできる事は、WSH ( JScript : バッチ ) でも可能です
🍄 【メール】
CDO.Message でメール送信

【データベース : 問合せ】
.accdb のテーブル一覧を jQuery で TABLE に作成する

🏢 【Excel】
新しい Excel の Book を作成する
既存の Book を開いてその中のテンプレートシートをコピーして名前を付けて保存する
ファイルを開くダイアログを使用する

【Windows : プログラム実行】
コマンドプロンプトベースの外部プログラムより情報を取得

【Windows : フォルダ選択】
フォルダを選択して、フォルダ内のフォルダとファイルの一覧を jQuery で表示する

【その他】
jQuery で、selectをタブルクリックした時に OPTION 要素の処理を行うコード
IE11 はブラウザなので、⚡ 通信処理は 【JavaScript / jQuery】 の ajax が利用できます C#
🍄 【メール】
TKMP.DLLを使った、Gmail 用メール送信テンプレート

🔀 【DataGridView】: カラムを作成( 他の一覧処理用 )
Microsoft Access に対してSQLを入力してその結果を DataGridView に表示する最も簡単なコード

🔀 【DataGridView : DBより自動更新】
DataGridView を使用したナチュラルな行データの更新

🔀 【DataGridView】: DB より カラム自動作成
Excel を データベースとして DataGridView に読み込む【WEBアクセス : JSON】
WebClient で JSON データを取得後 Json.NET でオブジェクト化【WEBアクセス : バイナリ】
PHP と連携してバイナリデータを WebClient.UploadDataAsync でそのままアップロードする

🐬 【データベース】
Microsoft Access の接続で、他の RDBMS【ここでは MySQL】にエクスポートを行う

【Windows】
フォームを表示せずに、通知領域にアイコンを表示させる常駐プログラム

🏢 【Excel】
dynamic 型 による Excel へのアクセス

【C# : ラムダ式等】
C# の delegate : メソッドの引数にメソッドを渡して使用する方法
PHP
🍄 【メール】
fake sendmail for windows を使って、PHP でごく普通に mb_send_mail でメール送信【ファイルアップロード】
PHP における標準的なテスト用アップロードのテンプレート

🐬 【データーベース : JSON  : API】
PHP : MySQL から JSON 文字列を返す自作【テスト用】API テンプレート

【データーベース : Microsoft Access : クラス】
家に持ち帰った mdb で簡単に php からアクセスしてテストプログラムを作る【MDBクラス付き】

📷 【画像処理】
PHP : 画像を返す処理( readfile ) と画像を縮小する処理( GD )
JavaScript / jQuery
【HTTP : ajax : GET】
jQuery の $.ajax で JSON 文字列を WEB より取得して TABLE を作成する【HTTP : ajax : アップロード】
一般的な PHP のアップロードページに対して jQuery の $.ajax でファイルをアップロードする【HTTP : ajax : Firebase  JSON】
Firebase の Realtime Database の JSON を jQuery の $.ajax で読み込んで TABLE を作成する【HTTP : Firebase : API】
Firebase に定義した Realtime Database の API を使用して TABLE を作成する

💾 【ファイル : CSV ロード】
FileReader で、ローカルの CSV を読み込んで【shift_jis】、jQuery でテーブルを作成して表示する

📥 【クリップボード : コピー】
clipboard.js で、2種類のクリップボード処理オブジェクトを作成して使い分ける
HTML/CSS
下半分がスクロールするページ
下半分が IFRAME なページ

Bootstrap な単純ページ( レスポンシブ )
Android
【HTTP : JSON】
LiveDoor のお天気情報をリストビューに表示する手順
Java
🐬 【コンソール】
単純な MySQL アクセス【 mysql-connector-java-5.1.47.jar】【コンソール : HTTP : JSON】
Okhttp( GET ) と Google Gson( JSON => オブジェクト ) で WEB アクセス

🐬 【JSP】
JSP で単純な MySQL アクセス 【mysql-connector-java-5.1.47.jar】
データベース System.Data.OleDb で select into 構文を使って簡単に Microsoft Access のデータを他の データベースにエクスポートする データーベース間 テーブルアクセス IN 句による外部参照 Access のエクスポート その他
Apache の index 表示でファイル名が長すぎて省略される場合の設定変更
デスクトップにユーザアイコン

PHP : ユニークなキーの取得
参考
bcp ユーティリティ( Microsoft )
SQL クライアント設定ユーティリティ( Microsoft )
sqlcmd Utility
bcp lightbox..社員マスタ out "c:\TEMP\data.csv" -c -t , -r \n -S localhost -U sa -P password
bcp "select * from lightbox..[商品マスタ]" queryout "c:\TEMP\data.csv" -c -t , -r \n -S localhost -U sa -P password
posted by at 2020-01-01 00:00 | 一覧 | このブログの読者になる | 更新情報をチェックする

2019年11月18日

バッチ処理の為の .wsf スケルトン / cscript.exe での実行を強制する / 自分自身の呼び出し

Wscript.Echo は、Wscript.exe から実行すると、一回の処理毎にメッセージボックスを表示するので、連続処理する場合は避けなければなりません(wscript.exe をタスクマネージャから強制終了する事になります)

Wscript.exe は、通常エクスプローラからダブルクリックでスクリプトを実行した際に使用されるので、誤って実行してしまう事を避ける方法です。以下のサンプルでは、スクリプトにデータを含めて、そのデータをループ処理で表示する処理ですが、コマンドプロンプトからの実行を強制しています( コマンドプロンプトから、cscript.exe を使用しないと Quit されます )


右端のアイコンよりダウンロードできます
<JOB>
<SCRIPT language="VBScript">

' コマンドプロンプトより起動される為の処理
str = WScript.FullName
str = Right( str, 11 )
str = Ucase( str )
if str <> "CSCRIPT.EXE" then
	strMessage = "コマンドプロンプトより cscript " & WScript.ScriptFullName
	strMessage = strMessage & " と指定して実行して下さい   " & vbCrLf & vbCrLf
	strMessage = strMessage & "( この文字列をクリップボードにコピーしたい場合は"
	strMessage = strMessage & "ctrl+c です )"
	WScript.Echo strMessage
	WScript.Quit
end if

aData = Split( getResource("myText"), vbCrLf )
For I = 0 to Ubound( aData )
	if Trim( aData(I) ) <> "" then
		Wscript.Echo aData(I)
	end if
Next

</SCRIPT>

<RESOURCE id="myText">
コード名称マスタ
商品マスタ
得意先マスタ
社員マスタ
取引データ
</RESOURCE>
</JOB>

以下は、Wscript.exe で起動された場合は、cscript.exe で自分自身を呼び出して再度実行しています( 最後にコマンドプロンプトの pause で停止 )
右端のアイコンよりダウンロードできます
<JOB>
<SCRIPT language="VBScript">

' コマンドプロンプトより起動される為の処理
str = WScript.FullName
str = Right( str, 11 )
str = Ucase( str )
if str <> "CSCRIPT.EXE" then
	str = WScript.ScriptFullName
	Set WshShell = Wscript.CreateObject("WScript.Shell")
	strParam = " "
	For I = 0 to Wscript.Arguments.Count - 1
		if instr(Wscript.Arguments(I), " ") < 1 then
			strParam = strParam & Wscript.Arguments(I) & " "
		else
			strParam = strParam & """" & Wscript.Arguments(I) & """ "
		end if
	Next
	Call WshShell.Run( "cmd.exe /c cscript.exe """ & str & """" & strParam & " & pause", 3 )
	WScript.Quit
end if

aData = Split( getResource("myText"), vbCrLf )
For I = 0 to Ubound( aData )
	if Trim( aData(I) ) <> "" then
		Wscript.Echo aData(I)
	end if
Next

</SCRIPT>

<RESOURCE id="myText">
コード名称マスタ
商品マスタ
得意先マスタ
社員マスタ
取引データ
</RESOURCE>
</JOB>


そして、最後は面倒な記述部分を WEB 上に置いて呼び出して実行しています
(Crun と言う関数)
右端のアイコンよりダウンロードできます
<JOB>
<COMMENT>
************************************************************
 WSH 実行スケルトン
************************************************************
</COMMENT>

<COMMENT>
************************************************************
 外部スクリプト定義
************************************************************
</COMMENT>
<SCRIPT
	language="VBScript"
	src="http://lightbox.in.coocan.jp/laylaClass.vbs">
</SCRIPT>

<SCRIPT language="VBScript">
' ***********************************************************
' 処理開始
' ***********************************************************
Call laylaFunctionTarget( "http://lightbox.in.coocan.jp/" )
Call laylaLoadFunction( "baseFunction.vbs" )

Crun()

aData = Split( getResource("myText"), vbCrLf )
For I = 0 to Ubound( aData )
	if Trim( aData(I) ) <> "" then
		Wscript.Echo aData(I)
	end if
Next

</SCRIPT>

<RESOURCE id="myText">
コード名称マスタ
商品マスタ
得意先マスタ
社員マスタ
取引データ
</RESOURCE>
</JOB>






posted by at 2019-11-18 13:52 | VBScript | このブログの読者になる | 更新情報をチェックする

2019年09月21日

WordPress ( 5.x.x ) の 投稿用のエディタ( Gutenberg )を 昔ながらのエディタにする為、functions.php に一行追加

詳細は以下のサイトより
WordPressエディタGutenbergを無効にする方法について(準備ができていない!)

結局 functions.php の先頭に以下を追加しました

add_filter('use_block_editor_for_post', '__return_false', 10);
posted by at 2019-09-21 15:27 | オワコン | このブログの読者になる | 更新情報をチェックする

2019年08月26日

Java : Okhttp( GET ) と Google Gson( JSON => オブジェクト ) で WEB アクセス

Okhttp のダウンロードは、files の jar リンクです。( Maven リポジトリ)

Okhttp は Okiokotlin-stdlib に依存しているのでこれらもダウンロードする必要があります。
import java.io.IOException;

import com.google.gson.Gson;

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class Main {

	public static void main(String[] args) {
		
		String url = "https://lightbox.sakura.ne.jp/demo/json/syain_api_bind.php";
		String result = "";
		
		OkHttpClient okHttpClient;		

		okHttpClient = new OkHttpClient();		
		Request.Builder builder = new Request.Builder();
		builder.url(String.format("%s?name=%s", url, "田"));
		Request request = builder.build();

		Response response = null;
		try {
			response = okHttpClient.newCall(request).execute();
			result = response.body().string();
		}
		catch (IOException e) {
			e.printStackTrace();
		}

		System.out.println(result);

		Gson gson = new Gson();

		Syain[] syains = gson.fromJson(result, Syain[].class);

		for (Syain syain : syains) {
			System.out.println(syain.社員コード);
			System.out.println(syain.氏名);
			System.out.println(syain.フリガナ);
		}

	}

	private class Syain {

		public String 社員コード;
		public String 氏名;
		public String フリガナ;

	}

}




posted by at 2019-08-26 22:41 | Java | このブログの読者になる | 更新情報をチェックする

C# : PHP と連携してバイナリデータを WebClient.UploadDataAsync でそのままアップロードする

WebClient.UploadDataAsync Method

バイナリデータは、HTTP のボディ部分で送られるので、ファイル名は HTTP ヘッダにセットして渡します
using System;
using System.IO;
using System.Net;
using System.Windows.Forms;

namespace WebPut
{
	public partial class Form1 : Form
	{
		// 読み込むファイルのパス
		string image_path = @"C:\Users\sworc\Pictures\IMG0330.JPG";

		public Form1()
		{
			InitializeComponent();
		}

		private void button1_Click(object sender, EventArgs e)
		{
			WebClient webClient = new WebClient();
			// ファイル名を HTTP ヘッダーで渡す
			webClient.Headers.Add("UserData", Path.GetFileName(image_path));

			// イベント作成
			webClient.UploadDataCompleted += (object _sender, UploadDataCompletedEventArgs _e) => {

				if (_e.Error != null)
				{
					// エラー
					Console.WriteLine(_e.Error.Message);
				}
				else
				{
					// サーバからの応答( バイト配列なのでテキストに変換 )
					Console.WriteLine(System.Text.Encoding.GetEncoding("UTF-8").GetString(_e.Result));
				}

			};

			// 画像ファイルをバイト配列に読み込む
			FileStream file_stream = new FileStream(image_path, FileMode.Open, FileAccess.Read);
			byte[] bin_buffer = new byte[file_stream.Length];
			file_stream.Read(bin_buffer, 0, (int)file_stream.Length);
			file_stream.Close();

			// バイナリデータアップロード開始
			string access_url = "http://localhost/php/upload/php-put.php";
			webClient.UploadDataAsync(new Uri(access_url), bin_buffer);

		}
	}
}


PHP 側は、php://input を利用した単純なコードです。

php-put.php
<?PHP
header( "Content-Type: text/html; charset=utf-8" );

$id = uniqid();

$fp = fopen( "php://input", "rb" );
$wfp = fopen( "data/{$id}_{$_SERVER["HTTP_USERDATA"]}", "wb" );

while( $ret = fread( $fp, 4096 ) ) {

	fwrite( $wfp, $ret );

}

fclose($wfp);
fclose($fp);

?>
データが保存されました




posted by at 2019-08-26 21:25 | C# | このブログの読者になる | 更新情報をチェックする

C# : WebClient で JSON データを取得後 Json.NET でオブジェクト化( ついでに PropertyInfo でプロパティデータ一覧を foreach で取得 )

Json.NET は ダウンロードボタンで NuGet 用のコマンドラインが表示されます

Json.NET でオブジェクトに変換するだけならば、 { set; get; } でプロパティ化せずとも単純な public な変数の定義で可能です。ここでは、プロパティの名前の一覧を配列で準備して foreach でデータを取得できるように { set; get; } でプロパティ化しています。
using Newtonsoft.Json;
using System;
using System.Net;
using System.Reflection;
using System.Text;
using System.Web;
using System.Windows.Forms;

namespace WebJson
{
	public partial class Form1 : Form
	{

		// フィールド名一覧
		private string[] field_names = {"社員コード", "氏名", "フリガナ", "所属", "性別", "作成日", "更新日", "給与", "手当", "管理者" };

		public Form1()
		{
			InitializeComponent();
		}

		private void action_Click(object sender, EventArgs e)
		{
			WebClient webClient = new WebClient();
			webClient.Encoding = Encoding.GetEncoding("utf-8");

			// DownloadStringCompleted の引数は、https://docs.microsoft.com/ja-jp/dotnet/api/system.net.downloadstringcompletedeventhandler
			webClient.DownloadStringCompleted += (object _sender, DownloadStringCompletedEventArgs _e) => {

				Console.WriteLine(_e.Result);

				// Json.NET は、NuGet でインストールします : Install-Package Newtonsoft.Json
				// https://www.newtonsoft.com/json
				JsonData[] data = JsonConvert.DeserializeObject<JsonData[]>(_e.Result);

				// 画面にデータをセット
				name.Text = data[0].氏名;
				furi.Text = data[0].フリガナ;

				// プロパティ名一覧より、データを取得
				PropertyInfo property;
				string value;
				foreach (string name in field_names)
				{
					property = typeof(JsonData).GetProperty(name);
					value = property.GetValue(data[0]).ToString();
					Console.WriteLine(value);
				}

			};

			// HttpUtility.UrlEncode は System.Web を参照する必要があります
			string access_url_query_string = $"https://lightbox.sakura.ne.jp/demo/json/syain_api_bind.php?name={HttpUtility.UrlEncode("田", Encoding.UTF8)}";

			// WEB データ取得開始
			webClient.DownloadStringAsync(new Uri(access_url_query_string));

		}

		private class JsonData
		{
			// PropertyInfo.GetValue を使用する為に { set; get; } でメソッド化しています
			public string 社員コード { set; get; }
			public string 氏名 { set; get; }
			public string フリガナ { set; get; }
			public string 所属 { set; get; }
			public int 性別 { set; get; }
			public DateTime 作成日 { set; get; }
			public DateTime 更新日 { set; get; }
			public int 給与 { set; get; }
			public int 手当 { set; get; }
			public string 管理者 { set; get; }
		}
	}
}




posted by at 2019-08-26 20:08 | C# | このブログの読者になる | 更新情報をチェックする