2022年6月12日日曜日

VB 2008sp1 の頃の奴 何と .sdf 絡み

あれぇ~、
確か、自分で書いた古いもので sdf を使うものは、皆、mdf に変えた筈だったのに ... 。
其れをやったのは 大昔の事。
でも、積み残し! があったのです。


自分がプログラムを書き出したのは、Visual Studio 2008 sp1 Express Edition の頃。
(実は、其のずっと前から なのですが ... 。)
OS は 今は無き Windows Vista で、言語は VB.net でした。
其の頃は、データベースエンジン SQL Compact Edition 3.5 が VS に添付されていて、
.Netframework も version 3.51 でしたね。
今では、.Netframework は 4.8 へと進化し、SQLCE も LocalDB へと変遷しています。
言語も VB.net 自体は継続していますが、主力は C# へと移っています。

尤も、
Windows Vista 以前、MS-DOS や Windows NT 3.51 の頃は、別の開発言語 を使っていましたが、
Windows 無印と NT 系が統合した後は 先の通り です。
別の開発言語 は 時代の波 に乗れず、現行の OS ではサポートされていないのでした。
なので、プログラムを書き出し は VS2008 の頃 と書いたのです。

さて、自分の環境下では、新しく導入した PC へは VS2008 導入は見送っています。
.Netframework 3.5 要求を嫌っての事。

さてさて、普通のプログラムの場合、
Some.exe.config に おまじない を書き込めば、動く可能性がある訳ですが、
sdf 殊に SQLCE 3.5 利用の場合、事は複雑です。
SQLCE 3.5 自体、.Netframework 3.5 依存(前提)ですし ... 。

動く様にするには、... 。
やはり、最新環境で、新しく書いて置いた方が 宜しい かと。
普通は、VS2022 ですが、故あって、私は VS2017 ... 。

昔なら、
.sdf を .mdf に Miglate して、LocalDB 利用の道を選んだでしょう。
でも、
.xml と言う選択肢もあります。
タカが 1300 Rec 強 のデータ量ですし。
仮に、
Form 利用で DataGridView ならば、
書き込みルーチンも作れば、データ編集と保存も可能になりますし。

幸い、まだ、古い PC も元気に動いてくれますから、
其の環境下であれば、昔のものに手を入れる事も可能です。
かなり久しぶりに VB2008sp1EE を開き、
古い Project に .xml ファイル 書き出し を加えます。
そう、 dataTable.WriteXml(file) ですね。
此れで実行すれば、.xml が得られます。

尤も、.xsd から読み込まれたデータベースですから、
其の旨の記述 も書き込まれますので、
削除(コメントアウト)しましょう。
で無いと、新プロジェクトでも .xsd を作る羽目になりますから。

こんな感じ です。

<?xml version="1.0" standalone="yes"?>
<!-- IchiranDataSet xmlns="http://tempuri.org/IchiranDataSet.xsd" -->
<IchiranData>

...

<!-- IchiranDataSet -->
</IchiranData>

此れを元に、VS2017 C# で書き出した処です。  ;)


私見 ですが、
.mdf & LocalDB は高機能で優秀ですが、如何せん、起動に時間が掛かります。
其れに較べ、データ量が然程多く無いなら、.xml で充分かも、と最近は思っています。
最悪、ファイルを テキストエディタで開けば、お手軽編集 も可!。

但し、編集時、データ整合には留意しないと、途端に、無用の長物に化けますが ... 。


此れで、古い VB2008sp1EE とは お別れ! となると良いのですが。
何分、作ったプログラムを 新しい環境下 で動かせ無い のは ... 痛いです。 其れ故の、移行作業。
そして、
せっせ、せっせと、 移行を進めた時期があったのですが、
利用頻度が低ければ、見落としたもの も あった! と言う事ですね。

言い訳がましくなりますが、移行をした時期には、此れはもう使わないだろう、と読んだのですが ... 。
謂わば、忘れ去られた もの だった訳でして ... 。  おおっ、浅はか!。


感謝すべきは 古い PC が健気に動いていてくれた事。
ありがたい事です。



0 件のコメント:

コメントを投稿