趣味のプログラム工房

Coldfusion

Coldfusion9の延命 windows2016、2019など

Coldfusion9は最新のIISには対応していません。
※Coldfusion10については、
c:/coldfusion10/cfusion/bin/connectors/IIS_Connector.bat
のバッチで手動でいけるらしい


なので、最新のWindowsOSで使う場合は、Coldfusion自体をバージョンアップするのが、通常の方法です。
が、諸事情で、古いColdfusionをそのまま使いたい場合があると思います。

何とか延命する方法ですが、、、一つの解決策として、IISでの運用をあきらめる!
Coldfusion9が最新のOSで使えないのはインストーラーが対応していないから。
(特にconnector installerが使えない。IISとCFがつながらない)

ですが、ColdfusionをTomcatにデプロイすることで、あたしいOSでも使えるようになります!
が、、、Cookieの扱いとか、若干違って調整が必要になります。

まあ、最新のOSでCF9をつかうなんていうのは最終手段です。

2020年09月22日


ColdFusion cfgridによる更新でエラー

Coldfusion 2018にてcfgridのhtmlもしくは、xmlを使ったときの更新がエラーになる現象を確認。

完全にバグだと思われます。

coldfusion2016でも同じようなバグあり、パッチで解消した、、、という情報もありましたが少なくても2018では更新できません。(最新のパッチを当てても)


原因はハッキリしており、
何故か、POSTに同じパラメータが2つ入るためです。

cfgridのnameをhogehogeとした場合、
更新ボタンを押したとき、次画面に送られる変数は、
hogehoge=null
hogehoge=cfgridの中身
の2つが送られます。

でエラー。


対処方法は一つ。
onsubmitのjavascriptで1つ目の空の変数(hogehoge)を削除して、
同名の変数を1つだけ(hogehoge=cfgridの中身)を次画面へ送るようにします。



2020年01月11日


ODBC経由 Excelの編集でエラー

ODBCでちょっと特殊なExcelの編集をしようとしたところ、以下のエラーが発生
「このフィールドはリンクされたExcelワークシートにあるため、編集できません。リンクされたExcelワークシートのデータを編集する機能は、Access の今回のリリースでは無効になっています。」

まず、最新のWindowsOSにはExcelODBCドライバが付属していないんですよね。。。
そのため、個別にインストールする必要があるのですが、そのドライバでは上記機能が使えないようになっています。

どうも、やろうとしていた機能が使えたのは、
windows server 2008の世代に付属していたドライバ(32bit版で確認)のようです。
それより新しいものだと、たぶん利用不可。

上記エラーに遭遇したら諦めてください、、、が回答になります。


補足
上記エラーは、ODBCで定義されたExcelブックAを経由してExcelブックBを編集する場合に発生します。
ちょっと何言ってるかわからないかもですが、そういうことができたのです。


2019年11月13日


cfspreadsheet の挙動がおかしい Sheet指定無効?

Coldfusion(ver9)でcfspreadsheetタグを利用してExcelファイルの編集をと考えているのですが、マニュアル通りの挙動にならない。

複数のシートのあるブック(ファイル)で、複数シートの編集をしたいのですが、マニュアルによると

◾複数のシートを持つ Excel ファイルを読み取るには、read オプションで複数の cfspreadsheet タグを使用し、シートごとに異なる name および sheet または sheetname 属性を指定します。
◾単一ファイルに複数のシートを書き込むには、write アクションを使用してファイルを作成し、最初のシートを保存します。update アクションを使用して、各追加シートを追加します。

http://help.adobe.com/ja_JP/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec17cba-7f87.html


とあるのですが、cfspreadsheetのreadオプションではシートごとに読み込むことはできず、すべてのシートが読み込まれます。
また、writeオプションでも、シート指定しての書き込みができないため、「最初のシートを保存」ということもできません。
そのため、updateオプションを使用したとき、シートが既に存在しているとエラーとなってしまいます。(updateは更新というより、シートの追加)

いろいろと検証した限りでは、cfspreadsheetのsheetオプション、sheetnameオプションは、アクティブシートを指定するだけの代物のようです。


というわけで、実際に複数シートを扱う際には、
cfspreadsheetで全シートを読込、
cfscriptのSpreadsheetSetActiveSheet関数で、シートを切り替えながら編集するのが正解みたい。
で、書き出す時も、cfspreadsheetのwriteオプションで一度に書き込み。

まあ、全部cfscriptのSpreadsheetRead関数とかで操作でいいんですが。

なんか釈然としないが、とりあえず解決!

2013年05月26日


Coldfusion9.0.2 うぜー!!

Coldfusion9.0.2ですが、9.0.0から変わりすぎじゃないですか??

マイナーバージョンアップとは思えないほどの互換性orz

勘弁してくれ。。。。


まず、一番の致命的なのは、9.0.0で使えていた
COMオブジェクト(cfobjectのtype=com)が使用できない。

続いて、「HTTPレスポンスヘッダに改行コードが含まれている」と自動的に削除される。。。ohhh

これにより、クッキーに改行コード付きの値を格納できなくて困りました。


改行コードについては、仕様だし、セキュリティ上必要だから許せるが、comについては完全なバグだろ?

2013年04月28日