SQL Server에 Visual FoxPro 데이터베이스를 연결 된 서버로 추가 하는 방법


요약


SQL Server 7.0 및 SQL Server 2000에서는 외부 데이터 원본을 연결 된 서버로 추가할 수 있습니다. 이 기능을 사용 하면 OLE DB 데이터 원본에 대 한 이기종 분산 쿼리에 액세스할 수 있습니다. 이 문서에서는 visual foxpro에서 Visual foxpro 데이터 원본을 연결 된 서버로 추가 하 고 쿼리 하는 방법을 보여 줍니다.

추가 정보


sp_addlinkedserver는 SQL Server 7.0 및 SQL SErver 2000에 도입 된 새로운 저장 프로시저입니다. sp_addlinkedserver는 연결 된 서버를 만들며,이를 통해 OLE DB 데이터 원본에 대해 유형이 다른 분산 쿼리를 액세스할 수 있습니다. T-sql에서 연결 된 서버를 추가 하기 위한 구문은 다음과 같습니다.
   sp_addlinkedserver [@server =] 'server',      [@srvproduct =] 'product_name',      [@provider =] 'provider_name',      [@datasrc =] 'data_source',      [@location =] 'location',      [@provstr =] 'provider_string',      [@catalog =] 'catalog'   [@server =] 'server'            Is the name of the linked server to                                   create with sp_addlinkedserver.   [@srvproduct =] 'product_name'  Is the product name of the OLE DB data                                   source to add as a linked server.   [@provider =] 'provider_name'   Is the unique provider identifier of the                                   OLE DB provider corresponding to the                                   data source.   [@datasrc =] 'data_source'      Is the name of the data source, as                                   interpreted by the OLE DB provider.   [@location =] 'location'        Is the location of or path to the                                   database as interpreted by the OLE DB                                   provider.   [@provstr =] 'provider_string'  Is the OLE DB provider-specific.   [@catalog =] 'catalog'          Is the catalog to be used when making a                                   connection to the OLE DB provider.
다음 코드 조각은 samplTestdata 데이터 디렉터리의 DBC를 연결 된 서버로 SQL Server에 추가 하는 Visual FoxPro 데이터베이스. 이 코드 조각은 Visual FoxPro 및 SQL Server가 동일한 컴퓨터에서 실행 되 고 있는 것으로 가정 합니다. 참고 사용자 이름에는 데이터베이스에서 이러한 작업을 수행할 수 있는 권한이 있어야 합니다.
   Source_Path=IIF(VAL(SUBSTR(VERSION(),15,2))=6,HOME(2),HOME()+"SAMPLES\")   Connect_String='DRIVER={SQL Server};' + ;      'SERVER=MY_SERVER;DATABASE=PUBS;UID=UserName;PWD=StrongPassword'   gnConnHandle=SQLSTRINGCONN(Connect_String)   IF gnConnHandle > 0      * Create a command string to pass to SQL Server via SQLExec      SQLCommand="sp_addlinkedserver 'VFP','','MSDASQL',NULL,NULL,"+ ;         "'DRIVER={Microsoft Visual FoxPro Driver};" + ;         "SourceDB="+Source_Path+"DATA\TESTDATA.DBC;SourceType=DBC;NULL'"      * CREATE the LINKED Server"      Create_Linked_Server=SQLExec(gnConnHandle,SQLCommand)      IF Create_Linked_Server > 0         * The linked server was successfully created         * Run the query         =RunQuery()      ELSE         * The Linked Server either already exists or the command failed.         * Test for existence of linked server with aerror()         =AERROR(s_failed)         IF "VFP' ALREADY EXISTS."$UPPER(s_failed[1,2])            * The linked server exists, so run the query            =RunQuery()         ELSE            * The linked server doesn't exist, so display a message            =MESSAGEBOX(s_failed[1,2],32,'Failed')         ENDIF      ENDIF      =SQLDISCONN(gnConnHandle)   ENDIF   PROCEDURE RunQuery      SQLCommand="SELECT * FROM OPENQUERY(VFP,'SELECT * FROM CUSTOMER')"      QRYVal=SQLExec(gnConnHandle,SQLCommand,'SQLRESULTS')      IF QRYVal > 0         SELECT SQLResults         BROW      ELSE         =AERROR(L_Server)         =MESSAGEBOX(L_Server[1,2],32,'Query Failed')      ENDIF      RETURN
코드 조각을 실행 한 후 SQL Server 엔터프라이즈 관리자를 열고 연결 된 서버 노드를 확장 합니다. VFP 라는 연결 된 서버가 추가 된 것을 참고 하세요.

참조


Sp_addlinkedserver에 대 한 자세한 내용을 보려면 Transact-sql 참조 도움말 파일에서 "sp_addlinkedserver"를 검색 하세요.