2011-01-04 4 views
1

문제점은 두 개의 서로 다른 데이터베이스간에 하나의 테이블을 동기화하려고한다는 것입니다. 데이터베이스 1은 MySQL이 설치된 XP 서버 데이터베이스 2는 Clarion이있는 Novell 서버에 있습니다.두 가지 유형의 데이터베이스간에 1 개의 테이블을 공유하십시오.

두 데이터베이스간에 한 명의 테이블 사용자를 공유 할 수 있습니까? 데이터가 데이터베이스 1에 저장되면 데이터베이스는 자동으로 데이터베이스 2와 동기화됩니다.이 작업이 완료되면 테이블 : 사용자는 두 데이터베이스가 동일하게됩니까?

미리 감사드립니다.

+1

은/데이터가 백업에 사용하지 않는 이상 좋은 일이 아니다 복제, 그래서 난 당신이 두 응용 프로그램/응용 프로그램 부분에 대해 하나 개의 데이터베이스 서버에서 동일한 테이블을 사용하여 생각을 시작하는 것이 좋습니다. –

답변

2

디에 데 리크는

귀하의 질문은 소스 코드에 액세스 할 수 없거나 단지 데이터베이스 수준에서 작동 할 수 있다면 우리가 모르는 점에서 매우 분명하지 않다.

Clarion을 사용하여 이러한 데이터베이스를 사용하고 있는지 확실하게 언급하지 않았습니다. 나는 당신이 당신의 게시물에 태그를 지정했기 때문에 당신이 있다고 생각하고 있습니다.

또한 Novell 서버에서 사용중인 파일 형식을 언급하지 않았습니다. TopSpeed ​​파일 형식을 사용하고 있다고 가정합니다. 여기에 TopSpeed ​​파일 형식에 대한 약간의 정보가 있습니다. 대부분의 프로그래머는 Windows 용 Clarion의 "기본"파일 형식이라고 생각합니다. 그렇지 않습니다. Windows 용 Clarion은 원시 파일 형식과 같은 것은 아니지만 전적으로 드라이버 기반 접근 방식을 사용합니다. Clarion Professional Developer (DOS IDE)에는 Clarion .DAT 형식의 기본 파일 형식이 있습니다. Windows 용 Clarion은 이전 .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은이 파일에 대해 아무 것도 모르기 때문입니다.

이 문제를 극복하는 한 가지 해결책은 MySQL 서버에서 TopSpeed ​​ODBC 드라이버를 사용하고 MySQL SP에서 ODBC 드라이버에 액세스하는 것입니다. 필자는 TopSpeed ​​ODBC 드라이버가 반드시 있어야한다고 생각합니다. 이러한 상황을 피할 수있는 전략을 제공하고 더 나은 통합을 촉진 할 수 있기 때문입니다.

MySQL SP에 대한 자세한 내용은이 게시물의 범위를 벗어나며, 해당 레벨에 대한 MySQL SP도 모르기 때문에이 게시물의 범위를 벗어납니다. 단지 프로그램의 중복과 같이

감사