役に立ちそうもないTips移転版

俺得なTipsを書き連ねるだけのブログ。

2006-01-01から1年間の記事一覧

パスワード付きMDB/MDEをADOで開く

ConnectionのProperties("Jet OLEDB:Database Password")にパスワードを設定すれば開ける。

DB2の外部ストアドプロシージャをJavaでこさえた場合

所定の場所にclassファイルを配置したら、 CALL SQLJ.REFRESH_CLASSES() を発行すること。(classファイルを新しいのと置き換えた場合も)

DB2のインポートをコントロールセンター経由で行なう場合

コントロールセンターは泣く子も黙るJavaアプリだが、インポートにはJavaは関与しないらしい(CLPでインポートするのと変わりなし)。 IBM943とMS932とUnicodeで文字ががちゃがちゃになる辺り(JIS 13区とか)を含んだデータでやってみれば分かる。 (はて、コン…

AccessからExcelへコピペしたセルの書式

Accessのテーブル(クエリでもいいけど)をデータシートビューで開いてコピー&Excelへペーストってするとそのまんま貼り付けられる(日付値などはExcelの方が許容範囲狭いのでたまに化けるが orz )。 駄菓子菓子、このペーストしたセル、メニューからは書式を一…

cmd.exeの環境変数展開

いわゆる「遅延環境変数展開」は レジストリで恒久設定 cmd.exeの起動引数で設定 しかないかと思ってたら、setlocalでも設定できる。 (詳しくは setlocal /? で) バッチの中で「遅延環境変数展開」を有効にしたいときに使える。

Recordsetの隠しプロパティ

Access VBAだと、「rs![列名]」とか書けるわけだが、標準のVB(A)文法ではない(はず)。で、これがどうコンパイルされているのかというと、putの場合 「rs.Collect("列名")」 と読み替えているそうだ。一方getだと 「rs.Fields("列名").Value」 と読み替えてい…

いまさらながらADO

.NETじゃないADOの話なのでほんとに今更なのだがAccessとか使ってる以上はまだまだお付き合いするだろうということで。

サーバ待ち受けTCP/IPポート番号を突き止める

1. 「pctt /r」でホスト名とIPアドレスを特定。(これはついで) 2. CLPで、「GET DBM CFG」として、設定値SVCENAMEを得る。 3. etc/services(Windowsなら%SYSTEMROOT%System32\以下。Unicesならry)からSVCENAMEを探す。

今現在ぶら下がってるクライアント一覧

LIST APPLICATIONS FOR DB データベース名 SHOW DETAIL どうも接続してるだけでトランザクションログを食いつぶすらしいので注意。

テーブルをTRUNCATEする

……元ネタはあったんだが失念orz とりあえず、V.8.2以上なら ALTER TABLE テーブル名 ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE COMMIT -- これ重要 でTRUNCATE相当。

リンクするライブラリファイルとか

は、JDKがVC++用? に提供している.libがそのまま使える。 少なくともこのバージョンではわざわざlib〜.aをこさえる必要はなさげ。

stdcallの呪縛

gccはstdcallな関数の頭に_を付けてくれたりしないが、どうもJDKのほうでは_がなきゃだめ、らしいので、defファイルで _関数名@引数サイズ = 関数名@引数サイズ とやってエクスポート名のところでごにょごにょせんといかんらしき。 あと「@引数サイズ」も必…

MingwでJNIしたいんですが何か。

MingwでJNI dllをこさえる話というのは巷にわりかしあるのだが、その辺を読んでやってみてもなんかうまくいかないので、とりあえずメモ。 (Mingwは5.0.0、JDKはSun 1.4.2_08)

Access:ExcelからインポートしたテーブルとADOX

DoCmd.TransferSpreadSheetでExcelのシートをテーブルにインポートできるが、こいつをADOXでいじろうとするとちと変。 というのも、テーブルのColumnsを序数で参照すると、元のシートの右のカラムほど序数が若いとゆーけったいなことになっている。(つまりCo…

パスワード付きmdbからテーブルインポート

http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B811404 にあるが、パスワード付きのmdbから普通にDoCmd.TransferDatabaseしようとしてもうまくいかない。 (Access2002以降はうまくいくようになったらしいが、それにしてもいちいちダイアログにパ…

結果集合のn件目からm行取る方法

TOP句が使えるDBMS限定ながら。 対象結果集合の主キーを「KEY」とすると SELECT * TOP m FROM foo WHERE KEY NOT IN (SELECT KEY TOP n-1 FROM foo ORDER BY KEY) ORDER BY KEY ちなみにDESCでn+m件取って並べなおしてm件という方法は全件数がn+m以上でない…

きれいに連番を振りなおす方法

主キー列を自動インクリメントにしていると番号が飛んだりするが、きれいに連番を振りなおしたい場合。 とりあえずテーブルそのものを直すのでなく表示のときに連番が振られてればいいのであれば、 SELECT (SELECT COUNT(*) + 1 FROM foo WHERE foo.id