错误 3146:ODBC--传递批量插入调用失败
Error 3146: ODBC--Call Failed with pass-through bulk insert
我正在尝试使用传递查询执行批量插入语句。我有以下代码:
sSQL = "BULK INSERT tbl_Name "
sSQL = sSQL & "FROM 'C:\Users\UserName\Desktop\File.txt' "
sSQL = sSQL & "WITH "
sSQL = sSQL & "("
sSQL = sSQL & "FIELDTERMINATOR = ',', "
sSQL = sSQL & "ROWTERMINATOR='\n'"
sSQL = sSQL & ");"
Set db = CurrentDb
Set qdf = db.CreateQueryDef("")
qdf.Connect = db.TableDefs("dbo_tbl_Name").Connect
qdf.ReturnRecords = False
qdf.SQL = sSQL
qdf.Execute dbFailOnError
Set qdf = Nothing
Set db = Nothing
我得到的错误是:3146
,描述为 ODBC--call failed.
如果我将 sSQL 语句更改为 INSERT STATEMENT 或 SELECT 语句,查询执行得很好。
为什么我的 BULK INSERT 在 PASS through 查询中不起作用?我打印出我的 sSQL 字符串以确保它是正确的,它似乎是:
BULK INSERT tbl_Name FROM 'C:\Users\UserName\Desktop\File.txt' WITH (FIELDTERMINATOR=',', ROWTERMINATOR='\n');
我找到了这个问题的答案。显然,ODBC 连接有超时设置。通过添加代码 qdf.ODBCTimeout = 900 '15 Min
可以完成批量插入。
感谢大家的时间!
我正在尝试使用传递查询执行批量插入语句。我有以下代码:
sSQL = "BULK INSERT tbl_Name "
sSQL = sSQL & "FROM 'C:\Users\UserName\Desktop\File.txt' "
sSQL = sSQL & "WITH "
sSQL = sSQL & "("
sSQL = sSQL & "FIELDTERMINATOR = ',', "
sSQL = sSQL & "ROWTERMINATOR='\n'"
sSQL = sSQL & ");"
Set db = CurrentDb
Set qdf = db.CreateQueryDef("")
qdf.Connect = db.TableDefs("dbo_tbl_Name").Connect
qdf.ReturnRecords = False
qdf.SQL = sSQL
qdf.Execute dbFailOnError
Set qdf = Nothing
Set db = Nothing
我得到的错误是:3146
,描述为 ODBC--call failed.
如果我将 sSQL 语句更改为 INSERT STATEMENT 或 SELECT 语句,查询执行得很好。
为什么我的 BULK INSERT 在 PASS through 查询中不起作用?我打印出我的 sSQL 字符串以确保它是正确的,它似乎是:
BULK INSERT tbl_Name FROM 'C:\Users\UserName\Desktop\File.txt' WITH (FIELDTERMINATOR=',', ROWTERMINATOR='\n');
我找到了这个问题的答案。显然,ODBC 连接有超时设置。通过添加代码 qdf.ODBCTimeout = 900 '15 Min
可以完成批量插入。
感谢大家的时间!