SSブログ

ADSI のソートバッファが 1000 [Windows/ASP/VBScript]

http://blog.so-net.ne.jp/nakagami/2005-05-23
の users.vbs だと、無事、ユーザー一覧が取ってこれるのに
SELECT 文の最後に ORDER BY name とか付けると、無事ソートできるのはいいんだけど、
最初の 1000 個しかとってこれない。

最初は、自分の間違いかと思ったが、同じ目にあっている人発見。
http://codebetter.com/blogs/brendan.tompkins/archive/2003/12/19/4746.aspx#29624
ちきしょー。なんでそんな制限が必要なんだよぉ。

上の blog エントリのコメント欄にいくつか解決策があるが、
・SQLServer にデータを置くのはできれば避けたい
・UNION を使っている例は、なんだか意味が良く分からないけど、手元で動かせない
というわけで、結局
・ORDER BY 句を使わないで全行をファイルに出力して SORT コマンドでソート
という戦略をとることにした。

探し方が悪いのかもしれないけど、VBScript で AD のユーザー管理をしている人って
思いのほか少ない予感(特に、日本で)


nice!(0)  コメント(4)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 4

hine

全件取得後にRecordSet.Sortでソートしたら上手く行く気がするなあ、
というのをtrackback送ろうとしたら失敗したので、コメントさせていただきます。

http://www.zoili.net/442 に書いてみました。自分では試してないのがなんともですが。
by hine (2005-07-21 01:54) 

nakagami

私のところでは、
「現在のプロバイダは並べ替え、またはフィルタリングに必要なインターフェイスをサポートしていません。」
とエラーが出ますね。(Windows2000)
hine さんのところでは、出来てるみたいなので、
インストールされている ADSI の DB プロバイダのバージョンによっては
うまくいくのかもしれませんね。
by nakagami (2005-07-21 10:53) 

nakagami

あ、今見たら Recordset の取得の仕方が hine さんと違いました。
ちょっと書き方を変えると、Sort できるのかもしれません。
とりあえず、私は sort コマンドに渡す方法で今回は満足しました。
by nakagami (2005-07-21 11:08) 

cozigo

満足されたようですし、今更のコメントですが、
次の記事に解決方法が載っていました。
http://www.microsoft.com/japan/technet/community/columns/scripts/sg0405.mspx

objCommand.Properties("Page Size") = 1000 ←これがポイントのようです。
ググってこちらにたどり着き、大変、助かりましたのでお役に立てば。
by cozigo (2006-02-21 20:13) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0