布団が俺を呼んでいる

丘山大一のぶろぐ

Firebird のお勉強 BULK INSERTの使い方

よくわからなかった個所をお勉強。
あ、Embeded環境です。

使い方

TABLE1の定義はこんな感じ
KEY_ID VARCHAR(8),
NAME VARCHAR(20)

isql.exe
SET NAMES SJIS_0208;
Use CONNECT or CREATE DATABASE to spcify a database
SQL> CONNECT hoge.ftb
CON>user 'SYSDBA' password 'masterkey';
Database: hoge.ftb User: SYSDBA
SQL> SET BULK_INSERT INSERT INTO TABLE1 (?,?);
BULK> (0,0);
BULK> (01,'hoge');
BULK> ('001','hoge');
BULK>
SQL> Commit;

便利そうなところ

普通のINSERT 文では、「'」でくくらないと文字列として扱ってくれません。
そのため、
INSERT INTO TABLE1 (KEY_ID,NAME) VALUES (01,'hoge');
と放り込むと、「01」が「1」と解釈されます。
BULK INSERT では、「'」で囲わなくても、「01」と解釈してくれます。
このあたりは、ファイルから値を入れることを想定した動きのように思えます。

悩みどころ

SJIS_0208 で接続しているためでしょうか、Unicode で定義されていても、SJISで定義されていない文字をINSERT できません。
たとえば、「💛」などは、「?」となります。
ちなみに、普通のInsert文を投げると、「💛」でエラーとなります。
ファイルからデータを入れようと思うと、コレがネックになるおそれがあります。
※正しく入ってくれない + エラーで落ちてくれない のは検証がつらい
UTF-8で接続できれば殆ど解決すると思うのですが……できないのだろうか……。



Firebird 徹底入門

新品価格
¥4,104から
(2016/7/14 23:43時点)

コメント (1) -

SJIS_0208はUnicodeにすべての文字をマップできていないので、
SJIS_0208ではなくcp943cを使うようにしてください。

http://tracker.firebirdsql.org/browse/CORE-1324

コメントを書く

布団が俺を呼んでいる | 無線環境から有線環境へアクセスできない

布団が俺を呼んでいる

丘山大一のぶろぐ

無線環境から有線環境へアクセスできない

原因はお粗末でしたが、結構ハマった。

環境としては下記のような状態です。
(他にもマシンが幾つかありますが、必要最低限のところだけ記しています)

無線マシン-------
                        |
                   ルータ ------WAN
                        |
有線マシン-------

発生した現象は、
・同じセグメントに存在する無線LAN接続のマシンから、有線LAN接続のマシンにpingが飛ばない。
・同じセグメントに存在する無線LAN接続のマシンから、有線LAN接続のマシンの共有が参照できない。
同じセグメントに存在する無線LAN接続のマシンから、有線LAN接続のホームグループに参加できない。
・同じセグメントに存在する無線LAN接続のマシンのネットワークの表示からは、有線LAN接続のマシンが見えている。
・ルータへのpingは飛ぶ
・Android無線機器からは有線LANマシンへ接続可能

ここから考えたのは、
・WANに接続できるということは、接続に格別おかしい点があるわけではない。
・ルータにはpingが飛ぶ。つまり、ルータがpingを直接止めている可能性は低い。(有線同士の疎通はもともと可能)
・Androidから接続できるということは、優先LANマシンが特別に弾いているという可能性は低い。

そして調べたのは、
・物理マシン側のウィルス対策の設定
・物理マシン側のホームグループの状態
・無線マシン側のネットワークの設定
 =>パブリックネットワークになっていたので、一応ホームグループに変更。
・無線マシン側のIPが、違うドメインに所属していないことを確認
・Windows10の機能でブロックされていないかどうか、手探りw で確認。
・再起動もしてみる
・ルータ側で無線接続の際に、ブロックしていないか念のため確認。

解決せず……。
ネットでも調べてみるが、有力な情報にヒットしない。

しかし、諦めてはいけない。
トラブルとブルースクリーンこそ、技術力を上げる絶好のチャンス。
落ち着いて考え直してみる。

他の接続、WANとの接続は成功している以上、PCの基本設定に問題はなさそう。
とすると、一番怪しいのはルータの設定。
ルータまでpingは飛び、そこから遮断されているということは、コイツが一番怪しい。
設定を上から順番に見てみる…………
う~~ん、ないな~~と思っていると気になる文字列が!

「プライマリSSID」
「セカンダリSSID」

あれ?
どっちに繋いでいるんだろう?
ネットワーク名を調べてみると……セカンダリであることが判明。
試しにプライマリに繋ぎなおしてみたところ、あっけなく繋がるようになりました。

根本的なところでコケてました……。

PA-WF1200HP【税込】 NEC 11ac対応 867+300Mbps 無線LANルータ(親機単体) AtermWF1200HP [PAWF1200HP]【返品種別A】【送料無料】【RCP】

価格:4,950円
(2015/9/20 17:04時点)
感想(50件)

コメントを書く