C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >>
■3993  Re[1]: ArrayListのExcel出力について
□投稿者/ 魔界の仮面弁士 -(2007/05/31(Thu) 09:55:28)
    2007/05/31(Thu) 10:21:48 編集(投稿者)

    No3992 (じゃかるた さん) に返信
    > ・保存形式は「名前をつけて保存」ダイアログボックスが出てくればよいです。
    この点は、Content-Type と Content-Disposition を送出することで対応できますね。


    > ・単純に左上から一セル一データで表示できればよいです。(CSV出力は不可です)
    そういう時は、なぜ CSV では駄目なのかという理由も示さないと。(^^;

    で…まずは「どの出力形式なら許容できるのか」という話になってくるかと思います。

    ネイティブのバイナリ フォーマットだと面倒なので、テキストベースのフォーマットを
    選択することになるかと思いますが、そうすると
     ・タブ区切りテキスト(全バージョン)
     ・SYLK 形式(全バージョン)
     ・DIF 形式
     ・HTML 形式(Excel 97 以上)
     ・Excel HTML 形式(Excel 2000 以上)
     ・XML スプレッドシート形式(Excel 2003 以上)
    の中から選択することになるかと思います。
    # XML データ(Excel 2002 以上)という手もありますが、今回の目的には適さないかも。

    HTML 形式で良ければ、System.Web.UI.WebControls.DataGrid にデータバインドさせておき、
    System.Web.UI.HtmlTextWriter に RenderControl させるという手があるでしょうし、
    あるいは、XML スプレッドシートへ XSLT 変換するという方法もありますね。

    もし、バイナリ形式である *.xls 形式が必要なら、COM 操作によるオートメーション(ASP.NET 向けではない)か、
    BIFF を直接生成するか、Excel 形式を出力可能な外部コンポーネント(ExcelCreator 等)が必要でしょう。

    ZIP 生成が可能なら、Excel 2007 の xlsx という選択肢もありますが…。


    取り回しを考えると、XML が楽なのかな。Excel 側のバージョンがある程度限定されますけど。
    http://aspalliance.com/471
    http://codezine.jp/a/article.aspx?aid=194
    http://support.microsoft.com/kb/307029/ja
    http://www.microsoft.com/japan/msdn/office/office2003/odc_unlock.aspx
記事No.3992 のレス /過去ログ13より / 関連記事表示
削除チェック/

■3994  Re[2]: ArrayListのExcel出力について
□投稿者/ じゃかるた -(2007/05/31(Thu) 10:28:27)
    ご返信ありがとうございます。

    >>・保存形式は「名前をつけて保存」ダイアログボックスが出てくればよいです。
    > この点は、Content-Type と Content-Disposition を送出することで対応できますね。
    了解しました。

    >>・単純に左上から一セル一データで表示できればよいです。(CSV出力は不可です)
    > そうすると、「どの出力形式なら許容できるのか」という話になってくるかと思います。
    > ネイティブのバイナリ フォーマットだと面倒なので、テキストベースのフォーマットを
    > 選択することになるかと思いますが、そうすると
    >  ・タブ区切りテキスト(全バージョン)
    >  ・SYLK 形式(全バージョン)
    >  ・DIF 形式
    >  ・HTML 形式(Excel 97 以上)
    >  ・Excel HTML 形式(Excel 2000 以上)
    >  ・XML スプレッドシート形式(Excel 2003 以上)
    > の中から選択することになるかと思います。
    > # XML データ(Excel 2002 以上)という手もありますが、今回の目的には適さないかも。
    >
    >
    > もし、バイナリ形式である *.xls 形式が必要なら、COM 操作によるオートメーション(ASP.NET 向けではない)か、
    > BIFF を直接生成するか、Excel 形式を出力可能な外部コンポーネント(ExcelCreator 等)が必要でしょう。
    >
    > ZIP 生成が可能なら、Excel 2007 の xlsx という選択肢もありますが…。

    *.xls形式が要件です。
    ということはバイナリ形式を扱うことになりCOM操作が必要になるということですね・・・
    ExcelのCOM操作で苦労話を聞いたことがあります。(COMの引数がExcelのバージョンに依存するとか・・・詳しいことは分かりませんが)
    ちなみにExcel2007は想定していません。

    DataGridに仕様変更するのが無難と判断しました。

    大変分かりやすいご説明ありがとうございました。
記事No.3992 のレス / END /過去ログ13より / 関連記事表示
削除チェック/

■4021  Re[4]: VC++で作成したAvtiveXのIEからの呼び出しについ
□投稿者/ ayumina222 -(2007/06/01(Fri) 10:39:20)
    No4017 (ちゃっぴ さん) に返信
    > よく見たら object tag に Version が無いようですけど、その状態でもいけましたっけ?

    省略できるみたいですよ〜。
    一応Versionも付けてみましたけどダメでした /(-_-)\ウーン
    Windows2000で実行したところ期待通りの動作をしたのですが、XPsp2以降だと「ActiveXをインストールしますか?」のダイアログが出て「はい」をクリックしてもまったく反応がないです。
    もちろんインストールもされていません。
    XP用に何か対策をしなくてはならないのでしょうか?

    あと、IObjectSafetyインタフェースというものをコードに実装しないと、実行されないというのを聞いたのですが、必要でしょうか?
記事No.3950 のレス /過去ログ13より / 関連記事表示
削除チェック/

■4310  SQLDMOを使ったアプリケーション
□投稿者/ ちぃ -(2007/06/13(Wed) 14:00:12)

    分類:[データベース全般] 

    VS2003(C#)とSQLServer2000による開発を行っています。
    最近SQLServerを2005にバージョンアップしました。VSは2003のままです。

    別の方が開発されたexeに、データベースのバックアップと復元を行うものがあり、SQLDMOを使用しています。
    クライアントからサーバに接続し、サーバのデータベースのバックアップをサーバ内のディレクトリに保存するという処理です。

    そのexeで、SQLServer2005にしてからエラーが発生します。
    「このサーバーに接続するには、SQL Server Management Studio または SQL Server Management Objects (SMO) を使用してください。」というものです。
    サーバーにSQLServer2005がインストールされており、exeを動かすクライアントにはSQLServer2000がインストールされている状態
    もしくは、SQLServerはインストールされていない状態です。

    いろいろ調べているのですが、、基礎知識が足りないので、どうすればよいか困っています。
    どなたか、SQLDMOを使って、バックアップ処理を行うアプリケーションを開発するのに参考になるサイトをご存知の方はぜひ教えてください。
    よろしくおねがいします。

    (やはり、SMOを使って開発しなおしたほうがよいでしょうか?)
親記事 /過去ログ13より / 関連記事表示
削除チェック/

■4318  VB6.0の非同期処理について
□投稿者/ たぬき -(2007/06/13(Wed) 18:15:57)

    分類:[VB6 以前] 

    お世話になっております。

    VB6.0で非同期通信処理を行いたいのですが、思うように処理が行えなくて、
    困ってしまいました。
    皆さんにご相談させて下さい。

    開発環境
    OS:Windows2000
    IDE:VB6.0 
    ブラウザ:IE6

    処理内容
    1、ブラウザ(IE6)にUserControlを(の上にwebBrowserコントロール)を設置します。
    2、初期処理で別のサーバに保存してあるファイルを取得し、webBrowserコントロールにセットして表示します。
    3、複数ファイルが存在した場合は、1番最初に取得したファイルを表示し、2番目のファイルからは、別のプロセスにて、ダウンロード処理を続けます。
    4、ダウンロード処理が実行中は、1番最初に取得したファイルに対して操作を行えるようにする。

    ※現在、ダウンロード中はプロセスを占有している為に、表示しているファイルに対して、処理が何も行えない
    状態となってしまいます。

    非同期処理について、下記HPを見つけましたが、
    http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/0008/com/

    「非同期処理を作成する(サンプル5:Samp0805)」という処理が実現出来ずに
    行き詰っております。
    どなたか、詳しい方がいらっしゃいましたら、アドバイスを宜しくお願い致します。




親記事 /過去ログ14より / 関連記事表示
削除チェック/

■4323  ASP.NETの公開方法について
□投稿者/ iwaiwa -(2007/06/13(Wed) 23:26:14)

    分類:[VB.NET (ASP.NET)] 

    2007/06/13(Wed) 23:26:33 編集(投稿者)

    こんにちは。宜しくお願いします。

    ASP.NETで開発をしております。これを公開できるようにしたいのですが、色々調べて
    試行錯誤しているのですが、できずにいます。お知恵をお貸し下さい。

    OS:Windows 2000
    IIS:5.0
    VB.NET 2.0

    です。WindowsはXP Home なので、もう1台のWin2000のIISしか使えません。
    仮想フォルダにWebを発行してブラウザで見ようとしたのですが、web.configのエラー(子ノードは使えません、と)が出ます。

    他に個人レベルで使用可能な環境があれば、合わせて教えて頂きたいです。

    宜しくお願い致します。
親記事 /過去ログ14より / 関連記事表示
削除チェック/

■4368  Re[2]: ASP.NETの公開方法について
□投稿者/ iwaiwa -(2007/06/14(Thu) 17:57:35)
    ご返答ありがとうございました。
    基礎的な箇所で問題があるような気がしてきました…。
    コーディングだけではダメですね。

    > ◆インターネットインフォメーションサービスで
    >  既定のWebサイトのプロパティを参照したときに
    >  ASP.NETという名前のタブはありますか?
    すみません、ないです。
    上で説明不足でしたが、開発の方はXP+VS2005でやっています。
    XPはHomeなので、IISがないため、2000の方のIISで…と思ったのですが…。


    > ◆開発に使用しているツールはVisualWebDeveloper(VWD)ですか?
    はい。その通りです。

    > ◆VWDで以下の手順を踏んでもWebサイトは表示されませんか?
    >  ・メニューのファイル>新しいWebサイト
    >  ・場所=HTTP URL=http://localhost/070614で「OK」を押す
    >  ・F5キーを押し、デバッグが無効ですダイアログで
    >   「デバッグを有効にするために...(M)」を選択し「OK」を押す
    >  ・Webブラウザに空白のページ「無題のページ」が表示される
    これは問題なくできます。

    > - ネットワーク内の他者(他のPC)に
    > - インターネット上に
    > のどちらに公開したいのですか?
    最終的にはインターネットで公開したいです。
    VS2005でもデバッグできるのですが、メール送信とかのテストができないので、、、と思っています。

    大変お手数ですが、よろしくお願いします!
記事No.4323 のレス /過去ログ14より / 関連記事表示
削除チェック/

■4372  Re[3]: ASP.NETの公開方法について
□投稿者/ はつね -(2007/06/14(Thu) 21:02:55)
>
    No4368 (iwaiwa さん) に返信
    >>◆インターネットインフォメーションサービスで
    >> 既定のWebサイトのプロパティを参照したときに
    >> ASP.NETという名前のタブはありますか?
    > すみません、ないです。
    > 上で説明不足でしたが、開発の方はXP+VS2005でやっています。
    > XPはHomeなので、IISがないため、2000の方のIISで…と思ったのですが…。

    Windows2000のIISにもありませんか?


    >>◆開発に使用しているツールはVisualWebDeveloper(VWD)ですか?
    > はい。その通りです。

    VS2005しか使ったことがないのでVWDについては知識がありませんが、VWDって他のマシンへのWeb発行はできるものなのでしょうか。


    >>- ネットワーク内の他者(他のPC)に
    >>- インターネット上に
    >>のどちらに公開したいのですか?
    > 最終的にはインターネットで公開したいです。

    ご自身の手持ちのWindows2000をインターネットに公開ということなのでしょうか。
    それともインターネット上でASP.NET2.0が使えるレンタルサーバーなどで行うのでしょうか。
    前者だと、他にもいっぱいハードルありそうな気もしますし、インターネットに公開した後の運用やセキュリティの確保などの問題もクリアする目処はたっているのでしょうか。


    > VS2005でもデバッグできるのですが、メール送信とかのテストができないので、、、と思っています。

    インターネットで公開するかどうかと、VS2005(つまりXPHome上で)メール送信とかのテストができないとかいう問題は別問題のように思えます。つまり、Webアプリが動作しているマシンからインターネットにメール送信できるメールサーバに接続できさえすればWebアプリをインターネットに公開する必要はありません。
記事No.4323 のレス /過去ログ14より / 関連記事表示
削除チェック/

■4375  Re[4]: ASP.NETの公開方法について
□投稿者/ iwaiwa -(2007/06/14(Thu) 23:16:30)
    こんにちは。色々お手数掛けますが、宜しくお願いします。

    > Windows2000のIISにもありませんか?
    2000の方にはVS2005を入れていません。それが原因でしょうか?
    現状、タブはないです。

    > VS2005しか使ったことがないのでVWDについては知識がありませんが、VWDって他のマシンへのWeb発行はできるものなのでしょうか。
    すみません。勘違いしているかもしれません。VS2005のVWDって意味だったのですが…。
    自分も使用しているのはVS2005です。
    他のマシンへのWeb発行は一応できるみたいです。

    > ご自身の手持ちのWindows2000をインターネットに公開ということなのでしょうか。
    > それともインターネット上でASP.NET2.0が使えるレンタルサーバーなどで行うのでしょうか。
    > 前者だと、他にもいっぱいハードルありそうな気もしますし、インターネットに公開した後の運用やセキュリティの確保などの問題も
    > クリアする目処はたっているのでしょうか。

    できればそうしたいと思っています。容量やコストの問題等もありますし。
    正直言って、レンタルサーバーの設定の仕方がよく分からないのもあります。
    自前のマシンでやりたいのは、そういうサーバーの設定の方法を覚えたいという気持ちもあります。
    セキュリティの問題等はこれから検討していかなければと考えています。
    いずれにしても、商用ではないですし、規模は小さいので徐々に…という考えです。

    個人レベルで作っているものなので、考えが甘い点が多々あるかと思いますが、
    どうぞお知恵をお貸し下さい。

    宜しくお願いします。
記事No.4323 のレス /過去ログ14より / 関連記事表示
削除チェック/

■4377  Re[5]: ASP.NETの公開方法について
□投稿者/ 渋木宏明(ひどり) -(2007/06/15(Fri) 05:26:41)
>
    2007/06/15(Fri) 08:36:08 編集(投稿者)

    >>Windows2000のIISにもありませんか?
    > 2000の方にはVS2005を入れていません。それが原因でしょうか?

    Windows 2000 に .NET Framework を入れていない、あるいは IIS を「入れた後」に aspnet_regiis.exe してないんじゃないでしょうか。

    >>VS2005しか使ったことがないのでVWDについては知識がありませんが、VWDって他のマシンへのWeb発行はできるものなのでしょうか。
    > すみません。勘違いしているかもしれません。VS2005のVWDって意味だったのですが…。
    > 自分も使用しているのはVS2005です。
    > 他のマシンへのWeb発行は一応できるみたいです。

    出来るけど、ネットワーク環境に応じて受け入れ側の準備が異なり、仕込が面倒です。
    なので、ローカルの適当なディレクトリに「発行」して、そのイメージを Web サーバの該当ディレクトリに丸ままコピーしてます>自分
記事No.4323 のレス /過去ログ14より / 関連記事表示
削除チェック/

■4381  Re[5]: ASP.NETの公開方法について
□投稿者/ はつね -(2007/06/15(Fri) 12:01:45)
>
    No4375 (iwaiwa さん) に返信
    >>Windows2000のIISにもありませんか?
    > 2000の方にはVS2005を入れていません。それが原因でしょうか?
    > 現状、タブはないです。

    渋木宏明(ひどり) さんの書かれている通りです。

    >>ご自身の手持ちのWindows2000をインターネットに公開ということなのでしょうか。
    >>それともインターネット上でASP.NET2.0が使えるレンタルサーバーなどで行うのでしょうか。
    >>前者だと、他にもいっぱいハードルありそうな気もしますし、インターネットに公開した後の運用やセキュリティの確保などの問題も
    >>クリアする目処はたっているのでしょうか。
    >
    > できればそうしたいと思っています。容量やコストの問題等もありますし。
    > 正直言って、レンタルサーバーの設定の仕方がよく分からないのもあります。
    > 自前のマシンでやりたいのは、そういうサーバーの設定の方法を覚えたいという気持ちもあります。
    > セキュリティの問題等はこれから検討していかなければと考えています。
    > いずれにしても、商用ではないですし、規模は小さいので徐々に…という考えです。

    インターネットに公開するというのは商用・私用を問わず、きちんとセキュリティの問題をクリアしてから行って下さい。
    そうしないと、そのサイトを踏み台にして他のサイトを攻撃したり、詐欺などの仕組みに組み入れられたりします。
    その場合、どこまで責任を取らされるかは分かりませんが、軽い気持ちで全世界を敵に回す必要はないと思います。
    # レンタルサーバの設定も判らないのであれば、自前公開サーバをきちんと立てられないと思いますし。
    # そもそもサーバーやルータ以外にファイアウォール機器をどうするのかとかも考えないといけないし。
    乱暴な例えですがいまやろうとしている事は、教習所で教習も受けた事がない人が、車の運転席に初めて座っていきなり高速道路は走るようなものではないでしょうか。

    もし、セキュリティの問題などを検討・勉強するのであれば、インターネットに公開しない(インターネットからのアクセスがない)状態にして、擬似攻撃をかけるツールや手法を使ってやるのが良いと思います。誰にも迷惑かけないでしょうから。
記事No.4323 のレス /過去ログ14より / 関連記事表示
削除チェック/

■4384  Re[6]: ASP.NETの公開方法について
□投稿者/ 囚人 -(2007/06/15(Fri) 13:18:12)
    Windows 2000 Server の話なのかな。もしかして Windows 2000 Professional ?

    後者だとしたら、同時接続数が 10 までというキツイ制限があるのであまり現実的ではないと思います。

    「勉強も兼ねて」という事なので、個人的には「別にいいのでは?」と思いますが、はつねさんが仰るような事があるのなら軽はずみにはできないのかもしれませんね。
記事No.4323 のレス /過去ログ14より / 関連記事表示
削除チェック/

■4397  Re[7]: ASP.NETの公開方法について
□投稿者/ iwaiwa -(2007/06/15(Fri) 18:42:47)
    質問者です。お手数をお掛けします。

    > Windows 2000 Server の話なのかな。もしかして Windows 2000 Professional ?
    すみません。2000 proです。

    > Windows 2000 に .NET Framework を入れていない、あるいは IIS を「入れた後」に aspnet_regiis.exe してないんじゃないでしょうか。
    .NET Frameworkは間違いなく入っています。2.0です。
    aspnet_regiis.exeなのですが、これは単に実行するだけでいいのでしょうか?
    とりあえず実行してみましたが、何も変わりませんでした。

    セキュリティの問題ですが、ルーター+アンチウイルスソフト+ファイアウォールソフトじゃ足りませんでしょうか?
    特別な機器とか必要ですか?

記事No.4323 のレス /過去ログ14より / 関連記事表示
削除チェック/

■4398  Re[8]: ASP.NETの公開方法について
□投稿者/ はつね -(2007/06/15(Fri) 18:59:56)
>
    No4397 (iwaiwa さん) に返信
    >>Windows 2000 に .NET Framework を入れていない、あるいは IIS を「入れた後」に aspnet_regiis.exe してないんじゃないでしょうか。
    > .NET Frameworkは間違いなく入っています。2.0です。
    > aspnet_regiis.exeなのですが、これは単に実行するだけでいいのでしょうか?
    > とりあえず実行してみましたが、何も変わりませんでした。

    その後にコントロールパネル(でしたっけ?)からIISの管理ツールを立ち上げて、Webサイトのプロパティを表示してみて下さい。
    ASP.NETというタグが増えていませんか?
    ここで、ASP.NETのバージョンを設定すればよいと思います。


    > セキュリティの問題ですが、ルーター+アンチウイルスソフト+ファイアウォールソフトじゃ足りませんでしょうか?
    > 特別な機器とか必要ですか?

    う〜ん、機器やソフトを入れるだけでOKだと思っているとしたら非常に不安。
    とりあえず入門の更に入口について、総務省ですら下記のようなコンテンツを公開しているという事で。
    http://www.soumu.go.jp/joho_tsusin/security/homepage/server00.htm
記事No.4323 のレス /過去ログ14より / 関連記事表示
削除チェック/

■4400  Re[8]: ASP.NETの公開方法について
□投稿者/ 渋木宏明(ひどり) -(2007/06/15(Fri) 19:42:10)
>
    >>Windows 2000 に .NET Framework を入れていない、あるいは IIS を「入れた後」に aspnet_regiis.exe してないんじゃないでしょうか。
    > .NET Frameworkは間違いなく入っています。2.0です。

    IIS と .NET Framework を「入れる順番」が重要なんですよ。

    .NET Framework がインストール済みのところに IIS を追加しても、IIS に ASP.NET が統合されないんです。

    IIS を追加してから .NET Framework をインストールするか、既に .NET Framework が導入済みなら、IIS を追加した後に aspnet_regiis.exe で ASP.NET を IIS に統合しなくてhなりません。

    > aspnet_regiis.exeなのですが、これは単に実行するだけでいいのでしょうか?
    > とりあえず実行してみましたが、何も変わりませんでした。

    うっそだー、オプションを何もつけないで実行すれば簡易ヘルプが表示されたでしょ?
    読みましょうよ。

    大抵は

    aspnet_regiis.exe -i

    で十分ですが、システムに大きな変更を加えるコマンドなんで、何が起きるかしっかり把握しておきましょう。
    MSDN Library に解説が載ってるし、aspnet_regiis.exe でググったって情報は見つかるはずです。

    > セキュリティの問題ですが、ルーター+アンチウイルスソフト+ファイアウォールソフトじゃ足りませんでしょうか?

    アンチウイルスはあんまし関係ないと思う。
    てか、ネットワーク環境だけ整えればOKってもんではなく、アプリケーションの設定や作りこみなどの各段階で気を配らなくてはならないものなのです>セキュリティ
記事No.4323 のレス /過去ログ14より / 関連記事表示
削除チェック/

■4393  VB.NETでExcel操作について
□投稿者/ ゆっきー -(2007/06/15(Fri) 17:13:25)

    分類:[VB.NET (Windows)] 

    [環境]VB.NET2005 Excel2000(MS Excel 9.0 Object Library)

    VB.NETでExcelにデータを出力する(帳票)処理をしています。
    帳票で、N列になるデータがあるので、
    Excelのテンプレートには基本となる列(例えばA列)を用意し、
    必要な列数だけその列(A列)をコピーし、
    B列C列D列…に貼り付けるということをしようとしています。

    A列(1列)をコピーしていく、というのは下記コードでできました。

    '列コピー
    CType(xlsSheet.Columns(intCol), Excel.Range).Select()
    CType(xlsSheet.Application.Selection, Excel.Range).Copy()

    '列貼り付け
    CType(xlsSheet.Columns(strColumn), Excel.Range).Select()
    xlsSheet.Paste()

    ※intCol:コピー元の列
    ※strColumn:コピー先の列
    ※列は「A,B,C」ではなく「1,2,3」です。

    しかし、A列〜C列(N列)をD列〜F列にコピーというのが
    いまいちうまくいきません。

    下記コードで試したのですがうまくいきませんでした。

    '列コピー
    CType(xlsSheet.Columns(intColFrom & ":" & intColTo), Excel.Range).Select()

    ※intColFrom:コピー元の列開始位置
    ※intColTo:コピー元の列終了位置
    ※エラーメッセージ:「HRESULからの例外:0800A03EC」

    何かお分かりになられましたらご教授ください。
    お願いいたします。
親記事 /過去ログ14より / 関連記事表示
削除チェック/

■4337  [VB6] open 書き込みバッファのデフォルトサイズ
□投稿者/ mあ -(2007/06/14(Thu) 12:19:34)

    分類:[VB6 以前] 

    マルチポスト(VB6 掲示板):
    http://homepage1.nifty.com/MADIA/
    タイトル:VB6 open 〜 Access Write As #inpFile の書き込みバッファのデフォルトサイズについて

    ※向こうで返信無さそう(興味無い?)なのでこちらでも意見を伺いたく。
    双方にレス&進捗報告をするつもりです。
    よろしくお願いします。m(__)m

    open でシーケンシャルアクセスで 書き込みモードで ファイルをオープン。
    このとき、バッファサイズを 32000 〜 65000 の範囲を指定することで
     参考:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_k04.htm
    書き込み処理を高速化出来る可能性があることは分かりましたが、
    指定しないときのデフォルトサイズはどれくらいのものなんでしょうか?
    また、バッファの吐き出し契機は?
     改行コード?(改行が多いデータの場合は逆に遅くなりそうな・・・)
     しきい値?(90%溜まったら吐き出し・・・とか)
     バッファ満タン?(普通に考えたらコレかな・・・)

    ついでに、読込バッファのデフォルトサイズと先読み契機もご存知でしたら
    教えてください。
    読込はしきい値っぽいな・・・


    # SVF 食わせ用CSVデータファイル出力に、現状3時間ですって・・・・(出力紙換算で600 枚程度)
    # SQL=4割, CSV=6割 な実行時間比率
    # SQL が時間かかりすぎなのはおいといてください。
親記事 /過去ログ14より / 関連記事表示
削除チェック/

■4349  Re[3]: [VB6] open 書き込みバッファのデフォルトサイズ
□投稿者/ mあ -(2007/06/14(Thu) 15:22:11)
    No4344 (なちゃ さん) に返信
    > てVB6ですね…
    > まあ似たような事情はそちらでも当てはまるかとは思います。


    > ありがちなのは巨大なCSV全体をメモリ上で作成してるとか、
    おっしゃるとおりです。ですが、リリース後に巨大メモリ食い過ぎ処理な部分は
    削除されております。が、本当に使用量を測ったのかどうかは疑わしく・・・
    おそらく、VBがたまーに出す(あれってGCが利かないからしょうがなく出ちゃうの?)
    「メモリが足りません」てエラーで強制終了しちゃうのを食い止めるための暫定処置
    かと。

    > しかも全部文字列連結してるとかですね。
    おっしゃるとおりです。文字列連結ビンビンです。print "moji,moji2,..." が全ての基本
    になっています。確か、VBには、ファイル出力の際に、配列を指定して、カンマ区切りで
    出力するように出来たよーな、出来なかったような・・・Input は見たことあるのですが・・・


    --

    SQL は、Oracle/ストアド
    20個くらい引数がある中身(まだ見てないです)も巨大そうなSQLをいっぱい実行して
    3つのテンポラリテーブルを作成します。

    VBはとてもきれいに書かれているのですけど、スピード度外視、綺麗さ重視なつくりです。
    関数化と共通部分の抜き出しに注視されるあまり〜当時からかなり修正が入っているの
    ですが、あとから修正した人間がこの作り方に慣れてないように見えます〜コピペ主体
    というか、動けばいいや、というか・・・どの時点で動きが極端に遅くなったのかは、
    ソースの読みと修正日付でうっすらぼんやり見えてくるでしょうが・・・と思ったら
    言うまでもなく、作成当時から遅いようです。。。ダメだこりゃ。。。

    動的SQLが少ないが呼ばれる回数は多いです。当然というか。
    バインド変数多用して、ストアドコールしています。まぁここらへんはいいでしょう。
    数も少ないし。でも、OraDynaset を取得した後が問題?、SQL の WHERE 句と同じことを
    VBでやってるぽいです。てことは、ストアドは、全件取得のSQLで構成されていて、
    VB側で適当に要らないデータを篩いわけしてCSV作ってよ、みたいな作りですね・・・
    C/PRO-C なら、データベースでやるよりC側でやってもあまりスピードも変わらんような
    気がしますが、VBだとさすがにまずいでしょうね。

    ヘッダSQL発行
    ヘッダ部読み {
     ヘッダのパラメータで胴体部SQL発行(動的SQL)
     胴体帳票1、帳票2 出力
     宛名出力
    }

    スピードアップのSE的希望は、いまの半分です。全体で30%程度の高速化ってとこ。
    VB側は改善の余地大幅にありですから、まだいいですが、SQLはあまり得意じゃないので
    触る気になれません。かと言ってVBもあまり得意じゃないのですが・・・

    とりあえず、VBから触れ、との命により・・・

    # ちゅーても、この指令を出してる本人の修正も結構入っているのに、修正している時点
    # 遅いことに気づかなかったわけが無いだろうと・・・というか、やる気あんのか!と。

    なちゃ様>
    ご意見ありがとうございました。

    とりあえず、バッファサイズを知ったところでどんなもんだ、という指摘も確かにそうなので
    すが、知りたい欲求が高いため、引き続き情報をお寄せください。
    知ったところで、最初から、32000〜65000 の範囲で使うことは確定なんですが・・・







記事No.4337 のレス /過去ログ14より / 関連記事表示
削除チェック/

■4347  Re[3]: [VB6] open 書き込みバッファのデフォルトサイズ
□投稿者/ 魔界の仮面弁士 -(2007/06/14(Thu) 15:09:05)
    # SQL Server 2000 の DTS による CSV 作成は、けっこう高速だったような気が。うろ覚え。


    No4337 (mあ さん) に返信
    > このとき、バッファサイズを 32000 〜 65000 の範囲を指定することで
    >  参考:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_k04.htm
    > 書き込み処理を高速化出来る可能性があることは分かりましたが、

    記事の内容を読み違えているような……。
    そもそも、Len 句に指定できる最大値は 32,767 ですよね。


    No4345 (Mr.T さん) に返信
    > VB6.0なら、Midを利用する方が断然速いというテクニックがありましたね。
    > http://support.microsoft.com/kb/170964/

    最大サイズが不定な時は、Mid ステートメントも使いにくいんですよね。
    そんな時は、Dictionary.Join メソッドで連結すると、結構速くなります。
    (速度面だけで見ると、Mid ステートメント法には到底敵いませんけど)

    とはいえ、文字列連結せずに逐次 Print # しているなら、そっちの方が早かったり。
記事No.4337 のレス /過去ログ14より / 関連記事表示
削除チェック/

■4350  Re[4]: [VB6] open 書き込みバッファのデフォルトサイズ
□投稿者/ mあ -(2007/06/14(Thu) 15:28:46)
    No4347 (魔界の仮面弁士 さん) に返信
    > # SQL Server 2000 の DTS による CSV 作成は、けっこう高速だったような気が。うろ覚え。
    >
    >
    > ■No4337 (mあ さん) に返信
    >>このとき、バッファサイズを 32000 〜 65000 の範囲を指定することで
    >> 参考:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_k04.htm
    >>書き込み処理を高速化出来る可能性があることは分かりましたが、
    >
    > 記事の内容を読み違えているような……。
    > そもそも、Len 句に指定できる最大値は 32,767 ですよね。
    読み違えています?バッファリングのことだと認識していたのですが・・・
    fwrite() のバッファてデフォルト 4096〜8192 じゃないですか。あれと同じだと
    理解していたのですが・・・ディスクへの物理アクセスを減らすことによる高速化
    じゃなかったのか・・トホホ・・・

    ご意見ありがとうございます。m(__)m


    >
    >
    > ■No4345 (Mr.T さん) に返信
    >>VB6.0なら、Midを利用する方が断然速いというテクニックがありましたね。
    >>http://support.microsoft.com/kb/170964/
    >
    mid() 使うタイミングを計ります。
    情報ありがとうございます。m(__)m

    > 最大サイズが不定な時は、Mid ステートメントも使いにくいんですよね。
    > そんな時は、Dictionary.Join メソッドで連結すると、結構速くなります。
    > (速度面だけで見ると、Mid ステートメント法には到底敵いませんけど)
    >
    > とはいえ、文字列連結せずに逐次 Print # しているなら、そっちの方が早かったり。

    ノンバッファリングの Print があるってことですか?
    VB の書き込みはバッファリング無しが基本なんですか?



記事No.4337 のレス /過去ログ14より / 関連記事表示
削除チェック/

<前の20件 | 次の20件>

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >>

ヒット件数が多いので過去ログ1〜20 までの検索結果 / 過去ログ21からさらに検索→

パスワード/

- Child Tree -