2011-01-04 27 views
1

問題は、2つの異なるデータベース間で1つのテーブルを同期させたいということです。 データベース1は、MySQLサーバーを使用しています。 データベース2は、Novellサーバー上にあり、Clarionを使用しています。2つの異なるタイプのデータベース間で1つのテーブルを共有する

2人のデータベース間で1人のテーブルユーザーを共有できますか? データがデータベース1に置かれると、データベースは自動的にデータベース2と同期します。これが完了すると、table:userは両方のデータベースに同じですか?

ありがとうございます!

+1

。 –

答えて

2

Diederik、

あなたの質問は、あなたがソースコードへのアクセス権を持っているかだけで、データベースレベルで動作することができれば、我々が知らないという点で、非常に明確ではありません。

Clarionを使用してこれらのデータベースを使用している場合は、明確に言及していません。あなたがあなたの投稿にタグを付けたので、私はあなたがいると仮定しています。

また、Novellサーバーで使用しているファイル形式については言及していません。私はあなたがTopSpeedファイルフォーマットを使用していると仮定しています - ここではTopSpeedファイルフォーマットに関する情報の一部です:ほとんどのプログラマは、Clarion for Windowsの "ネイティブ"ファイルフォーマットだと思っています。そうではない。 Clarion for Windowsはネイティブファイル形式のようなものではありませんが、完全にドライバ駆動のアプローチを採用しています。 Clarion Professional Developer(DOS IDE)にはネイティブのファイル形式がありました。これはClarionの.DAT形式です。 Clarion for Windowsは、古い.DATを含むドライバまたはODBCドライバを提供するファイル形式を使用できます。

ソースコードにアクセスできれば、それはまっすぐな状況です。 Clarionでは、異なるテーブルを指す別のバッファを簡単に持つことができます。

   PROGRAM 

      MAP 
      END 

szConnMySQL  CSTRING(256) 

users_mysql  FILE, DRIVER('ODBC'), OWNER(szConnMySQL), NAME('users')   
RECORD   RERCORD                
id     LONG                
name    STRING(20)              
        END 
       END 

users_tps  FILE, DRIVER('TopSpeed'), NAME('users')   
RECORD   RECORD           
name    STRING(20)         
id     LONG           
        END             
       END 


      CODE 

      szConnMySQL = 'Driver={{MySQL ODBC 3.51 Driver};' & | 
       'Server=myServerAddress;Database=myDataBase;User=myUsername;' & | 
       'Password=myPassword;Option=3;' 

      OPEN(users_mysql, 42h) 
      OPEN(users_tps, 42h) 

      users_mysql.id = 1 
      users_mysql.name = 'GUSTAVO PINSARD' 
      ADD(users_mysql) 
      IF NOT ERRORCODE() 
       users_tps.RECORD :=: users_mysql.RECORD 
       ADD(users_tps) 

      ELSE 
       ! Do your thing 
      END 

      CLOSE(users_mysql) 
      CLOSE(users_tps)     

ソースコードにアクセスできない場合は、MySQLストアドプロシージャを作成してリモートファイルを更新する必要があります。問題は、TopSpeedファイルであるリモートファイルがMySQLサーバーから直接アクセスできることです.MySQLはそれについて何も知らないためです。

これを克服する1つの解決策は、MySQLサーバーでTopSpeed ODBCドライバを使用し、MySQL SPがODBCドライバにアクセスすることです。このような状況を逃れ、より良い統合を促進するための戦略が可能になるので、私はTopSpeed ODBCドライバが必要と考えるものを考えます。

MySQL SPに関する詳細は、このレベルのMySQL SPについては知らないので、この記事の範囲外です。それは、バックアップのために使われていない限り、データは良いことではありませんので、私はあなたが両方のアプリ/アプリの部品のためのデータベース・サーバーから同じテーブルを使用して考え始める示唆ちょうどプログラミング二重に/複製するよう

よろしく

関連する問題