MW211 EXIT

devlog
PHP/MSSQL連携
2015年08月08日
PHPからMSSQL(SQL Server)にアクセスできるようにするには
別途「Microsoft Drivers for PHP for SQL Server」dllを入手しアサインする

(1) Microsoft公式サイトから「SQLSRVxx.EXE」をダウンロードする
    https://www.microsoft.com/en-us/download/details.aspx?id=20098
    →以下のバージョンが取得可能(PHPやWindowsバージョンに合わせて選択)
      ・4.0(SQLSRV40.EXE)
      ・3.2(SQLSRV32.EXE)
      ・3.1(SQLSRV31.EXE)
      ・3.0(SQLSRV30.EXE)

(2) 上記EXEを実行すると、ファイルが取得(解凍)される
    途中で、解凍先を聞いてくるので任意のフォルダを選択

(3) 解凍された一式から「php_sqlsrv_xx.dll」と「php_pdo_sqlsrv_xx.dll」を
    条件に応じて一組だけ選び、
    extフォルダ(「C:\Program Files\PHP\ext」など)へ置く(コピーする)
    ┌────┬────────────┬──────────────┐
    │SQLSRV30│php_sqlsrv_53_ts.dll    │php_pdo_sqlsrv_53_ts.dll    │
    │        │php_sqlsrv_53_nts.dll   │php_pdo_sqlsrv_53_nts.dll   │
    │        ├────────────┼──────────────┤
    │        │php_sqlsrv_54_ts.dll    │php_pdo_sqlsrv_54_ts.dll    │
    │        │php_sqlsrv_54_nts.dll   │php_pdo_sqlsrv_54_nts.dll   │
    ├────┼────────────┼──────────────┤
    │SQLSRV31│php_sqlsrv_54_ts.dll    │php_pdo_sqlsrv_54_ts.dll    │
    │        │php_sqlsrv_54_nts.dll   │php_pdo_sqlsrv_54_nts.dll   │
    │        ├────────────┼──────────────┤
    │        │php_sqlsrv_55_ts.dll    │php_pdo_sqlsrv_55_ts.dll    │
    │        │php_sqlsrv_55_nts.dll   │php_pdo_sqlsrv_55_nts.dll   │
    ├────┼────────────┼──────────────┤
    │SQLSRV32│php_sqlsrv_54_ts.dll    │php_pdo_sqlsrv_54_ts.dll    │
    │        │php_sqlsrv_54_nts.dll   │php_pdo_sqlsrv_54_nts.dll   │
    │        ├────────────┼──────────────┤
    │        │php_sqlsrv_55_ts.dll    │php_pdo_sqlsrv_55_ts.dll    │
    │        │php_sqlsrv_55_nts.dll   │php_pdo_sqlsrv_55_nts.dll   │
    │        ├────────────┼──────────────┤
    │        │php_sqlsrv_56_ts.dll    │php_pdo_sqlsrv_56_ts.dll    │
    │        │php_sqlsrv_56_nts.dll   │php_pdo_sqlsrv_56_nts.dll   │
    ├────┼────────────┼──────────────┤
    │SQLSRV40│php_sqlsrv_7_ts_x64.dll │php_pdo_sqlsrv_7_ts_x64.dll │
    │        │php_sqlsrv_7_nts_x64.dll│php_pdo_sqlsrv_7_nts_x64.dll│
    │        ├────────────┼──────────────┤
    │        │php_sqlsrv_7_ts_x86.dll │php_pdo_sqlsrv_7_ts_x86.dll │
    │        │php_sqlsrv_7_nts_x86.dll│php_pdo_sqlsrv_7_nts_x86.dll│
    └────┴────────────┴──────────────┘

(4) 「php.ini」(「C:\Program Files\PHP\php.ini」など)に
    上記二つのDLLアサインを追記する
    ┌─────────────────┐
    │[PHP_SQLSRV_xx]                   │
    │extension=php_sqlsrv_xx.dll       │
    │[PHP_PDO_SQLSRV_xx]               │
    │extension=php_pdo_sqlsrv_xx.dll   │
    └─────────────────┘
    なお、角括弧の行(セクションマーカ)は単なる目印で影響を及ぼさないので
    記述しなくともよい(もしくは適当に周囲に合わせて記述する)

(5) 「phpinfo()」にて、以下が確認できればOK
    ・「PDO」の「PDO drivers」に「enabled」として「sqlsrv」が追加されていること
    ・「pdo_sqlsrv」(セクション)が追加されていること
