|
|
|
экспорт dbf в SQL Server через ADO
|
|||
|---|---|---|---|
|
#18+
Подскажите причину ошибки. Хочу построить запрос на создание таблицы в 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2006, 13:03 |
|
||
|
экспорт dbf в SQL Server через ADO
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2006, 13:11 |
|
||
|
экспорт dbf в SQL Server через ADO
|
|||
|---|---|---|---|
|
#18+
Это поиск принципиального пути решения. Количество файлов,их имена и мн.др. переменны. Параметризовать пакет я могу, а вот воспользоваться процедурой ...master..xp_cmdshell 'dtsrun...я не могу из-за отсутсвия прав. Это и есть причина, о кот.писано вначале. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2006, 13:21 |
|
||
|
экспорт dbf в SQL Server через ADO
|
|||
|---|---|---|---|
|
#18+
Код: plaintext пробовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2006, 13:31 |
|
||
|
экспорт dbf в SQL Server через ADO
|
|||
|---|---|---|---|
|
#18+
Я правильно понял - вы серьезно хотите приконнектиться к DBF-у, и выполнить этот запрос? select * into [odbc;Driver={SQL Server};Server=…;Database=…;UID=…;PWD=…].BALAVAN from BALAVAN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2006, 13:34 |
|
||
|
экспорт dbf в SQL Server через ADO
|
|||
|---|---|---|---|
|
#18+
Пробовал.Не помогает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2006, 13:35 |
|
||
|
экспорт dbf в SQL Server через ADO
|
|||
|---|---|---|---|
|
#18+
Melkiades Серьезно. Естественно, вместо точек живые буквы и цифры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2006, 13:36 |
|
||
|
экспорт dbf в SQL Server через ADO
|
|||
|---|---|---|---|
|
#18+
вообще-то какой-то странный код, я сейчас посмотрел, он не может работать. Вы сначала свои dbf-ки присоедините к access базе и тогда уже можно будет делать дальше по аналогии с первым постом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2006, 14:54 |
|
||
|
экспорт dbf в SQL Server через ADO
|
|||
|---|---|---|---|
|
#18+
Согласен, этот код работать не будет. DBF поддерживает только синтаксис SQL-92, а это явно не он. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2006, 15:11 |
|
||
|
экспорт dbf в SQL Server через ADO
|
|||
|---|---|---|---|
|
#18+
Насчет связывания с access - это вариант, но довольно тяжелый. В крайнем случае воспользуюсь, спасибо. Если в SQL-92 нет таких возможностей, то м.б. есть другие? Что посоветуете? Я не знаток dBase и не знаю его сокровенных особенностей. Возможно ли что-то подобное в принципе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2006, 15:20 |
|
||
|
экспорт dbf в SQL Server через ADO
|
|||
|---|---|---|---|
|
#18+
lehle Если в SQL-92 нет таких возможностей, то м.б. есть другие? Что посоветуете? Я не знаток dBase и не знаю его сокровенных особенностей. Возможно ли что-то подобное в принципе? Вынужден буду вас огорчить - и других нету тоже. Если вы решили решать задачу приложением - придется перекидывать данные через рекордсет, используя два коннекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2006, 15:28 |
|
||
|
экспорт dbf в SQL Server через ADO
|
|||
|---|---|---|---|
|
#18+
Ну что ж, отрицательный результат тоже результат. Спасибо. По поводу двух соединений. Я без проблем создаю оба, далее считываю все содержимое таблицы dbf в рекордсет. Я в состоянии использовать этот rs в качестве источника для rs SQL Server. Как мне превратить rs SQL Server в таблицу? Буду признателен за совет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2006, 15:35 |
|
||
|
экспорт dbf в SQL Server через ADO
|
|||
|---|---|---|---|
|
#18+
создать точно такую же таблицу в сиквеле, отключить рекордсет от источника, а затем переподключить к сиквелу и проапдейтить, но может такое и не пройти,так как типы полей в dbf отличаются, но попробовать можете ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2006, 15:52 |
|
||
|
экспорт dbf в SQL Server через ADO
|
|||
|---|---|---|---|
|
#18+
воспользоваться SQL Server Enterprise Manager импорт через визард ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2006, 20:48 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=33723165&tid=2165868]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 292ms |
| total: | 533ms |

| 0 / 0 |
