Экспорт dbf в SQL Server через ADO - VB
Формулировка задачи:
Подскажите причину ошибки.
Хочу построить запрос на создание таблицы в SQL Server2000 на основе файла dbf (файл на локальной машине). Есть причины, из-за которых нельзя этого сделать, используя средства сервера (dts,linked servers, OPENROWSET).
Поэтому использую ADO на клиенте. Воспользовался подсказкой msdn для Excel. Нет никаких вопросов - все работает нормально.
Private Sub sqlExel()
Dim strSQL As String
Dim lngRecsAff As Long
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=D:\rs.xls;" & _
"Extended Properties=Excel 8.0"
strSQL = "select * into [odbc;Driver={SQL Server};Server=…;Database=…; " & _
"UID=…;PWD=…].a1a from [Лист1$A1:B12]"
cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
cn.Close
Set cn = Nothing
End Sub
Делаю все то же для dbf:
Function SQLdbf() As Boolean
Set cnDBF = New ADODB.Connection
cnDBF.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=D:\;Extended Properties=dBase IV;"
strSQL = "select * into [odbc;Driver={SQL Server};Server=…;Database=…; " & _
"UID=…;PWD=…].BALAVAN from BALAVAN "
cnDBF.Execute strSQL, lngRecsAff, adExecuteNoRecords
cnDBF.Close
Set cnDBF = Nothing
End Function
Получаю ошибку
"В качестве входных данных запрос должен иметь хотя бы одну таблицу или запрос". Однако, если убрать все содержимое кв.скобок прекрасно создается копия таблицы. Код ошибки '-2147467259 (80004005)' трактуется как "неопределенная ошибка". Получается, что без обращения к SQL Server таблица создается, а содержимое скобок отрабатывает нормально для Excel. Куда деваться? Система Win2000. VB-5.0.
Хочу построить запрос на создание таблицы в SQL Server2000 на основе файла dbf (файл на локальной машине). Есть причины, из-за которых нельзя этого сделать, используя средства сервера (dts,linked servers, OPENROWSET).
Поэтому использую ADO на клиенте. Воспользовался подсказкой msdn для Excel. Нет никаких вопросов - все работает нормально.
Private Sub sqlExel()
Dim strSQL As String
Dim lngRecsAff As Long
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=D:\rs.xls;" & _
"Extended Properties=Excel 8.0"
strSQL = "select * into [odbc;Driver={SQL Server};Server=…;Database=…; " & _
"UID=…;PWD=…].a1a from [Лист1$A1:B12]"
cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
cn.Close
Set cn = Nothing
End Sub
Делаю все то же для dbf:
Function SQLdbf() As Boolean
Set cnDBF = New ADODB.Connection
cnDBF.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=D:\;Extended Properties=dBase IV;"
strSQL = "select * into [odbc;Driver={SQL Server};Server=…;Database=…; " & _
"UID=…;PWD=…].BALAVAN from BALAVAN "
cnDBF.Execute strSQL, lngRecsAff, adExecuteNoRecords
cnDBF.Close
Set cnDBF = Nothing
End Function
Получаю ошибку
"В качестве входных данных запрос должен иметь хотя бы одну таблицу или запрос". Однако, если убрать все содержимое кв.скобок прекрасно создается копия таблицы. Код ошибки '-2147467259 (80004005)' трактуется как "неопределенная ошибка". Получается, что без обращения к SQL Server таблица создается, а содержимое скобок отрабатывает нормально для Excel. Куда деваться? Система Win2000. VB-5.0.
Решение задачи: «Экспорт dbf в SQL Server через ADO»
textual
Листинг программы
cnDBF.CursorLocation=adUseClient
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д