Lukas Gebauer氏か手がけておられるDelphi用の同期TCP/IPライブラリSynapseがLDAPをネイティブでサポートして下さっているので、ありがたく使わせていただき、今までldapsearch.exe→自作LDIFコンバータ→CSVファイルという原始的方法だったのを、EXE一発でできるように作り直した。
今のところ、テキスト項目のみを、デコードしたLDIF/CSV(カンマとタブ区切り)/BIFF2(Excelの一番古いフォーマット)で出せるようにした。 作ってる過程で、問題というかTODOがいくつか。 忘れそうなのでいちおう雑記しておこう。俺的には用は足りているので、時間があればだが…。 ■Access2002へ渡したい 最近はたまにAccess2002も使ってるのだが、これのCSVインポートがけっこう馬鹿(失礼)。 現行のCSVデータでは型情報を持ちようがないが、このためだけにMDAC(ADO)使ってMDB直というのも、ツールの性格上忸怩たるモノがある。 ちょっと考えたが、Access2002ではxml形式が読み込めて、こちらにはフィールドの型情報が保持できる。ファイルサイズが膨れるのと、xsdとxmlでファイルが分かれるのがいささかナンではあるが、こっちのセンで考えてみようと思う。 ■バイナリの処理…てーか、属性(アトリビュート)のサブタイプの処理 同じldapサポートといっても、例えばActive Directory は、属性のサブタイプ(;jang-jp)などは存在しないみたい。lang-jpの文字型ならばどっちにしてもUTF-8で返されるので、無条件にUTF-8からANSIに変換しちゃってかまわない(UTF-8は1バイトASCIIに関してはANSIと同じコードマップだから)と思うのだが、問題はバイナリ値である。 本来なら;binaryを期待したいところだが、どうも付けてくれないldapサーバ(スキーマ)もあるみたいだ。つまり、SeachのResultセットの属性名からはそれが単なるlang-なのか、本当のバイナリなのか判別できそうにない。 ASCII文字セットならロジックでデータ内容を判定することもできるが、多バイト文字セットではそう簡単にはいかないかも。 LDAP3ではルートにsubSchemaSubEntryとしてスキーマ情報を格納しているノードのDNがあるので、実際の属性型の情報などはこれを参照して解析するしかないか?
…なんかカッチョ良くないなぁ(爆) 特定スキーマ決め打ちならなんとでもできるが、ちょっと汎用性を持たせようと思うと俺の如き三流にはけっこう難しいものだな(泣)
by SIGNAL-9
| 2005-03-24 11:44
| TIPSとかKludgeとか
|
カテゴリ
全体 一般の話題 奇妙な論理 奇談・異聞 秋葉原 研究(笑) 町歩き 古い話 東電災害 電算機関係の話題 情報保護・セキュリティ 読んだり見たり TIPSとかKludgeとか 拙作ソフトウェア 未分類 最新の記事
記事ランキング
以前の記事
最新のトラックバック
その他のジャンル
ブログジャンル
画像一覧
|
ファン申請 |
||