2013年03月08日

SQL Server で既存のテーブルに列を挿入しようとするとエラーする

SQL Server で既存のテーブルに途中で列を追加したいときがあるが、列の最後に追加する場合は問題ないのだが、列と列の間に挿入して保存しようとすると「変更の保存が許可されていません」というエラーメッセージが出て更新できない。(下図)
エラー画面

まぁ最後に追加するのでも良いのだが何故最後が良くて途中が駄目なのかを調べていて途中に挿入してもエラーしないオプションが見つかった。(下図)
オプション

ただMicrosoftのサポート情報を見るとこのオプションを解除するのは推奨されないそうだ。
http://support.microsoft.com/kb/956176/ja
ここを見ると[テーブルの再作成を必要とする変更を保存できないようにする] オプションを無効にするリスクが記載されている。読んでみたが自分の場合には関係なさそうだった。実際に挿入してみても特に問題は起きてないのでどうしても挿入したい場合はこれを使うしかないだろう。


posted by なっちゃん at 10:42| 静岡 ☀| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2012年02月20日

ユーザー 'sa' はログインできませんでした

SQL Server Express 2005 や 2008をインストールした環境で Management Studio から「SQL Server 認証」でユーザー名 'sa' でログインしようとして「ユーザー 'sa' はログインできませんでした。」「SQL Server の信頼関係接続に関連付けられていません」などとエラーした場合、
原因はセットアップ時に認証モードを「Windows認証」に選択したことにある。

混合モード(Windows認証とSQL Server認証)でないと'sa'ではログインできないのである。

変更するにはレジストリを修正する。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer
LoginModeが「」になっているのでこれを「」に変更する。

※逆に混合モードからWindows認証のみに変更するには2を1に変える。
posted by なっちゃん at 16:55| 静岡 ☀| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2012年01月25日

Window7のWindowsXPモードで Outlook Express を使うための覚書

事情があってWindows7でもOutlook Expressを使いたい。今まで使っていたWindowsXPのメールデータ、アドレス帳、メッセージルールも引き継ぎたいという場合があるだろう。
以下の作業を行うことである程度使える環境を構築することが可能である。

作業手順
■ 元PC (Windows XP)上での作業
※システムフォルダを参照するためフォルダオプションの「表示」から「全てのファイルとフォルダを表示する」を選択し、「保護されたオペレーティングシステムファイルを表示しない(推奨)」のチェックを外しておく。

1. OutlookExpressを開き、「ツール」メニューの「アカウント」から使用メールアカウントをエクスポート(拡張子iaf)、「ファイル」メニューの「エクスポート−アドレス帳」でCSV形式でエクスポート(全対象項目にチェック)

2. C:\Documents and Settings\(ログオンユーザ名)\Local Settings\Application Data\Identities\{・・・・・・(※1)・・・・・・}\Microsoft\Outlook Expressフォルダ内のデータを全バックアップ

3. regeditを起動し、
\HKEY_CURRENT_USER\Identities\{・・・・・・(※1)・・・・・・}\Software\Microsoft\Outlook Express\5.0\Roulesをエクスポート(拡張子regファイル)
※Roulesより上の部分からエクスポートするとインポート先でエラーが多発するのでRoulesだけにする。

■ 移行先PC (Windows7)のVirtual PC(XP Mode)上での作業
1. Outlook Expressを起動し、元PCの作業1でエクスポートしたアカウント情報ファイルを「ツール」メニューの「アカウント」からインポート、同じくエクスポートしたCSVファイルを「ファイル」メニューの「インポート−他のアドレス帳」を選択しインポート。

2. メールアカウントのプロパティから「詳細設定」を選択し、配信のサーバーにメッセージのコピーを置くにチェックしてから一回だけ送受信を行う。その後OutlookExpressを終了。
(※これを行うのは下記3でバックアップデータをコピーするフォルダを準備するためと、移行完了後に再びメールを受信できるようにするため)

3. C:\Documents and Settings\(ログオンユーザ名)\Local Settings\Application Data\Identities\{・・・・・・(※2)・・・・・・}\Microsoft\Outlook Expressフォルダを開き、元PCの作業2でバックアップした内容を上書きコピーする。

4. 元PCの作業3でエクスポートしたregファイルをメモ帳で開き、{・・・・・・(※1)・・・・・・}の部分を新しいOutlookExpressの{・・・・・・(※2)・・・・・・}の部分と置き換える。(間違えないように注意)

5. 上記regファイルをダブルクリックしてレジストリにインポートする

6. regeditを起動し、HKEY_CURRENT_USER\Software\Microsoft\Protected Storage System Providerのアクセス権で詳細設定を開き「子オブジェクトすべての・・・」にチェックを入れ「OK」をクリックし、直下のレジストリ項目「S-1-5-21-・・・・・・」を削除する。
  ※これはOutlook Expressのアカウントのパスワードが保存されない不具合を修正するもの。

