SQLServer カーソル データがおかしい?? 普通にSELECT時と違う??

カーソルを回してINSERTとかしたら、なぜか件数が少ない?!
例えば・・・

DECLARE カーソル1 CURSOR FOR
SELECT 注文番号,品物番号 FROM テーブル1
WHERE 注文番号 NOT IN (SELECT 注文番号 FROM テーブル2)
OPEN カーソル1
FETCH NEXT FROM カーソル1 INTO @col1,@col2
WHILE (@@FETCH_STATUS=0)
BEGIN
INSERT INTO テーブル2(注文番号,品物番号) VALUES(@col1,@col2)
FETCH NEXT FROM カーソル1 INTO @col1,@col2
END
CLOSE カーソル1
DEALLOCATE カーソル1

あまり上手な例ではありませんが、注文番号が存在しないレコードをテーブル2へ入れようとしています。

これうまくいきません。

やってみると分かりますが、注文番号1つにつき、1レコードしか追加されません。詳しく調べていませんが、どうやら、FETCH NEXT した際に、カーソルのSELECTが再評価されているようです。
「注文番号 NOT IN」なんてやっているので、1レコード追加した段階で再評価されると条件にヒットしなくなる。

一時テーブルに入れてから、それをカーソルで回すとうまくいきます。

ちなみに、カーソルのSELECT文が複雑な場合は、一時テーブルに一旦保存してから、それをカーソルで回すほうが数百倍、いや数万倍?、いやいや数百万倍?、とにかくそのほうが速いです。

教訓・・・カーソルは単純なSELECT文で。

PHPから Excel用 UTF8のCSVの出力

PHPから Excel用 UTF8のCSVを出力します。

  • Excelで開きたい。
  • 汎用のCSV形式にしたい。Excel専用にはしたくない。
  • 改行が含まれるデータが存在する。
  • UTF-8 のままで出力したい。Shift-JISへ変換できない文字が含まれている。

※ ExcelのCSVはShift-JISで、改行コードが混在します。ファイルをダブルクリックで開く場合と、テキストファイルの読み込みで開く場合とで挙動が異なります。

解決策

この2つがポイントです。

  • 拡張子を.csvにする
  • 先頭にUTF8を宣言するBOMを付ける

実際のコードです。

<?php
header("Cache-Control: public");
header("Pragma: public");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=data.csv");

//BOM
echo pack('C*',0xEF,0xBB,0xBF);

//データはここから
foreach($rows as $row){
    echo ・・・
}

WordPress マルチサイトでメール投稿

メール投稿の設定

設定 → 投稿設定 → メールでの投稿

ただし、マルチサイトの場合この項目が非表示になっています。

解決策

wp-config.php に 1行追加しましょう。

define( 'POST_BY_EMAIL', true );

追加情報 ※重要

WordPress のビルトインメール投稿機能は非推奨になっており、今後のリリースで削除される予定です。代わりに上記のプラグインを使ってください。インストール・設定については各プラグインのドキュメンテーションを参照してください。
参照: WordPressCodex メールによるブログ投稿

って、いうことらしい… -_-メ

Softether VPN Error 720

エラー 720 で接続できない

Softether VPN をインストールしたPCは無線接続ではないですか?

⇒ 「仮想NATおよび仮想DHCPサーバー機能」の「SecureNAT機能を有効にする」 を選択しましょう。

参考: http://www.vpnazure.net/ja/ ローカルブリッジの設定

 

(おまけ) エラー691 で接続できない

⇒ ユーザーを削除し、再作成しましょう

HP MicroServer N54L のRaidXpert Download link

いつも迷子になるのでメモ

AMD Chipset Drivers

 Windows7 の場合は、
「Supports Windows Vista」の
  • AMD Raid Drivers
  • AMD Chipset Drivers
  • AMD RAIDXpert Utility
をインストール。

同期しない問題

