bağlı sunucu olarak SQL Server visual foxpro veritabanı ekleme

Bu makalede, Visual FoxPro'dan bağlantılı sunucu olarak program aracılığıyla Visual FoxPro veri kaynağının nasıl ekleneceği ve sorguleneceği açıklanır.

Orijinal ürün sürümü: Visual FoxPro
Özgün KB numarası: 199131

Özet

SQL Server 7.0 ve SQL Server 2000, dış veri kaynaklarının bağlı sunucu olarak eklenmesine olanak tanır. Bu özellik, OLE DB veri kaynaklarına yönelik dağıtılmış, heterojen sorgulara erişim sağlar. Bu makalede Visual FoxPro veri kaynağını program aracılığıyla Visual FoxPro'dan bağlantılı sunucu olarak ekleme ve sorgulama adımları gösterilmektedir.

Daha fazla bilgi

sp_addlinkedserverSQL Server 7.0 ve SQL Server 2000'de kullanıma sunulan yeni bir saklı yordamdır. sp_addlinkedserver , OLE DB veri kaynaklarına yönelik dağıtılmış, heterojen sorgulara erişim sağlayan bağlı bir sunucu oluşturur.

Transact - SQL'den bağlı sunucu ekleme söz dizimi:

 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.

Aşağıdaki kod parçacığı, SAMPLES\DATA dizinindeki Visual FoxPro veritabanını Testdata.DBC bağlı sunucu olarak SQL Server ekler. Bu kod parçacığı, Visual FoxPro ve SQL Server'nin aynı makinede çalıştırıldığını varsayar.

Not

Kullanıcı adı kullanıcı adı, veritabanında bu işlemleri gerçekleştirmek için izinlere sahip olmalıdır.

 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

Kod parçacığını çalıştırdıktan sonra SQL Server Enterprise Yöneticisi'ni açın ve Bağlı Sunucular düğümünü genişletin. VFP adlı bağlı bir sunucu eklendi.

Başvurular

hakkında sp_addlinkedserverdaha fazla bilgi için sp_addlinkedserver Transact - SQL Başvuru Yardımı dosyasında öğesini arayın.