web-dev-qa-db-ja.com

カスタムモジュールのMSSqlまたはSQL Serverラッパー?

カスタムモジュールを作成していて、MSSqlデータベースに現在格納されているデータにアクセスする必要があります。組み込みのデータベース抽象化レイヤーを使用できればすばらしいと思いますが、それは不可能です。

MSSqlに同様の抽象化レイヤーを提供するモジュールまたはリソースはありますか?

そうでない場合、どのように私は自分で書くのですか?接続文字列とクエリ文字列を直接モジュールに直接配置することについては非常に悪いと感じます。

4
oranges13

Drupalバージョンを指定しなかったので、Drupal 6と7の両方について回答します。

Drupal 7

http://drupal.org/project/sqlsrv を参照してください

Drupal 6

公式のdb-apiにSQL Serverの統合があったとしても、Drupal 6を使用すると、同じタイプの複数のデータベースにしか接続できないため、あまり役に立ちません。これは例 https://github.com/dereine/views_pgsql が作成された理由。

ただし、新しいDrupal 7データベースアブストラクションレイヤーのバックポートである DBTNGプロジェクト を使用し、sqlsrvプロジェクトと組み合わせて使用​​することもできます。 。私はそれをテストしていませんが、それはうまくいくかもしれません。

4
Berdir

モジュール Forena は考慮すべきもう1つの代替手段です。 MS SQLデータベースのクエリ(更新ではない)に使用できます。 Forenaの詳細については、2種類のドキュメントを利用できます。

  • コミュニティのドキュメント
  • Forenaに付属のドキュメント。モジュールをインストールして有効にするとすぐにアクセスできます。現在のオンライン例については、 デモサイト を確認してください。

    • Forenaのドキュメント-「レポートドキュメント」のリンクを使用するか、相対リンク/ reports/helpにアクセスしてください。
    • Forenaサンプル-リンク「レポートサンプル」を使用するか、相対リンク/ reports/samplesにアクセスしてください(これらのサンプルは完全に機能するため、少し実験してください) SVGグラフサンプルで利用可能なドリルダウンなど)。

最新の7.x-4.xバージョンには、レポートの作成(WYSIWYGレポートエディター)やSQLクエリの作成(クエリビルダー)のための驚くべき(私は思う)UIも含まれています。

質問のMS SQLデータベースの一部のバリエーションを次に示します。

  1. MySQLデータベースの代わりにSQLiteを使用する:Forenaサンプルは実際には(Tiny)SQLiteデータベースを含めて出荷されます。 デモサイト で確認してください。そこに示されているデータは、SQLite形式のsampledbに含まれているデータです。
  2. Forenaには サポートされているデータベース接続 ...の完全なスイートが付属しています(MySQL、MS SQL、Oracle、Postgress、またはPDO準拠のバリエーションなど)。

Forenaを試してみるのに十分な理由はありますか?そうしている間は、あらゆるタイプのサポート/ドキュリクエストに発行キューを使用してください。

注意:私はForenaの共同メンテナです。

1
Pierre.Vriens