分類:PHP、PDO
多言語対応
2015年08月06日
一般的な多言語対応は以下の通り
┌──────┬────────────────────┬──────────┐
│VC/C++      │リソースで言語切替(VisualSutio)         │Microsoft系         │
│VC#         │                                        │                    │
│VB          │                                        │                    │
├──────┼────────────────────┼──────────┤
│C           │gettext()                               │                    │
│C++         │                                        │                    │
│Objective-C │                                        │                    │
│Java        │                                        │                    │
│Perl        │                                        │                    │
│PHP         │                                        │PHPは標準実装       │
│Python      │                                        │                    │
│Ruby        │                                        │                    │
├──────┼────────────────────┼──────────┤
│共通        │連想配列で対応                          │ベタな対応          │
└──────┴────────────────────┴──────────┘
分類:設計
TortoiseSVN/クリーンアップ
2015年08月05日
【クリーンアップ】
  ■作業コピーの状態をクリーンアップ
    →狭義のクリーンアップコマンド(作業コピーを削除する)
  □ロックを強制解除する
    →書込ロックを全て解除する
  □タイムスタンプを修正
    →更新時刻を最終コミット時に全て更新
  □未使用のコピーを削除
    →作業コピーを整理する(サイズ削減)
  □シェルのオーバーレイを更新
    →エクスプローラのSVNアイコンを再更新する
  ■外部参照を含める
    →外部参照設定時にそれらも対象とする
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  □バージョン管理外のファイルやフォルダーを削除
    →処理タイトルの通り
  □無視するファイルやフォルダーを削除
    →処理タイトルの通り
  □すべての変更を再帰的に取り消す
    →処理タイトルの通り
分類:SVN
一行は80文字
2015年08月04日
Q.一行80文字(半角80文字・全角40文字)で区切ることが多いがなぜか?
A.パンチカード(ホレリスのIBMパンチカード)時代からの流れ
分類:設計
ExcelVBA/セル範囲の個別収集
2015年08月03日
セルを個別に指定追加して、グルーピングしていく方法。

【1】Range変数を使用する方法
┌──────────────────────────────────────┐
│Dim セルたち As Range                                                       │
│Set セルたち = Range("A1")                                                  │
│Set セルたち = Union(セルたち, Range("B2"))                                 │
│Set セルたち = Union(セルたち, Range("C3"), Range("D4"))                    │
└──────────────────────────────────────┘
「セルたち = Range("A1")」だと「セルたち.Value = Range("A1").Value」の
省略形と解釈されるので注意。

【2】名前定義セルを使用する方法
┌──────────────────────────────────────┐
│Range("A1").Name = "範囲"                                                   │
│Union(Range("範囲"), Range("B2")).Name = "範囲"                             │
│Union(Range("範囲"), Range("C3"), Range("D4")).Name = "範囲"                │
└──────────────────────────────────────┘
「Range("範囲") = Union(Range("範囲"), Range("B2"))」みたいに
右辺に新たな範囲を指定するのではない点に注意。
ちなみに上記だと、前述の「.Value」の省略形として解釈されてしまう。
分類:ExcelVBA
ExcelVBA/名前定義セルの効用
2015年08月02日
名前定義セルを使用すると、関数間のセル範囲の引き渡しが
グローバル変数的にできるとともに、記憶もされる。
┌──────────────────────────────────────┐
│Sub 関数A()                                                                 │
│    Union(Range("A1"), Range("B2")).Name = "範囲"                           │
│End Sub                                                                     │
├──────────────────────────────────────┤
│Sub 関数B()                                                                 │
│    Range("範囲").Interior.Color = vbYellow                                 │
│End Sub                                                                     │
└──────────────────────────────────────┘
上記の場合、「関数A()」で範囲を変更すれば
「関数B()」には引数やグローバル変数なしで伝達することができる。
分類:ExcelVBA
ExcelVBA/名前定義セル
2015年08月01日
以下のような感じで、セルに名前をつける。(.Nameプロパティに値を設定する)
┌──────────────────────────────────────┐
│Range("A1").Name = "範囲"                                                   │
│Range("範囲").Interior.Color = vbYellow                                     │
└──────────────────────────────────────┘

以下のように、Union()(やRange())とも併用できる。
┌──────────────────────────────────────┐
│Union(Range("A1"), Range("B2")).Name = "範囲"                               │
└──────────────────────────────────────┘
分類:ExcelVBA
前へ 1 2 3 次へ