オフラインの管理ツール「Rom-Based Setup Utility」(POST画面で [Ctrl] + [F] キー)と、オンラインのRAIDXpert Uttility とで、表示される構成内容や状態に相違がある場合(あれこれ試行錯誤したが解決できなかった)、オンライン版RAIDXpert Uttilityで構成すべき。障害時の復旧はオンライン版でしかできない。※追伸参照

追伸 ※重要

上記の状態でオンライン版で行った構成は、OS再インストール時にRAID構成が消えます。各HDDにデータは残っているので復旧は可能ですが、同じHDDを使ってRAIDを再構築するためには、各HDDが初期化さてしまうため、データの退避が必要です。

オフライン版で構成した場合

  • 障害復旧時に新しいHDDを装着しても再構築できない(RAID構成を初期化する必要あり)
  • OS再インストールしてもRAID構成は維持される
  • HDDの健康状態は、起動時に数秒表示されるPOST画面で確認するしかない

オンライン版で構成した場合

  • 障害復旧時に新しいHDDを装着すれば再構築できる
  • OS再インストールするとRAID構成が消える(RAID構成を初期化する必要あり)
  • HDDの健康状態は、いつでもRAIDXpert Uttility で確認できる

なんと、、どう頑張ってもRAID構成を初期化する必要があります。

表示される構成内容や状態に相違がある場合は、このあたりを考慮した上で、オフライン版で構成するか、オンライン版で構成するかを検討すべきです。

オンライン版RAIDXpert Uttility のダウンロードURLの情報は、HPサイトにもありません。サポートに問い合わせてもAMDへ問い合わせてくださいと言われます。
HPファンだったんだけどなぁ、、次はこのあたりかな

PJLink 「NTCONTROL 0」 「ERR1」

久々にハマりましたので、情報を残しておきます。

問題:Panasonic モニタをPJLinkで操作したいのだけれど、うまくつながらない。

NTCONTROL 0

「NTCONTROL 0」 と応答がある場合、そもそも接続が間違っているようです。
どう頑張っても「ERR1」って帰ってきますよね。Pnasonicディスプレイ専用のLAN制御プロトコルの待ち受けポートに接続してしまっています。1024ポートに接続していませんか?

“00PON” + chr(13)
“00POF” + chr(13)

等のコマンドで制御するようです。
参考 https://v-control.com/forums/topic/panasonic-new-generation-21k-13k-etc-via-lan/

 

解決策

PJLinkの待ち受けポートは  4352 みたいです。

「PJLINK 0」とか「PJLINK 1」って応答があれば成功です。あとは仕様書どおりで大丈夫です。

TCPDFの地雷 このページにはエラーがあります。Acrobatはページを正しく表示できない場合があります。PDF文書の作成者に連絡して、問題を解決してください。

adobe-error.fw

TCPDF の writeHTML() でPDFを作成している場合に発生します。Adobe製品だけエラーメッセージでPDFが表示できず、Chromeで開発していると正常表示の為気づかないという、なんともおかしな現象です。

原因

わかりません。。

HTMLの構造や属性で発生するようです。

対策

体当たり的に経験値を上げるしかありません。。

エラーを経験したHTMLコード

  • <table align=”right”> 「align=”right”」を削除すると正常になった
  • <div><table> 属性なしの場合 <div>を削除すると正常になった
  • <div><div> 属性なしの場合 <div><div>を削除すると正常になった

TCPDF の writeHTML() で background-image

具体的に言うと

  • 請求書PDF等をPHPから出力したい
  • PHPでゴニョゴニョ書くのは面倒なので、レイアウトはHTMLで管理したい
  • 角印の背景画像を入れたい

今回は、TCPDFのwriteHTML()で背景画像をなんとかする方法です。

background-image: ⇒ ダメ
margin-top: ⇒ ダメ
position: ⇒ ダメ

...そして、 stack overflow : TCPDF not render all CSS properties を見たりして、あきらめかけている方に朗報です。

なぜか唯一 table タグ の padding だけサポートされています。

 

こんな感じで解決です。
<img src=”stamp.jpg” />
<table style=”padding-top:-100px;”><tr><td>
    株式会社日本ユニバース<br />
    http://nusoft.jp/
</td></tr></table>