7. Outlook Expressを開き、設定内容を確認し足りないところを修正する。

8. Outlook Expressのショートカットを全ユーザーのスタートメニューに配置する(C:\Documents and Settings\All Users\スタート メニュー)。
  ※これをすることでWindows7のスタートメニューに表示される。(下図)

Windows7のスタートメニューにOutlookExpressが

Windows7でOutlook Expressが起動(下図)

Windows7でOutlook Expressを使う
posted by なっちゃん at 18:07| 静岡 ☀| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2011年06月16日

VirtualPCからVMWareへの変換時の注意

MicrosoftのVirtual PCのVHDファイルをVMWareのVMDK形式に変換するコンバータ(フリーソフト)を使って変換させ、VMWare Playerから起動させたところ、マウスの動きがオカシイ。それと再起動やシャットダウンが出来ない。シャットダウンの表示のまま止まってしまうという不具合が発生した。ドライバを入れ替えたり、VMWare Toolsを入れても駄目だった。

困っていたところ、同僚からVirtualPCの追加機能が原因じゃないかというアドバイスを貰った。
そうだ!考えてみればVirtualPC用のマウス制御ツールがWMWare上で動作しているのも変な話なのだから、これだと思った。
早速コントロールパネルから「バーチャルマシン追加機能」をアンインストールしたところ、無事正常にマウスも動作し、シャットダウンも再起動も正常に戻った。

posted by なっちゃん at 19:56| 静岡 ☁| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2010年11月01日

infoseekの無料HPの終了

自作ソフトを公開しているinfoseek(楽天)の無料ホームページサービスが10月31日をもって終了するというメールが届いたのが10月20日だった。突然のしかも終了10日前に連絡してくる神経には呆れた。

そうは言っても終わるものは終わるので、とりあえず完全に消える「IIS-Weblog公式ページ」だけは即効で移行させた。移行先がCGI不可だったがこのサイトは最近ほとんど更新もしてなく、問い合わせもないので、この際単純に紹介のみのサイトにした。

肝心の「なっちゃんのオンラインソフトの部屋」は、広告非表示の有料オプションを使っているのでその契約期限が切れる来年2月までは自動で有料サイトに移行してくれると記載されていた。URLは変わるがリダイレクトされるので安心して放っておいたところ、今日になってまだ作業中ということで調子が良くない。リダイレクトされるときもあれば、されないときもある。
FTPでファイルを更新させようと思っても、パスワードが違っているといわれる。説明ではパスワードは変更されないとあったのに。

infoseekの案内ページでは今日一杯は移行作業で使えないらしいと掲載されていた。

「IIS-WebLog公式ページ」の新URL:http://iisweblog.client.jp/

「なっちゃんのオンラインソフトの部屋」の暫定URL:http://onegland-hp.web.infoseek.co.jp/

11月28日に晴れて正式にサイト移行が完了した。ここ「ロリポップ」は有料だが幾つかある有料サイトの中で機能面でも価格面でも信頼性でも申し分無かったので決めた。
「なっちゃんのオンラインソフトの部屋」の新URL:http://onegland.main.jp/


posted by なっちゃん at 16:50| 静岡 ☀| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2007年09月06日

Excelで行と列を入れ替えるには?

1.対象データを選択して[コピー]
2.別のシートを開く
3.[編集]→[形式を選択して貼り付け]→[行列を入れ替える]にチェックして[OK]

これはとても便利!出来てみると感動する!(^^)

posted by なっちゃん at 17:57| 静岡 ☁| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2007年04月19日

Windows Vistaの恩恵

実に意外だった。しかしとても嬉しい出来事だった。

これまでどうやってもDVDの映像をキャプチャーすることができなかった。
DirectXを使ってキャプチャーする方法をずっと考えてサンプルも作ってきたが、土壇場になってMicrosoftからその方法では無理だと回答がありほとんど諦めかけていたところだった。

Windows VistaでDVDを再生すると、何の苦労も無くこれまでのキャプチャー方式でキャプチャーできてしまうのである。

様々な改良で恩恵どころか不都合な対応ばかりさせられてきたWindows Vistaであるが、それまでの不満を一気に解消してくれた出来事である。

自作ScreenCutterのDVDキャプチャー対応はこれにて終了!

Windows Media PlayerでDVDを再生

PowerDVDで再生

