MW211 EXIT

devlog
ExcelVBA/EditModeとClose
2015年01月16日
MSSQLとのアクセスにて。

「.EditMode」の値の遷移を以下にまとめた。
┌──────────────────┬────────────┐
│Dim テーブル As New ADODB.Recordset │ テーブル.EditModeの値  │
├──────────────────┼────────────┤
│テーブル.Open …                    │「0(adEditNone)」       │
├──────────────────┤                        │
│テーブル.Fields("列名").Value = 値  ├────────────┤
├──────────────────┤「1(adEditInProgress)」 │
│テーブル.AddNew                     ├────────────┤
├──────────────────┤「2(adEditAdd)」        │
│テーブル.Fields("列名").Value = 値  │                        │
├──────────────────┤                        │
│テーブル.Update                     ├────────────┤
├──────────────────┤「0(adEditNone)」       │
│テーブル.Close                      │                        │
└──────────────────┴────────────┘
値が代入されれば更新モード(「1(adEditInProgress)」)、
「.AddNew」が実行されれば追加モード(「2(adEditAdd)」)となり、
「.Update」で、元(「0(adEditNone)」)に戻るようだ。

「.Close」時に元(「0(adEditNone)」)に戻ってない場合には
エラー(「このコンテキストで操作は許可されていません。」)となってしまう。

よって、「.Update」を漏らさずやるか、
更新失敗等の場合には必ず一次的なロールバック「.CancelUpdate」を
必ず行うこと。

クローズ処理を以下の様にしておけば、たいていは大丈夫だろう。
┌──────────────────────────────────────┐
│If Not (テーブル.BOF Or テーブル.EOF) Then                                  │
│    If テーブル.EditMode = adEditInProgress _                               │
│    Or テーブル.EditMode = adEditAdd Then                                   │
│        テーブル.CancelUpdate                                               │
│    End If                                                                  │
│End If                                                                      │
│If テーブル.State <> adStateClosed Then                                     │
│    テーブル.Close                                                          │
│End If                                                                      │
└──────────────────────────────────────┘

ちなみに削除モード「4(adEditDelete)」ってのもあるのだが
こいつがよくわからない。

「.Delete」の前後では「0(adEditNone)」のままだし、
もちろん「1(adEditInProgress)」とかになっている状況で
「.Delete」をすると「0(adEditNone)」になる。

MSDNの説明は「カレント レコードが削除されたことを示します。」なので
エラー系で発生するというわけでもなさそう。
もちろんトランザクション中でコミット前でも即「0(adEditNone)」になる。
分類:ExcelVBA
データ解析/グラフの種類
2015年01月15日
基本的なグラフの種類は以下の通り。
  ・折れ線グラフ
  ・棒グラフ
  ・帯グラフ
  ・円グラフ
  ・レーダーチャート

解析グラフの種類は以下の通り。
┌──────┬───────────────────────────────┐
│ヒストグラム│いわゆる棒グラフ                                              │
│(度数分布図)│但し、他の棒グラフと違うのは、横軸(度数)が必ず連続している点  │
├──────┼───────────────────────────────┤
│パレート図  │棒グラフと折れ線グラフを組み合わせた複合グラフ                │
│        (*1)│棒グラフは大きい順に左からソートされ、                        │
│            │折れ線グラフはその割合の累積が左から右へ積み重なっていく      │
│            │(よって、右端では100%となる)                                  │
│            │左側の大きい棒グラフを解消していくことが優先課題となる        │
├──────┼───────────────────────────────┤
│散布図      │点を散らばしたグラフ                                          │
└──────┴───────────────────────────────┘
                                 *1:ちなみに「パレートの法則」は「80:20の法則」
分類:データ解析
PHP/(UTF-8→Shift_JIS)文字化けタイミング
2015年01月13日
┌──────────────────────────────────────┐
│<meta http-equiv="Content-Type" content="charset=Shift_JIS"/>               │
└──────────────────────────────────────┘
「Shift_JIS」のホームページに、「Shift_JIS」にはない「UTF-8」の「☑」文字を
入力した場合の挙動。

(1) 「☑」をコピー    →クリップボード上は「UTF-8」的に記録(CF_UNICODETEXT)
(2) 「☑」を貼り付け  →ホームページ上は「UTF-8」で表示
(3) POST送信(submit)  →「Shift_JIS」に変換(ここで文字化け「?」)
分類:PHP
MSSQL/スクリプト生成
2015年01月11日
「SQL Server 2014 Management Studio」にて
スクリプト生成時に詳細オプションを変更すべきところは以下の通り。
┌─────────────────────────┐
│テーブル/ビューオプション                        │
│  ┌────────────────┬──────┤  ┌────────┐
│  │トリガーのスクリプトを生成      │False       │→│True            │
├─┴────────────────┴──────┤  └────────┘
│全般                                              │
│  ┌────────────────┬──────┤  ┌────────┐
│  │スクリプトを生成するデータの種類│スキーマのみ│→│スキーマとデータ│
└─┴────────────────┴──────┘  └────────┘
分類:MSSQL
データベースプログラミングスキル
2015年01月10日
データベースプログラミングに関する代表的なスキルをまとめると
以下のような感じになる。

【データベース(RDBMS)スキル】
  □Oracle(PL/SQL)              …有償のメジャーなSQL
  □MS-SQL(Transact-SQL)        …半有償のメジャーなSQL
  □MySQL/MariaDB               …無償のメジャーなSQL
  □PostgreSQL(PL/pgSQL)        …無償で機能豊富なSQL関数
  □SQLite                      …簡易SQL
  □MS-ACCESS                   …身近なSQL

