我收到错误OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”对于链接服务器返回的消息“未指定的错误”。 [英] I got error OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server returned message "Unspecified error".
问题描述
HI,
我收到这样的错误'无法初始化OLE DB提供程序的数据源对象Microsoft.Jet.OLEDB.4.0链接服务器 ClientAc410。
用于链接服务器ClientAc410的OLE DB提供程序Microsoft.Jet.OLEDB.4.0在使用链接服务器从msaccess导入到sql时返回消息未指定错误。 >
过去两周我一直这样做。以前我用的是32位机器而没有使用64位机器。
但是现在我在32位机器上出现了这个错误。我正在服用Nework服务机并在服务器上运行。
这是我的代码
I got error like this 'Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "ClientAc410".
OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "ClientAc410" returned message "Unspecified error".' while importing from msaccess to sql using linked server.
I have been doing this for past two weeks.Previously i got in 32 bit mechine and not working on 64 bit mechine.
But Now i got this error on 32 bit mechine. I am taking Nework service mechine and running this on server.
This is my code
try
{
cmd = new SqlCommand("SP_Create");
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@servername", acc);
cmd.Parameters.AddWithValue("@datasr", path);
cmd.Parameters.AddWithValue("@table", sourcetable);
cmd.Parameters.AddWithValue("@table1", desttable);
cmd.Parameters.AddWithValue("@db", db);
cmd.CommandTimeout = 180;
cmd.Connection = cn1;
connection.Close();
if (cn1.State != ConnectionState.Open) { cn1.Open(); }
cmd.ExecuteNonQuery();
cn1.Close();
}
catch (Exception exc)
{
connection.Close();
}
这是我的存储过程
And this is my stored procedure
ALTER proc [dbo].[SP_Create](@servername nvarchar(100),
@datasr nvarchar(MAX),@table nvarchar(100),@table1 nvarchar(100),
@db nvarchar(100)) as begin EXEC sp_addlinkedserver @server = @servername,
@provider = 'Microsoft.Jet.OLEDB.4.0', @srvproduct = 'OLE DB Provider for Jet',
@datasrc = @datasr,@provstr=''exec sp_addlinkedsrvlogin @rmtsrvname=@servername,
@useself = N'false',@locallogin = NULL,@rmtuser = N'Admin',@rmtpassword = NULL
declare @sql nvarchar(MAX) set @sql= 'select * into '+@table1+' from '+@servername+'...'+@table+'
with (nolock)'Exec(@sql) declare @sql1 nvarchar(MAX) set @sql1 ='EXEC master.sys.sp_dropserver '
+@servername+',''droplogins''' exec(@sql1) end
请你解决这个错误。我在客户端机器上这样做。
Can u please resolve this error. I am doing this on client mechine.
推荐答案
cmd = new SqlCommand("SP_Create",cn1);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@servername", acc);
cmd.Parameters.AddWithValue("@datasr", path);
cmd.Parameters.AddWithValue("@table", sourcetable);
cmd.Parameters.AddWithValue("@table1", desttable);
cmd.Parameters.AddWithValue("@db", db);
cmd.CommandTimeout = 180;
cn1.open()
cmd.ExecuteNonQuery();
cn1.Close();
con.Open();
SqlCommand cmd = new SqlCommand(InsertStockTransferChild ,con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue(@ transferId,TransferId);
cmd.Parameters.AddWithValue(@ frameId,ProductId);
cmd.Parameters.AddWithValue(@ fromBranch,FromBranch);
cmd.Parameters.AddWithValue (@ toBranch,ToBranch);
cmd.Parameters.AddWithValue(@ quantity,Quantity);
返回cmd.ExecuteNonQuery();
con.Open();
SqlCommand cmd = new SqlCommand("InsertStockTransferChild", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@transferId", TransferId);
cmd.Parameters.AddWithValue("@frameId", ProductId);
cmd.Parameters.AddWithValue("@fromBranch", FromBranch);
cmd.Parameters.AddWithValue("@toBranch", ToBranch);
cmd.Parameters.AddWithValue("@quantity", Quantity);
return cmd.ExecuteNonQuery();
这篇关于我收到错误OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”对于链接服务器返回的消息“未指定的错误”。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!