none
SQLServerCompact3.5のLoader機能について RRS feed

  • 質問

  • 【現状】
    ハンディーターミナルにDB(SQLServerCompact3.5)を構築し、
    VB.NETでハンディーターミナル用の各種アプリケーション開発を行っています。

    現在、ハンディーターミナルDBと基幹DBのマスタデータを同期させる方法として、
    基幹DBからハンディーターミナルにマスタデータのCSVファイルをダウンロードし、
    そのCSVファイルをハンディーターミナルDBに取込する機能を開発しております。

    このハンディーターミナルDBへのCSVファイル取込機能について、
    現状ではCSVファイルのデータを1件ずつ読み込み、1件ずつInsertしているのですが、
    処理レスポンスが思わしくありません。
    (取込データ件数は約7万件ほどになります。)

    【質問】
    SQLServerCompact3.5ではCSVファイルを一括Loadする機能は存在しないのでしょうか?

    こちらで調べたところ、
    SQLServerではbcpユーティリティを利用してCSVファイルのLoad機能を実装できるようですが、
    SQLServerCompactはbcpユーティリティが提供されていないようです。

    もしSQLServerCompact3.5にLoad機能が提供されていない場合、
    その対応策や過去の対応事例などご存知であれば教えていただけないでしょうか。

    2013年2月7日 0:59

回答

  • iga5iga さま よろしく。

    私も VB2008 と SQLServerCompact 3.5 の愛用者です。
     
    私の認識では、SQLServerCompact 3.5 はファイルベースの DB です。
    従って、データの移動も DB ファイルのコピーにしたら如何でしょうか。

    基幹DB の環境上で SQLServerCompact の DB を作成してしまい、CSV 経由ではなく、単なるファイルコピーでの対応です。
    ただし、タイムスタンプは通常のファイルと異なり当てになりません。(特に更新系)
    別にファイルの履歴を判別する手段を講じたほうが良さそうです。


    • 編集済み ShiroYuki_Mot 2013年2月11日 14:27 語句追加
    • 回答の候補に設定 佐伯玲 2013年2月14日 6:29
    • 回答としてマーク 佐伯玲 2013年2月25日 1:57
    2013年2月11日 14:21

すべての返信

  • 以下、ご参考までに連携します。

     

    もしも、Visual Studio を利用することができる環境でしたら、Visual Studioのアドインで、「SQL Server Compact Toolbox」というのが、SQLServerCompactでCSVなどをSQLServerにインポートするのに利用できるのだそうです。(サポートはVisual Studio 2010~)

    ※ それ以外にも便利そうな機能が。。!(SQL Server Compact Toolbox が最高に便利!

     

    参考にしたサイト:

    Bulk Import of CSV Data Into a Microsoft SQL Server Compact Edition Table?

     

    以上、何かしらの調査のヒントになるようでしたら、幸いです。

    • 回答の候補に設定 佐伯玲 2013年2月14日 6:29
    2013年2月7日 6:59
  • kyk_nk様

    情報連携ありがとうございます。

    こちらの開発環境がVisual Studio 2008なので
    アドインを試すことができないていないのですが、
    アプリ開発時などに活躍してくれそうですね!!

    Visual Studioのバージョンアップ含め、検討させていただきます。

    ありがとうございました。

                    
    2013年2月8日 0:57
  • こんにちは、iga5iga さん
    フォーラムオペレータの佐伯 玲 です。

    kyk_nk さんが紹介して下さった情報以外にも過去のスレッドではSSISを使用するという提案があったので紹介させて頂きます。

    bcpのサポートについて
    http://social.msdn.microsoft.com/Forums/ja/sqlserverja/thread/b579c492-f305-4fbc-ad23-0353c9fac9a1


    SSISでSQL Server Compactへの取り込みは以下に概要が記載されております。

    SQL Server Compact による Integration Services の使用
    http://msdn.microsoft.com/ja-jp/library/ms403372(v=sql.105).aspx


    フラットファイルソースを変換元に指定し、必要に応じて変換を行った上で変換先にSQL Server Compactを指定する形になるのではないかと思います。

    フラット ファイル ソース
    http://msdn.microsoft.com/ja-jp/library/ms139941(v=sql.105).aspx

    SQL Server Compact Edition 変換先
    http://msdn.microsoft.com/ja-jp/library/ms140269(v=sql.105).aspx

     

    ちなみにSQL Server Compact 3.5では問題ありませんが4.0ではSSISがサポートされていないのでご注意ください。

    SQL Server Compact 4.0 でサポートされていない機能
    http://msdn.microsoft.com/ja-jp/library/gg592946.aspx


    ご参考になりましたら幸いです。
    __________________________
    日本マイクロソフト株式会社 フォーラム オペレータ 佐伯 玲

    • 回答の候補に設定 佐伯玲 2013年2月14日 6:30
    2013年2月8日 6:14
  • iga5iga さま よろしく。

    私も VB2008 と SQLServerCompact 3.5 の愛用者です。
     
    私の認識では、SQLServerCompact 3.5 はファイルベースの DB です。
    従って、データの移動も DB ファイルのコピーにしたら如何でしょうか。

    基幹DB の環境上で SQLServerCompact の DB を作成してしまい、CSV 経由ではなく、単なるファイルコピーでの対応です。
    ただし、タイムスタンプは通常のファイルと異なり当てになりません。(特に更新系)
    別にファイルの履歴を判別する手段を講じたほうが良さそうです。


    • 編集済み ShiroYuki_Mot 2013年2月11日 14:27 語句追加
    • 回答の候補に設定 佐伯玲 2013年2月14日 6:29
    • 回答としてマーク 佐伯玲 2013年2月25日 1:57
    2013年2月11日 14:21
  • こんにちは、iga5iga さん
    フォーラムオペレータの佐伯 玲 です。

    その後の状況はいかがでしょうか?
    私が紹介させていただいた情報を含めさらに情報が寄せられております。

    私の方で勝手ながら一旦回答としてマークをさせていただきました。

    参考になったり解決に至れば「回答としてマーク」を、もしうまくいかなかったりご不明な点があればその旨ご返信いただけましたらと思います。

    宜しくお願いいたします。
    __________________________
    日本マイクロソフト株式会社 フォーラム オペレータ 佐伯 玲


    • 編集済み 佐伯玲 2013年2月25日 1:56 回答としてマークいたしました。
    2013年2月18日 2:51