1

私はデータベースに不慣れで、助けを求めています。SQL Server データベースにデータを保持するように作成されたカスタム アプリがあります。また、QuickBooks POS に基づいた POS システムもあります。私たちは、QBPOS への ODBS 準拠のインターフェースを提供する QODBC という製品を購入しています。

SQL Server データベースには と呼ばれるテーブルがcustomerinfoあり、合計 70 列のうち 15 列の情報に関心があります。

彼らです:

id, txtfname, txtlname, txtemployer, txtphone, email, txtaddress, txtcity, txtstate, txtzip, IDENTIFICATIONType, IDENTIFICATIONumber, IDState, IDENTIFICATIONExpiry & dtpBirth.

これらの列は、ODBC でアクセス可能な QBPOS にインポートする必要があります。この QBPOS には、上記のすべての名前の前に QB が付いた、異なる名前の列があります (たとえば、SQL Server 列はidQBPOS 列ですQBid)。何

私たちがやりたいのは、必要なデータを定期的なスケジュール (1 分ごとなど) で QBPOS にインポートすることです。まず、毎分程度のインポート スケジュール以外に、デスクトップにアイコンを配置して、必要なときにのみ実行することは可能ですか? また、既存の顧客のために SQL Server データベースから変更されたデータを更新することはできますか?

私はあなたが提供できるどんな助けにも前もって感謝します!!!

4

1 に答える 1

2

原則として、データをプッシュするよりもプルする方がはるかに簡単です。

これは、QBPOSシステムでスケジュールを設定し、MSSQLServerにクエリを実行して必要なデータを収集することが望ましいことを意味します。しかし、私はQBPosについて何も知らず、これを行う方法について、またはそれが可能であるとしてもコメントすることはできません。

別の方法は、SQLServerからQBPOSに一度に1つのレコードをプッシュすることです。これは確かに可能ですが、遅いと思います...

  1. 自動化されたプロセスが使用するLOGINをQBPOSサーバーに作成します
  2. MS SQL Serverで同じログイン(同じパスワードを使用)を作成します
  3. QBPOSに接続するMSSQLServer上にリンクサーバーを作成します
  4. レコードを適切なQBPOSテーブルに挿入するストアドプロシージャを作成します
  5. MS SQL Serverのエージェントスケジューラに移動し、毎分起動する新しいジョブを作成します
  6. そのジョブを設定して、ストアドプロシージャを実行します

(コードは一度にデータセット全体をプッシュしているように見えるかもしれませんが、SQL Serverのプロファイルを作成すると、多くの個別の挿入/更新/削除コマンドが実行されていることがわかります。これが、二つ。)


SQL Serverへの変更だけでQBPOSサーバーを更新するには、次のような操作を行う必要があります...-
各変更が発生したタイミングを記録します(削除、挿入、更新)
-最後の変更のタイムスタンプをQBPOSサーバーに保存します受信
した-SQLServerストアドプロシージャのその値を確認して、プッシュする変更を決定します

注:QBPOSデータベースはバックアップなどから復元できるため、「プッシュされたもの」と「受信されたもの」には違いがあります。つまり、「最後に受信したデータ」の値QBPOSデータベースに保存されます。


これらすべての正確なソリューションをスクリプト化するとかなりのスペースが必要になるため、この回答は意図的にかなり高レベルです。なじみのない用語や概念がある場合は、Books OnlineまたはGoogleでそれらを検索し、自分で管理できるものを確認して、少し遊んでみることをお勧めします。この種のことでは、他の誰かから明示的な指示を単にコピーするのではなく、自分が何をしているのか、そしてその理由を知ることが非常に重要です。

于 2011-12-23T09:21:13.610 に答える