2010/07/23

SQLServer compact 3.5

Visual Studio 2008 で開発するとき、何も考えずにホイホイとテーブル作って、データの読み書きしてと、便利な機能。でも VS2008 からだとデータベースのバックアップやリカバリが出来なくて、「なんじゃ、やっぱり使えないじゃん」となりかけていたところ、ありました。世の中にはちゃんとありました。探し方が悪かっただけです。

http://exportsqlce.codeplex.com/
とか、
http://erikej.blogspot.com/2009/04/sqlcecmd-tutorial-part-one-managing.html
とか。

えーごですが、簡単な表現です。ちゃんと読んでいくと色々なツールが用意されていて、便利この上なし。

コマンドラインツールなんか、普通のデータベースと同じような感覚で使うことができます。これで精神的にゆとりが出来ました。じっくりと使いこなしていこうかな。

こんな感じ

MyDatabase.sdf からエクスポート。スキーマとデータの sql 文が db.sql に書き出されます。
>ExportSqlCE.exe "Data Source=C:\tmp\MyDatabase.sdf;" db.sql

別のデータベース abc.sdf を作成
>SqlCeCmd.exe -d "Data Source=C:\tmp\abc.sdf" -e create

そこへ、さっき書き出した sql 文を流し込みます。
>SqlCeCmd.exe -d "Data Source=C:\tmp\abc.sdf" -i db.sql

2010/07/12

Windows のシリアルポートで、はまりまくり

Windows のシリアルポートは、機器を接続すると自動的に番号を割り当ててくれます。USBシリアル変換ケーブルなどを使用すると、USBのソケットを代えただけで別の新しい機器が接続されたと認識されて、またまた、番号を割り当ててくれます。

これが本当にありがた迷惑。

ついには30番を突破することに。どうも20番あたりから接続が怪しかったのですが、ここに来てどうにもこうにもならなくなりました。デバイスマネージャには、何も繋がっていないのに「COM○ 使用中」などと表示されてしまいます。

プロパティで、強制的に違う番号に変更できるのですが、それにも限界がありました。

で、悩むこと半日。

やっと見つけました。
http://social.answers.microsoft.com/Forums/ja-JP/xphardwareja/thread/32cd879a-a2e8-46d8-a877-6751792990f1/

----------引用ここから----------
「マイコンピュータ」を右クリック⇒「プロパティ」を選択⇒「詳細設定」タブ⇒「環境変数」ボタン⇒「システム環境変数」の「新規」ボタンとクリックし、変数名に「DEVMGR_SHOW_NONPRESENT_DEVICES」と入力。変数値欄に「1」と入力して再起動します。

デバイスマネージャにて「表示」⇒「非表示のデバイスの表示」と選択すると、過去にインストールした全てのドライバが灰色表示されます。ここで USBの灰色部分を右クリック⇒「削除」を選択して1つずつ削除します。
----------引用ここまで----------

これですっきりしました。

【追記】

と思っていたら、たいした解決に至っていませんでした。デバイスマネージャから、特定のシリアルポートのデバイスを選択して、プロパティでCOMポート番号を変更しようと、ドロップダウンリストを開いてみたら「キャーッ」なんと、「使用中」の表示がズラズラ。

根本解決していません。

レジストリはいじりたくないよーっ。