2013-06-24 2 views
0

delphi zeoslib를 사용하여 데이터베이스에서 테이블을 읽고 다른 서버에 다시 쓸 수 있습니까?Delphi ZEOSlib : 테이블에서 읽고 다른 데이터베이스에 쓰기

나는 테이블을 읽고 결과 세트를 다시 써야한다고 생각하지만 어떻게 가능 할까? 은 내가 zquery했다 :

나는 다음에 대한 생각 zconnection1으로, Select * from table1을 나는 zconnection2에, 다시 다른 데이터베이스에 결과를 삽입 할.

나는 mysql 데이터베이스를 사용합니다.

+1

물론 가능합니다. 아마도 많은 도움이되지는 않지만 "가능한가요?"를 두 번 이상 묻지 않았습니다. 여기에서 도움이 필요하면 질문에 대해 구체적으로 설명하고 도움을 줄 수있는 정보를 제공해야하며 적어도 자신을 알아 내려고 노력해야합니다. 적어도 테이블에서 읽는 코드가 있습니까? 우리가 사용할 수있는 다른 데이터베이스에 대한 정보가 있습니까? 귀하의 질문을 편집 해 주시면 해결책을 찾도록 도와 드리겠습니다. 감사. –

+0

자세한 내용은 편집 됨. – Woodyka

+0

내 말은, db1에서 테이블을 읽고 동일한 테이블을 가진 다른 db에 씁니다. – Woodyka

답변

0

MySQL (또는 Zeos)에서 교차 서버 쿼리를 지원하는지 여부는 알 수 없습니다. MySQL documentation은 그 부분에 응답해야합니다. Zeos가 DBMS를 통과하도록 허용하는지 여부는 내가 대답 할 수없는 질문입니다. 오픈 소스 제품을 사용할 때의 단점 중 하나는 보통 이런 것들을 알려주는 문서가 부족하다는 것입니다. 마음에 와서

var 
    i: Integer; 
begin 
    ZQuery1.SQL.Text := 'SELECT * FROM MyDataOnServer1'; 
    while not ZQuery1.Eof do 
    begin 
    ZTable1.Append; 
    for i := 0 to ZQuery1.FieldCount - 1 do 
     ZTable1.Fields[i].Value := ZQuery1.Fields[i].Value; 
    end; 
    ZTable1.Post; 
end; 

다른 두 possiible 대안 : 나는 (아주 큰 테이블에 대한 약간 느린 것이지만) 확인이 작동 것 알고

한 가지 방법은 행에 의해 행하기위한 것이다 SELECT...INTO이 지원되는 경우, 임시 디스크로 선택할 수 있습니다 (어느 쪽도 어느 나는 MySQL의 또는 ZEOS가 지원하는지 여부를 알고)

  • 수출 백업으로 서버 1에서 테이블이며,
  • 를 서버 2로 복원 파일을 server1에 넣은 다음 INSERT FROM 임시 디스크 테이블을 server2에 넣으십시오.
+0

단지 Zeos가 아닙니다. 여기저기서 쿼리 텍스트를 전달하는 단순한 브리지입니다. 기본 RDBMS 서버 (다를 수 있음)도이를 지원해야합니다. –

+0

@ Arioch'The : DBMS는 이에 영향을 미치지 만 데이터 액세스 라이브러리는 기능을 제한하여 DBMS 시스템간에 유연한 지원을 제공합니다. Zeos가 기본 DBMS가 지원하는 경우에도 Zeos가이를 지원할 것이라는 단서가 없습니다. 이전 BDE는 플랫폼 차 이점을 감추었지만 (SQL에서 수행 할 수있는 것에 대한 제한을 두는) 자체 SQL 구현을 제공하기 위해 사용되었습니다. 나는 그것을 분명히하고, 그것을 다소 바꿔서 편집했다. 감사. :-) –

+0

예, BDE는 이상한 짐승이었습니다. 그러나 LocalSQL은 SQL 이외의 데이터 소스 나 크로스 서버 쿼리 (비 SQL 행 생성기로 서버 다운 그레이드)에서만 사용되었다는 것을 기억합니다. 예를 들어 Interbase와 같은 SQLink를 사용할 때 ID 생성기와 같은 LocalSQL에 없었던 서버 기능을 사용했습니다. –