sql >> データベース >  >> RDS >> Sqlserver

SQL Server Compact Edition 4.0 を展開する方法は?

    ソリューションを作成しました。

    SQL Server Compact Edition は 7 つの dll で構成されています:

    • sqlceme40.dll ドキュメント化されていないネイティブのフラット API ライブラリ (.net System.Data.SqlServerCe.dll アセンブリはこの dll のラッパーです)
    • sqlceca40.dll Engine を実装する COM dll 、 レプリケーションエラー その他のいくつかの COM オブジェクト
    • sqlceoledb40.dll SSCE 用の OLEdb プロバイダーを実装する COM dll (ADO の使用を許可する)
    • sqlcese40.dll 不明
    • sqlceqp40.dll 不明
    • sqlcecompact40.dll 不明
    • sqlceer40en.dll 不明

    これらの dll を単純に出荷しようとする際の問題は、そのうちの 2 つが COM であることです。 オブジェクト。 COM オブジェクト dll を登録する必要があります 例:

    >regsvr32 sqlceca40.dll>regsvr32 sqlceoledb40.dll  

    問題は、COM オブジェクトの登録に管理が必要なことです。 特権 (グローバル ソリューションを使用してローカルの問題を解決する) )。これは、ユーザーがすることを意味します

    • インストールする必要があります アプリケーション (やりたくないこと)
    • ユーザーに管理者権限が必要です (これは望ましくありません)

    幸いなことに、2001 年に Windows XP で開始された Microsoft は、次のよくある問題を解決しました。無料COM .

    まず、アプリケーションに「依存関係」があることを宣言します。 SQL Server Compact Edition 4.0 で。これを行うには、アセンブリ マニフェストを作成します:

      Hyperion Pro    true                     

    このファイルを横に配置できます 実行可能ファイル (Hyperion.exe.manifest として) )、または RT_MANIFEST としてアプリケーションに組み込むことができます リソース。

    Microsoft.SQLSERVER.CE.4.0 という as アセンブリに対する依存関係があることに注意してください。 . ディレクトリを作成して、最初にこのアセンブリを作成します 呼ばれる:

    アプリケーションを展開するとき、この 「アセンブリ」 を構成する 7 つの dll をすべて配置します。 この Microsoft.SQLSERVER.CE.4.0 に サブフォルダー、特別な .manifest とともに ファイル:

    📁C:\╰──📁Users ╰──📁Ian ╰──📁AppData ╰──📁Local ╰──📁Hyperion Pro ├──📄Hyperion.exe ├──📄Hyperion.exe .manifest ╰──📁Microsoft.SQLSERVER.CE.4.0 ├──📄sqlceme40.dll ├──📄sqlceca40.dll ├──📄sqlceoledb40.dll ├──📄sqlcese40.dll ├──📄sqlceqp40.dll ├─ ─📄sqlcecompact40.dll ├──📄sqlceer40en.dll ╰─📄Microsoft.SQLSERVER.CE.4.0.manifest  

    つまり、アプリケーション フォルダにはアプリケーションが含まれ、Microsoft.SQLSERVER.CE.4.0 フォルダ:

     C:\Users\Ian\AppData\Local\Hyperion Pro のディレクトリ05/29/2012 09:23 AM 1,899,008 Hyperion.exe05/28/2012 01:46 PM 1,587 Hyperion.exe.manifest05/29/ 2012 09:27 AM  Microsoft.SQLSERVER.CE.4.0 2 ファイル 1,900,675 バイト 1 ディレクトリ 20,851,503,104 バイト空き  

    タスクの次の部分は、Microsoft.SQLSERVER.CE.4.0.manifest を定義することです。 ファイル。登録不要の COM では、マニフェスト ファイルですべての COM オブジェクトとその clsid を宣言できます。これには多くのリバース エンジニアリングが必要でした。ただし、SQL Server Compact Edition 4.0 のアセンブリ マニフェストは次のとおりです。

    Microsoft.SQLSERVER.CE.4.0.manifest :

           <ファイル名="sqlceqp40.dll" /><ファイル名="sqlcese40.dll" />  

    最後の落とし穴は、同じように Microsoft.SQLSERVER.CE.4.0 というアセンブリに依存していることです。 、SQL Server Compact Edition 4.0 は、Microsoft.VC90.CRT というアセンブリに依存しています。 .幸い、SQLCE のインストールには、このアセンブリのコピーが付属しています:

    📁Microsoft.VC90.CRT├──📄Microsoft.VC90.CRT.manifest╰──📄msvcr90.dll  

    つまり、最終的なディレクトリ構造は次のようになります:

    📁C:\╰──📁Users ╰──📁Ian ╰──📁AppData ╰──📁Local ╰──📁Hyperion Pro ├──📄Hyperion.exe ├──📄Hyperion.exe .manifest ╰──📁Microsoft.SQLSERVER.CE.4.0 ├──📄Microsoft.SQLSERVER.CE.4.0.manifest ├──📄sqlceme40.dll ├──📄sqlceca40.dll ├──📄sqlceoledb40.dll ├── 📄sqlcese40.dll ├──📄sqlceqp40.dll ├──📄sqlcecompact40.dll ├──📄sqlceer40en.dll ╰──📁Microsoft.VC90.CRT ├──📄Microsoft.VC90.CRT.manifest ╰──📄msvcr90 .dll   

    1. WHEREIN句を使用したSQLクエリ

    2. アプリケーションのアクセス許可をデータベースに保存する

    3. データベースが選択されていません-PHPとMySQL

    4. PHPを介して複数のMySQLテーブルに大きなCSVファイルをインポートする時間効率の良い方法が必要