【プログラミング言語スキル】
  □C                           …ポインタとメモリ
  □C++(VisualC++)              …オブジェクト指向、VisualStudio
  □Java                        …オブジェクト指向
  □VisualBasic                 …VisualStudio、VBA
  □PHP                         …Webサーバ
  □JavaScript(jQuery)          …Webクライアント
  □Python                      …Google言語
  □Ruby                        …オブジェクト指向
  □Perl                        …正規表現

【バッチスキル】
  □Windowsバッチ
  □WSH(VBScript)
  □Windowsタスクスケジューラ
  □Linuxシェル
  □Cron
分類:IT全般
設計/論理型と数値型
2015年01月09日
評価という行為において、数値型(int型)と論理型(bool型)のいずれかを使用する場合
論理型は項目が多岐に渡り、数値型はあいまいになる。

例えば、データベース技術がどの程度あるかを確認する場合、
質問内容が以下のような感じになる。

【論理型の場合】
┌──────────────────────────────────────┐
│熟知しているものにチェックをいれてください                                  │
│  □SELECT  □INSERT  □UPDATE  □DELETE  □CREATE TABLE …                 │
└──────────────────────────────────────┘

【数値型の場合】
┌──────────────────────────────────────┐
│SQLの技能はどの程度?(1:不得意、2:やや不得意、3:普通、4:やや得意、5:得意)   │
└──────────────────────────────────────┘

デジタル(前者)とアナログ(後者)の関係みたいだ。
っていうか、論理型はデジタルの最たるものだもんね。
分類:設計
MSSQL/文字型
2015年01月07日
基本的な文字型には以下の種類がある(固定か?可変か?、半角か?全角か?)
  ・「char」型      (固定長半角)
  ・「nchar」型     (固定長全角)
  ・「varchar」型   (可変長半角)
  ・「nvarchar」型  (可変長全角)

・固定長(「var」なし)の場合は、その決まった長さまで末尾に空白が埋められる。
・半角(「n」なし)の場合でも、全角は使えるが「Shift-JIS」レベルまでで
  「Unicode」系(「UTF-8」など)は使えない。
・半角の最大は8000バイト、全角の最大は4000文字
  #「1文字=2バイト」の関係であれば同じということ
    Unicode系の「1文字=3バイト」だと全角の方が「12000バイト」となり
    有利だが、そもそも半角の方はUnicodeをサポートしていない

なお、文字数が大量になった場合は、以下の特殊な型を使うことになる
  ・「varchar(max)」型   (長文半角)  …旧「text」型
  ・「nvarchar(max)」型  (長文全角)  …旧「ntext」型
分類:MSSQL
MSSQL/インスタンスの削除
2015年01月03日
インスタンス(「\SQLEXPRESS」とかのパス)を削除するには
Windows「コントロールパネル」の「プログラムと機能」で
右クリックメニュー「アンインストールと変更」を選択し、
「追加」・「修復」・「削除」の中から「削除」を選び、
その先で特定のインスタンスを選択して削除処理を進めればよい。
分類:MSSQL
MSSQL/キーを集約
2015年01月02日
キーに「-xxx」的な枝番がついていて、これらを横断して枝番なしの集約キーで
合計を取りたい場合。

まず、文字列操作で集約キーを求めるには以下のような感じになる。
┌──────────────────────────────────────┐
│SELECT CASE                                                                 │
│         WHEN CHARINDEX('-', [キー]) > 0 THEN                               │
│           SUBSTRING([キー], 0, CHARINDEX('-', [キー]))                     │
│         ELSE                                                               │
│           [キー]                                                           │
│       END AS [集約キー]                                                    │
│    FROM [表]                                                               │
└──────────────────────────────────────┘
「CHARINDEX('-', [キー])」で「-」の位置を求める。
なければ「0」なので、別途、キーをそのままとする。
あったら、そこまでを「SUBSTRING([キー], 0, ~)」で抽出する。
(Excel関数の「mid()」みたいなもんだ)

ということで、こいつらをSELECT、GROUP BY、ORDER BYに展開するとできあがり。
┌──────────────────────────────────────┐
│SELECT CASE                                                                 │
│         WHEN CHARINDEX('-', [キー]) > 0 THEN                               │
│           SUBSTRING([キー], 0, CHARINDEX('-', [キー]))                     │
│         ELSE                                                               │
│           [キー]                                                           │
│       END AS [集約キー],                                                   │
│       SUM([値]) AS [合計]                                                  │
│    FROM [表]                                                               │
│    GROUP BY CASE                                                           │
│               WHEN CHARINDEX('-', [キー]) > 0 THEN                         │
│                 SUBSTRING([キー], 0, CHARINDEX('-', [キー]))               │
│               ELSE                                                         │
│                 [キー]                                                     │
│             END                                                            │
│    ORDER BY CASE                                                           │
│               WHEN CHARINDEX('-', [キー]) > 0 THEN                         │
│                 SUBSTRING([キー], 0, CHARINDEX('-', [キー]))               │
│               ELSE                                                         │
│                 [キー]                                                     │
│             END ASC                                                        │
└──────────────────────────────────────┘
分類:MSSQL
Excel/分析ツールの設定方法
2015年01月01日
「オプション>アドイン」で「Excelアドイン設定」を実行し、
以下にチェックボックスを入れる。
  ■「分析ツール」
  ■「分析ツール - VBA」

すると、「データ」に(「分析」の)「データ分析」というメニューが追加されるので
そこから各機能を選択して実行する。
  □分散分析
  □相関
  □共分散
  □基本統計量
  □指数平滑
  □F検定
  □フーリエ解析
  □ヒストグラム
  □移動平均
  □乱数発生
  □順位と百分位数
  □回帰分析
  □サンプリング
  □t検定
  □z検定
分類:Excel
前へ 1 … 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 … 156 次へ