使用存储过程访问DBF数据库文件

要点:构造一条SQL语句字符串,各部分采用单引号括起来,原来单引号的地方变双引号,N表示构造的字符串是nvarchar类型

1、不带参数的写法

如:

select  PCDM,PCMC  from   openrowset ( ' MSDASQL ' , ' Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=D:\AA\ ' , ' select * from PC ' )

使用存储过程:

create     proc  p_DBFSelect
@path   varchar ( 2000 ),
@fname   nvarchar ( 200 )
as
declare   @sql   nvarchar ( 4000 )
set   @sql = N ' select PCDM,PCMC from openrowset( '' MSDASQL '' , '' Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB= ' + @path + N ''' , '' select * from  ' + @fname + N ''' ) '
exec ( @sql )
GO

2、带参数的写法

如:

select  ZYDM  from   openrowset ( ' MSDASQL ' , ' DDriver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=D:\AA\ ' , ' select * from T_JHK ' where  ZYDM = @ZYDH   and  KLDM = @KLDM

使用存储过程:

create   proc  p_SelectZYDMByZYDH
@path   varchar ( 2000 ),
@ZYDH   varchar ( 10 ),
@KLDM   varchar ( 2 )
as
declare   @sql   nvarchar ( 1000 )
set   @sql = N ' select ZYDM from openrowset( '' MSDASQL '' , '' Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB= ' + @path + N ''' , '' select * from T_JHK '' ) where ZYDH= ' + @ZYDH + N '  and KLDM= ' + @KLDM
exec ( @sql )
GO

 

你可能感兴趣的:(存储过程)