重要な補足:
Vistaで何故DVD映像のキャプチャーが可能になったのか。ちょっと調べてみたら意外な事実が判明した。
それによると、キャプチャー可能なのはAeroが有効になっている場合らしい。Windows Vista のAeroとWindowsXPまで広く利用されているビデオオーバレイが両立できないため、オーバーレイ方式を使うアプリでは強制的にBasicモードになってしまうらしい。
ということはVistaのBasic版にはAeroが無いのでキャプチャーは不可能ということになる。

ところが、実際に試してみるとVista Basic Editionでもちゃんとキャプチャーできた。
Aeroが有効かどうかは全く関係ない。


つまり、Vistaでは標準でオーバーレイを使わなくなったということだろう。
posted by なっちゃん at 18:56| 静岡 ☔| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2006年06月30日

ScreenCutter:ブラウザ(IE)全画面キャプチャーの実装に至るまで

今週はじめ、ScreenCutterの7ヶ月振りとなるバージョンアップ(Ver.1.5.0)を行った。そして、念願だった全画面キャプチャーの機能を追加した。

ScreenCutterサンプル

ちょうど2年程前にVectorにScreenCutterが紹介されたとき、作者からのコメントに今後のアップデート予定として次の4項目を書いた。

1.マルチクリップボード
2.複数のキャプチャ画像の合成と結合
3.任意の形状の覗き窓作成
4.対象アプリを自動スクロールさせて、隠れている個所を含めてのキャプチャ

