2010-11-24 13 views
-1

ジェットデータベースをSQLサーバ2005 Expressデータベースに変換しました。ジェットSQLルールに従うようにSQLサーバを作成する

フロントエンドのアプリケーションには、ジェットデータベース を照会するために書き込まれた多くのインラインSQLが含まれていますが、現在は機能していません。 jet SQLには、True、Falseなどの用語が含まれています。 文字列リテラルは、二重引用符などの両方に含まれます。 SQLには、ucase、trim、isnullなどの関数があります。

何百ものクエリを書き直すのではなく、SQL Serverでjet SQLを使用する方法がありますか?

+0

UDFを見る価値があるかもしれません。http://www.sqlteam.com/article/user-defined-functions – Fionnuala

+0

Remouさん、ありがとうございました。私は、レコードセットを開く直前にそれをT-SQLに変換するジェットSQLの周りに関数をラップすることを考えていました。これは似たようなアプローチですか? – jjb

+0

変換を行うsprocまたはudfは、非常に、非常に苦労して書くでしょう。私はそれを見て多くの時間を費やすことを提案しません。 – Donnie

答えて

1

私が言うことができる限り、いいえ。ここに2つの違いのいくつかを要約したサイトへのリンクがあります:http://sqlserver2000.databases.aspfaq.com/what-are-the-main-differences-between-access-and-sql-server.html。また、AccessからSQL Serverに移行するためのMicrosoft移行ツールへのリンクもあります:http://www.microsoft.com/sqlserver/2005/en/us/migration-access.aspx

共有して楽しんでください。

+0

参考情報ありがとうございました – jjb

1

いいえ。 SQL ServerはT-SQLを使用しますが、これは設定できません。

+0

ありがとうございました。私が聞きたいと思っていたものではない場合、かなり明白です。 – jjb

1

質問が分かりません。 ODBCリンクテーブルを使用してSQL Serverに接続すると、Jet/ACE SQLはJet/ACE SQLからの変換を処理するため、頼んだことが得られます。つまり、既存のJet/ACE SQLはSQL Serverでうまく動作します。あなたのためのT-SQLへ。

これはアップサイジングの標準的な方法であり、動作することを保証することができます。

これは、アプリを実行するときに非常に遅くなるアプリの部分を頻繁に実行することになるため、アプリケーションのこれらの部分を修正して、SQLサーバ。これは、問題のあるデータ検索のすべてまたは一部をそこで利用できる多くのオプション(アクセス内のパススルークエリ、リンクテーブルとして使用できるサーバー側ビュー、ストアドプロシージャなど)を介して移動することを伴うことがあります。あなたはAccess内でそれらと一緒にすることができます)。

サーバー側に移動すると、すべてのアクセス固有の要素が削除される必要がありますが、そのほとんどはサーバー側のビューを使用せずにアクセスし、そのアクセスを表示してアクセス固有のものを階層化するだけですそういう意味で。

しかし、それは解決しようとしている各問題の詳細によって異なります。一般に、ODBCリンクテーブルを介してアクセスするSQL Serverに変換しただけでは、何も破損しないはずです。それは速くなることを意味するものではなく、ただ破損しないことだけです。

+0

ありがとう、私は解決策としてこれを見落としていました。私はそれについて聞いたことがありますが、前にリンクテーブルを使用したことはありません。私がこれを持っている主な懸念は、あなたが言及したように、アプリケーションの減速です。このタイプのアップグレードをカバーする書籍やウェブサイトについて知っていますか?ありがとう – jjb

+0

チップマンとバロン私はこれで私の聖書として使用するものです(SQL ServerへのMicrosoft Access開発者ガイド、http://www.amazon.com/Microsoft-Access-Developers-Guide-Server/dp/0672319446)。 Jet/ACEはできる限りのことをサーバーに委ねるため、全体的なパフォーマンス上の問題はありません。しかし、特定の種類のプロセス(SQL UPDATE文など)は、Jet/ACEがそれをハンドリングする方法において非常に非効率的である可能性があります。私の経験では、あなたが試してみるまで、何がサーバ側に移動する必要があるかを慎重に予測していません。 –

+0

そして、それは明白な解決策であり、Microsoftが推奨する解決策です。バインドされていないアプリケーションを作成する場合を除いて、代替方法はありません。そうした場合は、バインドされたデータ形式がAccessの主な利点であるため、Accessを終了することもできます。 ADPは何かをしようとする努力でしたが、うまくいきませんでした。そしてMSはODBCリンクテーブルを使ってMDB/ACCDBに賛成です。 –

関連する問題