am facut astfel pana la urma:
declare
@var varchar (50)
set
@var = 'dir /B C:\TMP'
if
object_id('tempdb..#tbl_dbf ') is not null drop table #tbl_dbf
create table #tbl_dbf
(
NameDbf
varchar (50)
)
insert
into #tbl_dbf
exec
xp_cmdshell @var
delete
from #tbl_dbf where NameDbf is null
declare
@dbf as varchar (50)
declare
c cursor for
select
replace(NameDbf, '.DBF', '') from #tbl_dbf
open
c
fetch
next from c into @dbf
while
@@fetch_status=0
begin
exec
Insert_DBF @dbf
fetch
next from c into @dbf
end
close
c
deallocate
c
iar procedura Insert_DBF este:
ALTER
PROCEDURE [dbo].[Insert_DBF]
(
@Fisier varchar(10))
AS
DECLARE
@SqlToRun NVARCHAR(MAX)
SET
@SqlToRun = N'INSERT INTO Table
SELECT *
FROM OPENROWSET(
''MSDASQL'',
''Driver={Microsoft dBase Driver (*.dbf)};DBQ=C:\TMP\'',
''SELECT * FROM '
+ @Fisier + ''')'
exec
(@SqlToRun)
go
si merge super ok mai trebuie doar sa descoper de ce primesc eroarea:
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "MSDASQL" for linked server "(null)" reported an error. The provider did not give any information about the error.
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".
si am o banuiala ca este de la un dll si anume sqlunirl.dll pe care l-am inlocuit cu cel de pe o statie pe care tot acest proces merge f bine doar ca nu pot da restart la server decat la noapte ca sa testez daca merge
multumesc.
alex.