このうち、3番目の「任意の形状の覗き窓」は9ヵ月後にVer.1.3.5(「拡張枠機能」)として公開できた。
今回は4番目の内容でほぼ2年かかったことになる。ただ、当時はブラウザ以外のアプリの全画面まで想定していたが、これはちょっと手に負えそうも無い。ブラウザが一番需要がありそうだしこれで良しとしたい(^^;

2年もかかったというのは、それだけ面倒で難しかったといえるが、これまで試行錯誤し続けて一向に目処が立たなかったのに、先週になって思わぬ幸運で実現に漕ぎ着けることができた。
思わぬ幸運とは・・・内緒だが、これも今までの努力の賜物だと自負している(^^;
棚からぼた餅では決して無い。諦めずにいつも頭の隅で気に掛けていたからこそ完成できたのだと思っている。

さて、2年前の構想のうち1、2番はまだ完成していない。
1.「マルチクリップボード」
クップボードは通常一つなので最新ものしか貼り付けられないが、これを複数用意して任意のデータを取り出せるようにするもの。
2.「複数のキャプチャ画像の合成と結合」
マルチクリップボードに貯めたデータを合成(ブレンド)したり結合(連結)したりする編集機能である。

さて、完成するのはいつの日のことだろうか・・・。
posted by なっちゃん at 12:55| 静岡 🌁| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2006年03月18日

ツール(ソフト)のアイデアは些細なことから

良いツールというのは使って便利なものである。そのアイデアは至るところにある。
ところが、うっかり見過ごすことが多いのも事実である。
つい最近も何故このアイデアを見過ごしたのだろうと思ったことがある。
昨年末からVPNを構築するためにルーターの設定を行っているのだが、プロバイダ側から渡されたIPアドレス・サブネットマスク等の情報を設定するのにビット数表記のサブネットを10進数表記に置き換える必要があった。その作業をするのに、紙に2進数を書いて手計算した。
内心面倒だなぁと思っていたのに、これをツール化することを全く考えなかった。(単純な計算なのでプログラムするには難しくないものだ)
最近買った日経BP「絶対わかる ネットワークテクニック超入門」にはこの手のツールが紹介されており、それを見て初めて気が付いたのだ。
何故見過ごしたのかと思う。最近はそうでもないが計算に強かったり、手先が器用だったりすると多少のことは自力でやってしまうことが多いものだが、それを苦手にする人は大勢いるしツールにすればきっと便利に思ってくれるはずだ。
こんな調子で何気なく面倒だなぁと思っているところにツールの種(アイデア)はいっぱいあるはずなのである。

絶対わかる!ネットワークテクニック超入門
日経NETWORK

絶対わかる!ネットワークテクニック超入門
絶対わかる!新・ネットワークセキュリティ超入門 絶対わかる!ルーター&スイッチ超入門 絶対わかる!新・ネットワーク超入門 絶対わかる!Windowsネット超入門 絶対わかる!ネットワークトラブル解決超入門
by G-Tools
posted by なっちゃん at 13:51| 静岡 ☁| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2006年01月23日

業務用システム設計の辛さ

オンラインソフトの設計はとても楽しいのだが、仕事として取り組むシステムの設計は毎度のことながらとても嫌な・・・というか苦手・・・・というか面倒でウンザリしてしまう。
今取り組んでいるシステムは販売管理システムなのだが、もとからそういう業務には全く関心のない自分なので興味が全く沸かないところに、膨大な処理が待ち構えていると頭の中がしばらく真っ白になって、何も浮かんでこない状態なのである。
時間は過ぎる一方で、仕様設計はほとんど出来ていない。
開発中止になったらどれだけ楽だろう(^^;と思わずにはいられない。が、そんなことは99%有り得ない。
こういう状態の時には集中力が必要なのだが、何かと余計な発想(オンライソフトの新作)ばかりが沸いてきて仕事にならない。お尻に火が点かないとその気にならない困った性分なので、こうして時間ばかりが過ぎているうちに段々悲壮モードになって嫌でもやる時まで、じっと我慢するしかない・・・と思うものである。
これも「まだ少しは余裕がある」という幻想の上に成り立っているのだ。
posted by なっちゃん at 18:12| 静岡 ☀| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2005年12月20日

「なっちゃんのプログラミングTips」

この度「なっちゃんのプログラミングTips」というブログを公開しました。
現在は自分自身の覚書という感じで、VB6で行っていた処理がVB.NETではどうなるのかをVB6とVB.NETのソースを対比して紹介しています。
posted by なっちゃん at 20:14| 静岡 ☁| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2005年09月20日

オブジェクト指向にならない頭

Javaは完全オブジェト指向プログラミング言語であるが、VisualBasicはそうではない。オブジェクトはあってもオブジェクト指向ではなく、基本はコード指向プログラミング言語である。
長年染み付いたプログラミングスタイルは拭い難く、Javaで開発するときに面倒だなぁと思うのはコード中心で進められないことへの苛立ちである。
コードを駆使すれば楽に出来ると思わせることがある。マスター登録のように複数の異なるテーブルを扱う処理の場合、オブジェクト指向ではテーブルの数だけオブジェクト化するが、コード指向では、与えるテーブルを変えるだけでコードは1本で済む。
オブジェクト指向は慣れるまでが大変だよ。
posted by なっちゃん at 19:49| 静岡 ☁| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2005年09月14日

まだまだ使える Visual Basic 6.0

ぼちぼちVisualStudio2005が正式リリースされるが、そんなに頻繁にバージョンアップして誰が使いこなせるの?まだ.NET2003だって満足に使っていないのにね。
オンラインソフトの方もいまだにVB6.0でバリバリ作っているし。逆にVB6が完結してこれ以上のアップデートが無いだけ安心して使えるくらいだ。
で、ここで私がよく使っているVB6の参考書を紹介します。過去にJavaの参考書を紹介したのでその書式にならって。

Win32 APIを使いこなそう!Visual Basic Tips1000+
開発への貢献度・・・・★★★★★

とても全ては使えないほど、様々なAPIの紹介とサンプルが掲載されている。

この機能はどうしたらいいかと思い立ったらまずここで調べる、という使い方をしている。
ただ最近は、ここでも判らなくて海外のサイトを調べることが多くなった。確かにハードウェアまでいじるにはVBは力不足かも知れない。
Visual Basic6.0 300の技
開発への貢献度・・・・★★★

内容的に初心者向きで最近はほとんど見ることは無いが、玉に見るとわざわざWin32APIでやらなくても、標準機能で十分実現できているのを発見したりする。
Visual Basic6.0 300の技:ネットワーク+データベース編
開発への貢献度・・・・★★★★

ネットワークではDOSコマンドの使い方が意外に重宝している。

データベースは別の専門書を使うのであまり参考にしていない。
Visual Basic6.0 300の技:API+COM編
開発への貢献度・・・・★★★★★

先の「Tips1000+」よりも実用的なサンプルが多いので、一番良く参考にしている。

ちなみに、自作「ScreenCutter」の覗き窓は、この本の2番目のサンプルがヒントになって生まれたものだ。
Visual Basic6.0の応用
開発への貢献度・・・・★★★★

先の「300の技」3部作とは一味違った、しかもかなり高度で貴重なサンプルがある。

特に有益だったのが印刷関係の様々なテクニックである。自作「ScreenCutter」の印刷機能はこれによるところが大きい。
Visual Basic逆引き大全 500の極意
開発への貢献度・・・・★★★★★

これも定番でおなじみの参考書であらゆるジャンルの開発に大いに参考にしている。

他に無い資料としては、ソフトのセットアップに欠かせないディストリビューションウィザードに関する記事とサンプルである。
Visual Basic6.0 初級プログラミング入門(下)

開発への貢献度・・・・★★

普段めったに使わないActiveXコントロールを使うときのリファレンスとして使用している。
posted by なっちゃん at 17:26| 静岡 ☁| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2005年08月14日

JavaによるWebアプリケーション開発:参考書リストとツール

これまでVB中心で開発してきた私がJavaを使ったWebアプリを開発することになった。
Javaについてはほとんど無知の状態で取り掛かり、ほぼ2ヶ月で一応稼動させるところまでこぎつけた。
その際に参考にした書籍や開発ツールを紹介し私なりの評価をしてみたい。

なお、開発環境は以下の通り
---------------------------------------
データベース:Oracle10g(10.1.2)
アプリケーションサーバ:OracleApplicationServer10g(10.0.1.2)J2EE版
開発用アプリケーションサーバ:Tomcat4.1
開発用ツール:Cpad for Java(フリーのエディタ)NECの講習で使ったもの。
帳票作成ツール:ReportsStation2.0 for Java
---------------------------------------
今日からつかえる JSP&サーブレット サンプル集 JSP2.0+サーブレット2.4対応版
開発への貢献度・・・・★★★

本当はもっと貢献度が上がるはずだったが、OracleApplicationSever10gがJSP2.0/Servlet2.4に未対応だったため、旧版(下に紹介)を利用することになったことで星3つ。内容的は旧版の焼き直しでは無く、全く新しいアプローチ(新仕様に対応)で刷新されているところが凄いと思う。
私がこの著者(山田祥寛氏)が只者でないことを知った作品でもある。
今日からつかえるJSP&サーブレットサンプル集 応用編
開発への貢献度・・・・★★★★★

OracleApplicationServer10gがJSP1.2/Servlet2.3というJ2EE1.3仕様であることが開発途中で知り、新版のサンプルが利用できないため購入した。
特に第3章のログインから始まり登録・検索・管理・ログアウトの流れの基本が大いに参考になった。そのまま利用させてもらった箇所もいっぱいある。
無駄なコーディングをするのではなく、部品化し再利用可能な形でまとめる工夫が大いに為になった。
ちなみに、私が一番最初にやったことは、この本のサンプルをMySQLからOracle仕様に変更して動作させることだった。
サーブレット&JSP逆引き大全 500の極意
開発への貢献度・・・・★★★★

山田氏の著作はシステム開発の全体像を数々のサンプルで教えてくれた。が、実際のコーディング現場では細々した処理が多々ある。
それにはその処理だけの参考資料が必要だ。それを提供してくれるのがこの本である。秀和システムの「逆引き大全」シリーズはこういう場合にもっとも利用価値が高い書籍である。
明解JSP&Servletプログラミング入門
開発への貢献度・・・・★★★

NECのJava講習会を受講した後、復習用のテキストに買った。本の内容が講習の内容に近かったからでもある。
講習会はTomcat5だったが、この本はTomcat4.1を使っている。
本番用のOracleApplicationServer10gに移行する前にまず同じJ2EE1.3仕様のTomcat4.1で確認するには、この本の内容は参考になった。
最新Java逆引き大全 550の極意
開発への貢献度・・・・★★★

JSP/サーブレットといってもJava言語だからコーディング上の疑問・エラー対応に活用した。
特に文字列の処理(変換・抽出・検索)や日付型データの処理(日付の書式)、テキスト出力方法等。
それにしても、VBで使い慣れた変数の型変換(文字列を数値、数値を文字列、日付型文字列と日付型変数への相互変換)には、とても苦労させられた。なんでこんなことが簡単に出来ないのかとJavaを呪った(^^#
実践JDBC―そのまま使えるサンプルコード100選
開発への貢献度・・・・★★★★

Javaでデータベースを扱うときにJDBCは必須である。ところが参考書に載っているデータベースの扱いはあまりに初歩的というかワンパターンで、実際のシステムでは使い勝手が悪いものばかりである。
従来VBで行ってきた処理を模倣しようとすると参考になる資料がどこにも載っていない。
そうしたときに見つけたJDBC操作のバイブル的な参考書がこの本である。
JSP&サーブレットスーパーリファレンス―JSP2.0+サーブレット2.4完全対応
開発への貢献度・・・・★★

山田氏の著作で、内容はそれなり良い。
貢献度が低いのは使い勝手の悪さのためである。
一番の問題は初心者に優しい索引になっていないことだ。索引が階層になっていて、ダイレクトに知りたいメソッド・プロパティ等が見つけられない。
初心者はそのメソッドやプロパティがどのクラス、ライブラリ、インターフェースにあるのか知らないのだ。
索引さえ改善されればもっと活用できると思う。
ホームページ作りにそのまま使えるJavaScript例文活用辞典
開発への貢献度・・・・★★★★

JAVAだけでなく全てのWebアプリはサーバーサイドの処理と同時にクライアント(ブラウザ)サイドの処理も大変重要になる。そこで活躍するのがJavaScriptであるが、この本のサンプルはそうした処理の際に直面する疑問に具体例で回答を与えてくれる。特にフォーム内容の取得やチェックに豊富なサンプルで説明があるので即利用できる。
改訂第3版 Java Scriptポケットリファレンス
開発への貢献度・・・・★★★

上記JavaScirpt例文活用辞典の著者が書いたリファレンスである。
イベントやプロパティの確認に利用した。
上の辞典とこれがあればJavaScriptは何も怖くないといえる。
Oracle逆引き大全550の極意―プログラミング編
開発への貢献度・・・・★★★

JDBCとはいっても、扱うデータベースによって提供される機能や処理手順は異なるからOracle用JDBCの扱いに参考にした。
改訂 新Java言語入門 ビギナー編
開発への貢献度・・・・★★★★

Javaを勉強するために最初に買った参考書がこれである。著者の本は以前にもC言語やC++言語の勉強のために買ったことがあるが、これが一番利用した本かもしれない。
開発中にJavaの基本構文・制御文・演算子を忘れてしまうことがたびたびあり、その都度開いて確認した。



これらの参考書の中では、山田祥寛氏[関連サイト:Wings]の著作が大変参考になった。
これまで様々な教則本・参考書・サンプル集をみてきたが、この著者のものは分りやすさ・サンプルの実用性・ロジックのスマートさと三拍子そろった高品位の優れもので感動した。読者のレベルもそれ相当に要求されるしシステムに取り込むにはそれなりに苦労させられたが、質の良いサンプルを使いこなせれば自分の質も向上するという良い見本になった。


帳票作成にはJava版ツールを幾つか検討したが、サンプル帳票の出来栄えを見て「ReportsStation」を使うことにした。これはVBでもよく利用したCrystalReportsのようにフォームデザインを別に用意して、これとデータをマージさせて帳票を作成するものである。Windows(.NET)版とJava版があるが、フォームはどちらでも利用できるので両方を手がけるものにとっては効率的な開発が可能だ。
フォームを編集するエディタはCrystalReportsより使い勝手がよく、レイヤーがあるので、作業単位ごとにレイヤーを用意し、罫線やラベルなどの固定データに邪魔されること無くデザインできる点が良い。
唯一の欠点といえば、ラベル印刷のように、固定フォーマットを一枚の用紙内部に複数印刷させる機能が無いことだ。この場合は一枚の用紙に配置するデータを1レコードとして用意する必要がある。つまりワークデータ1レコード分にオリジナルデータ数レコード分を詰め込むことになる。JDBCから読み込みも可能なようだが、csvにフォーマット済みデータを出力してそれをフォームとマージする方法をとっている。これはCDに付属のサンプルを利用して手っ取り早くやろうとした結果であるが十分実用に耐える。


開発ツールは当初Oracle JDeveloper10gを使うつもりでいた。だがこれは諦めた。どうやってもサンプルを動かすことが出来なかった。問題は、パスの問題である。実行時のパスをハードコーティング(ソースに直接記述)せざるを得ないので、どうしてもエラーになってしまう。
開発ツールでは、デバッグのために特殊なパスを利用して動作させているためどうしてもパス(URL)が合わないのである。そこでフリーのエディタ(NECの講習会で使用したCPad for Java2 SDK)でコーディングし、コンパイルしてTomcat4.1でテストし、動作確認後warファイルに変換しOracleApplicationServer10gにデプロイするという流れで開発を進めた。
デプロイは本当に簡単で、拍子抜けするほどだった。Windowsアプリの配布と比べると遥かに楽である。このあたりはJavaの仕様の厳格さを感じる。
Tomcat4.1はサービスとして実行させないで、コンソール画面を表示させる起動方法をとっている。これの良いところはSystem.out.println()を使いデバッグが行えることだ。Java専用開発ツールを使わない環境ではこれが大変重宝した。
posted by なっちゃん at 23:41| 静岡 ☁| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2005年06月09日

JavaによるWebアプリ開発に向けた勉強

先週と今週の月・火・水の計6日間、Javaの講習を受けてきた。約2年前VB.NETとASP.NETの講習も受けたことのあるNECのEラーニングで「Javaプログラミング基礎」と「JavaによるWebアプリケーション開発−サーブレット・JSP」の2コースを受講した。講習の直前に「新Java言語入門−ビギナー編」を半分程読んでの参加だったが、予想以上に分かり易く短期間で最低限の知識とノウハウを習得することができたと思う。講習会の良い所は何と言っても「自習」じゃないところ(^^)独りで本だけで勉強するのは実に大変である。初心者がプログラミングを勉強して挫折するのは、些細な疑問点を解決する手段がないため、勘違いしてることさえ気づかずに理解しようとしてあがき、袋小路に入ってしまうからである。講習会では疑問があればその都度質問できるし、テキスト(教科書)には書かれないヒントや誤りやすい問題点を教えてくれる良さがある。NECのオリジナルテキストはなかなか上手く出来ていると思う。市販の入門書にはない実践的な例題・実習が載っており開発の現場で何度も確認するほどである。
「Javaプログラミング基礎」では、Javaの整然とした言語体系に驚いた。ほとんどVBしか知らない私にはある意味、Javaの方が単純のように思える。仕組みが判ると連想で他が判ってくる、そういう感じがする。VBはたくさん覚えた方が勝ちのようなところがあって、こういうやり方もある、でもこういうやり方もあるし、また別の方法もある・・・・・と延々と続く感じ。
オブジェクト指向言語というものもこの講習でようやく(^^;判ってきた。実習を通してオブジェクトを扱うことで理解が深まった。ちなみに、MicrosoftのVisualStudio.NETはJavaを真似て作られたのが良く判る。
「JavaによるWebアプリケーション開発−サーブレット・JSP」では、ちょうど一週間前の講習で学習した内容を土台にしてWebアプリを作るものになっているので、実にタイミング良くスケジュールされていると感心した。サーブレットは基本的にJavaアプリである。JSP(Java Sever Pages)は見た目が扱いなれたASP(Active Server Pages)とほとんど同じだが、サーブレットとの連携がまだ消化不足(Java自体に慣れないせいもある)。
.NETのWebアプリ開発のASP.NETは、以前にも書いたが起動が遅すぎる。その点Java(サーブレット・JSP)の方がサンプルだけの体感ではあるが早い。

新しい言語を覚えるのは楽しいものだとつくづく思う(^^)v
あ、余談ではあるがこの講習の中日(7日)にヘイリーのコンサートに行った。
最初は4日の土曜に行く予定だったが講習会がちょうど重なったので旅費がいらなくなり「ラッキー!!(^o^)v」とばかり大いに講習会を楽しんできたのである。
posted by なっちゃん at 00:37| 静岡 ☁| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2005年04月13日

Windowsアプリ開発のVB.NETとWeb開発のVB.NET(ASP.NET)

開発ツール「Microsoft Visual Studio .NET」ではVB.NETを使っている。最初に業務で使ったのはWebアプリ開発用のASP.NETだった。ASP.NETといっても言語タイプはVB.NETだから全く別物というわけではない。しかし、Windowsアプリ用のVB.NETは、ASP.NET上のVB.NETとは比べ物にならないくらい手間取る。VB6までの仕様と大きく異なるせいだが、ASP.NETの開発ではそれが目立たない(Webではシステムリソースを直接扱うプログラミングが不要だからとも言える)ため、それほど苦労は無かった。
VB.NETの入門書を読むと実に高度な処理が簡単に行えることが書かれている。実際VB6では苦労した箇所が簡単になったものが多々ある。しかし、従来のアプリケーションで必要としていた極普通の処理が、一体どうやったら出来るのか途方に暮れることがある。
最初の問題は、プログラムの環境変数とも呼べる状態変数の保存先としてよく利用していたiniファイルの読み書きだった。.NETになってからXMLでの状態保存が推奨されるようだが、やってみると初回まだ変数が存在しない段階では読込みできないとか、変数がバージョンアップ等で追加されたりすると今までのが使えないとか・・・いろいろ不便なことが分ってきた。そこで従来のWin32APIを使った方法でやろうとするが、APIの利用方法がどうもこれまでと異なるらしい、VB6のLong型は.NETではInteger型になるし、ユーザー定義型変数を引数にする場合は、マーシャリングとかを使う必要があるとかなんとか(^^#
あちこち探したがINIファイルの読み書きをVB.NETで実現する方法がなかなか見つからなかった。
ようやく、最近になってMicrosoftが「VB マイグレーション Tips」の中で「INI ファイルと構成ファイルの読み書き」http://www.microsoft.com/japan/msdn/vbasic/migration/tips/INIfile.aspx のサンプルを掲載して解決した次第である。サンプルを見ると以外に簡単な変更で済むことが判ったので、仕様さえ充分理解できるようになれば.NETは強力な開発ツールになるはずだ。
そこまで行くにはまだまだ時間が掛かるが・・・。
posted by なっちゃん at 10:26| 静岡 ☁| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2005年03月07日

舌の根の乾かぬうちに

一昨日業務アプリのWeb化の問題について書いたが、Web化でも充分やれそうな可能性を見つけた。
Oracleのサイトでスマートクライアントのサンプルを見つけたのである。
http://otn.oracle.co.jp/easy/dotnet/index.html
これによると、WindowsアプリのリッチクライアントとWebアプリのシンクライアントのそれぞれの良さを併せ持ち、それぞれの弱点を補う・・・まるで夢のような(?)仕組みらしい。
確かに、問題になった個所はカバーできそうな気配である。サンプルもあることだし、試してみようと思う。
posted by なっちゃん at 22:56| 静岡 ☀| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2005年03月05日

業務アプリのWeb化の問題

運用から5年が過ぎた業務用アプリケーションを新たにWebアプリケーションとして再構築することになり、客先との打合せが6回目になったころ、思わぬ問題が持ち上がった。よくよく考えれば当然の話だと思ったが、実際の担当者の作業の流れに合せて検討するところまで話が進んでハタと気が付いた次第である。これまでWebアプリの便利さばかりに注目していたが、WindowsアプリもWebアプリも要求されることに違いはない。むしろ、汎用のブラウザを使うWebアプリは操作性に多大な問題が起きる。今まで作ったWebアプリでは伝票を多量に入力するなんてことは無かった。オペレータは画面なんか見もせず、ただひたすら伝票を見ながらテンキーで数字を入力する。Enterキーで次項目へ移動したりカーソルキーで上下左右にフィールドを移動する。これをブラウザ上で実行させるにはJavaScriptを駆使しないと無理だ。一般的にブラウザではEnterキーは送信ボタン(submit)押し下げの意味になる。入力フィールド移動にはTABキーを使う。本来のキーを無効にさせてWindowsアプリの操作性を再現させないと入力スピードが落ち、業務に支障を来たす。いくつかサンプルを作ったりしてみたが、余計なコーディングが増える一方になる。
 で、考えた。やはりWindowsアプリにしよう・・・と(^^;
Webアプリは参照したり、印刷したりと多量の入力を伴わないものだけにして。
posted by なっちゃん at 16:17| 静岡 ☁| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2004年12月06日

.NETに異変

今月1日東京ビックサイトでNECの主催する「C&Cユーザフォーラム &iEXPO2004」に同僚と行って来た。過去3回とも来ているが今回は規模が若干縮小された感じがする。余計なことだが各メーカーの粗品やくじの商品が貧弱になった(^^;
(これも余計なことだが過去4回の参加で初めてクジに当たりノートパソコンや周辺機器を収納できるショルダーバックを貰った:Oracleブース)

全体を一時間ほど見て回った後まだ帰りの時間まで4時間もあることに気づき仕方なくまたブラブラしていたら、Microsoftのオープンセミナーが始まるところで「Visual Studio 2005」のベータ版DVD-ROMを付録にした雑誌を無料で配布していた。さっそく頂戴して40分ほどのセミナーを聞いた。ところがどんな内容だったか今思い出しても何も思い出せない。むしろ、セミナー後、休憩場所(晴天で暖かかったから外のベンチ)でタダでもらった雑誌を読んで知ったことが印象に残った。

それによると今度の開発環境であるVisual Studio 2005(.NETが抜けていることに注目)ではVisualBasic2005がかなりVB6に近づいてきたということである。VB6からVB.NETへの移行は敷居が高すぎたのだろう、VB6がいまだに現役でバリバリ使われていることでもわかる。詳細は省くが、.NETへの移行がMicrosoftが思ったほど進まないことで従来のVB6までの使い勝手の良さをMicrosoftも再認識してこういうことになったのだろう。
これは歓迎すべきことだと思う。いくら開発言語の仕様の美しさ・精巧さを誇ったところでVisualBasicユーザはそんなことに関心は持たない。むしろ、どれだけ楽して作れるか、早くテストできるかの方が大事だからだ。難しいことは表に出さない、出さなくて済むようにするのがプロじゃないか。
posted by なっちゃん at 00:06| 静岡 ☀| ソフトウェア | このブログの読者になる | 更新情報をチェックする

2004年11月02日

SQLServerで文字列フィールドから指定バイト数取得する方法

仕事で上記の要件が必要となり、SQL関連のリファレンス本を調べたら何とSQLServerでは文字数を数える関数はあるがバイト数を数える関数が存在しないことを知った。OracleやAccess(Jet)にはあるのにSQLServerには無いんだと!仕方なくよく参考にするサイトを調べてみたが過去ログにもそのような関連記事は見つからなかった。みんな使わないのかなぁ・・・と思いつつ、例によってGoogleで調べてようやく見つかった。何とも見事に、スマートな方法で実現していたのでここに覚書という意味で(仕事中ではあるが(^^;)書いておく。

注:文字列フィールドを 「moji」=VARCHAR(30)とする。

1.バイト数を取得
 DATALENGTH(CONVERT(VARCHAR(30), moji))

2.左から2バイト取得(LEFT()関数もどき)
 CONVERT(VARCHAR(2), moji)

3.最後から4バイト取得(RIGHT()関数もどき)
 REVERSE(CONVERT(VARCHAR(4), REVERSE(moji)))
posted by なっちゃん at 15:15| 静岡 ☁| ソフトウェア | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。