powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / экспорт dbf в SQL Server через ADO
15 сообщений из 15, страница 1 из 1
экспорт dbf в SQL Server через ADO
    #33722746
lehle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите причину ошибки.

Хочу построить запрос на создание таблицы в 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.
...
Рейтинг: 0 / 0
экспорт dbf в SQL Server через ADO
    #33722764
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте закачать через DTS
...
Рейтинг: 0 / 0
экспорт dbf в SQL Server через ADO
    #33722801
lehle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это поиск принципиального пути решения. Количество файлов,их имена и мн.др. переменны. Параметризовать пакет я могу, а вот воспользоваться процедурой ...master..xp_cmdshell 'dtsrun...я не могу из-за отсутсвия прав. Это и есть причина, о кот.писано вначале.
...
Рейтинг: 0 / 0
экспорт dbf в SQL Server через ADO
    #33722840
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
cnDBF.CursorLocation=adUseClient

пробовали?
...
Рейтинг: 0 / 0
экспорт dbf в SQL Server через ADO
    #33722852
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я правильно понял - вы серьезно хотите приконнектиться к DBF-у, и выполнить этот запрос?
select * into [odbc;Driver={SQL Server};Server=…;Database=…;UID=…;PWD=…].BALAVAN from BALAVAN
...
Рейтинг: 0 / 0
экспорт dbf в SQL Server через ADO
    #33722856
lehle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал.Не помогает.
...
Рейтинг: 0 / 0
экспорт dbf в SQL Server через ADO
    #33722859
lehle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkiades

Серьезно. Естественно, вместо точек живые буквы и цифры.
...
Рейтинг: 0 / 0
экспорт dbf в SQL Server через ADO
    #33723165
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще-то какой-то странный код, я сейчас посмотрел, он не может работать.
Вы сначала свои dbf-ки присоедините к access базе и тогда уже можно будет делать дальше по аналогии с первым постом.
...
Рейтинг: 0 / 0
экспорт dbf в SQL Server через ADO
    #33723222
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен, этот код работать не будет. DBF поддерживает только синтаксис SQL-92, а это явно не он.
...
Рейтинг: 0 / 0
экспорт dbf в SQL Server через ADO
    #33723254
lehle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насчет связывания с access - это вариант, но довольно тяжелый. В крайнем случае воспользуюсь, спасибо.

Если в SQL-92 нет таких возможностей, то м.б. есть другие? Что посоветуете? Я не знаток dBase и не знаю его сокровенных особенностей. Возможно ли что-то подобное в принципе?
...
Рейтинг: 0 / 0
экспорт dbf в SQL Server через ADO
    #33723293
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lehle
Если в SQL-92 нет таких возможностей, то м.б. есть другие? Что посоветуете? Я не знаток dBase и не знаю его сокровенных особенностей. Возможно ли что-то подобное в принципе?
Вынужден буду вас огорчить - и других нету тоже. Если вы решили решать задачу приложением - придется перекидывать данные через рекордсет, используя два коннекта.
...
Рейтинг: 0 / 0
экспорт dbf в SQL Server через ADO
    #33723324
lehle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну что ж, отрицательный результат тоже результат. Спасибо.

По поводу двух соединений. Я без проблем создаю оба, далее считываю все содержимое таблицы dbf в рекордсет. Я в состоянии использовать этот rs в качестве источника для rs SQL Server. Как мне превратить rs SQL Server в таблицу? Буду признателен за совет.
...
Рейтинг: 0 / 0
экспорт dbf в SQL Server через ADO
    #33723392
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создать точно такую же таблицу в сиквеле, отключить рекордсет от источника, а затем переподключить к сиквелу и проапдейтить, но может такое и не пройти,так как типы полей в dbf отличаются, но попробовать можете
...
Рейтинг: 0 / 0
экспорт dbf в SQL Server через ADO
    #33725619
воспользоваться SQL Server Enterprise Manager
импорт через визард
...
Рейтинг: 0 / 0
экспорт dbf в SQL Server через ADO
    #33726159
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 я бы сделал так: неплохо бы прочитать хотя бы половину топика перед тем, как отвечать.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / экспорт dbf в SQL Server через ADO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]