Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не могу подсоеденится к файлам FoxPro через Ole DB / 19 сообщений из 19, страница 1 из 1
28.11.2006, 15:42
    #34161213
PavelT100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
XP Pro SP2, MDAC версии 2.81.1117.0
В каталоге D:\data находятся файлы Alerte.dbf, Alerte.cdx

Пишу на VB6:
Код: plaintext
1.
2.
3.
4.
5.
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset

Set cnn = New Connection
cnn.Open "Provider=MSDASQL.1;Persist Security Info=False;Driver={Microsoft Visual FoxPro Driver};UID=;SourceDB=D:\Data;SourceType=DBF;Exclusive=Yes;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"
Call rs.Open("select * from ALERTE", cnn, adOpenDynamic, adLockOptimistic, adCmdText)


После cnn.Open
cnn.Errors.Count = 3, но номера у этих ошибок равны нулю, и программа не вырабатывает исключение:

Source : Microsoft OLE DB Provider for ODBC Drivers
Desription: [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed

Source : Microsoft OLE DB Provider for ODBC Drivers
Desription: [Microsoft][ODBC Visual FoxPro Driver]Null

Source : Microsoft OLE DB Provider for ODBC Drivers
Desription: [Microsoft][ODBC Visual FoxPro Driver]Deleted


Программа работает дальше и Call rs.Open вырабатывает исключения и ошибку:
Error Number: 80040E21
Source : Microsoft OLE DB Provider for ODBC Drivers
Description: ODBC driver does not support the requested properties.


Что я сделал не так ?
...
Рейтинг: 0 / 0
28.11.2006, 15:55
    #34161285
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
Посмотрите поиск в ADO разделе, мы там приводили строки соединения с FoxPro...

На мой взгляд Вы пытаетесь вызвать ODBC , которого по умолчанию в MDAC версии 2.81.1117.0 для FoxPro нет... используйте OLE DB provider...

Good luck!
...
Рейтинг: 0 / 0
28.11.2006, 16:55
    #34161600
PavelT100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
Sergey Ch
На мой взгляд Вы пытаетесь вызвать ODBC , которого по умолчанию в MDAC версии 2.81.1117.0 для FoxPro нет... используйте OLE DB provider...

Good luck!

На другой машине, где стоит тот же самый MDAC у меня все получается, правда там стоит Windows 2000.
...
Рейтинг: 0 / 0
28.11.2006, 17:05
    #34161660
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
PavelT100 На другой машине, где стоит тот же самый MDAC у меня все получается, правда там стоит Windows 2000.
Вообще-то в оригинальном MDAC к W2k драйвер VFP 6.0 ODBC шел по умолчанию. После Upgrade он не удаляется из системы.

Можно скачать драйвер ODBC для MS Visual FoxPro с их сервера, но он очень старый и я бы рекомендовал изменить программы и использовать MS VFP Ole DB Provider 9.1...

Good luck!
...
Рейтинг: 0 / 0
28.11.2006, 17:51
    #34161877
PavelT100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
Sergey Ch[quot PavelT100]
Можно скачать драйвер ODBC для MS Visual FoxPro с их сервера...


А можно пояснить, причем тут драйвер ODBC для MS Visual FoxPro, если я пользуюсь MSDASQL ? Кстати, я нашел сейчас компьютер с XP и тем же MDAC и все там работает.
...
Рейтинг: 0 / 0
28.11.2006, 19:15
    #34162139
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
PavelT100 А можно пояснить, причем тут драйвер ODBC для MS Visual FoxPro, если я пользуюсь MSDASQL ? Есть подозрение, что это выражение
Код: plaintext
Provider=MSDASQL. 1 ;Persist Security Info=False;
стандартный синтаксис для MDAC в случае использования ODBC... Так как он никакого отношения к dbf и тем более к FoxPro не имеет... Скорее всего принимается следующее выражение к работе
Код: plaintext
Driver={Microsoft Visual FoxPro Driver};
хотя я могу и ошибаться...

А на другой машине может быть кем-то был установлен ODBC для FoxPro? Как я писал выше FoxPro входил до версии MDAC 2.6, потом его исключили и рекомендовали использовать Ole DB... Если есть желание - проще переписать под Ole DB...
...
Рейтинг: 0 / 0
28.11.2006, 19:37
    #34162187
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
...
Рейтинг: 0 / 0
29.11.2006, 21:04
    #34165544
Igor86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
Я из VB 6 подключаюсь так
Set cnn = New Connection
cnn.ConnectionString="Provider=VFPOleDb;DSN="+имя источника
cnn.Open

Работает без проблем.
Это подключение черех Фоксовый OLEDB.
...
Рейтинг: 0 / 0
29.11.2006, 22:23
    #34165599
M.Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
Igor86 , не верю
...
Рейтинг: 0 / 0
30.11.2006, 12:39
    #34166774
PavelT100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
Скачал у MS файл vfpoledb.exe, установил драйвер vfpoledb.dll.

Пишу:
Код: plaintext
1.
2.
3.
4.
5.
Dim cnnMDQ As ADODB.Connection
cnnMDQ.Open "Provider=VFPOLEDB.1; Data Source=D:\DATA;"
...
Dim rm As New ADODB.Recordset
rm.Open "select * from ALERTE where <....>", cnnMDQ, adOpenDynamic, adLockOptimistic, adCmdText
rm.Fields( 5 ) = "<...>"

Последняя строка вырабатывает исключение с ошибкой :
Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.

При этом:
rm.CursorType = adOpenStatic, хотя я четко поставил adOpenDynamic
rm.LockType = adLockReadOnly, хотя я четко поставил adLockOptimistic
Что я делаю не так ?
...
Рейтинг: 0 / 0
01.12.2006, 09:18
    #34169306
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
Была подобная проблемы со старым ASP, как решил уже не помню - брал параметры из HELP от VFP Ole DB Provider и одно из сочетаний дало положительный результат...

Но давно это было и после того как перешел на ASP.NET - прболемы ушли совсем. Вот пример из VB.NET может поможет:
Код: plaintext
"provider=vfpoledb.1;Data Source=C:\ws_message\server\DBWS.dbc;Mode=ReadWrite|Share Deny None;" 

Good luck!
...
Рейтинг: 0 / 0
01.12.2006, 09:35
    #34169333
Andrey Ts
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
Используйте ваш исходный код, только предварительно установите ODBC for VFP в системе:

лечится копированием vfpodbc.dll (в SYSTEM32, с машины, где стоит Win 2000 и MDAC ) и его установкой:

copy vfpodbc.dll %SystemRoot%\system32\vfpodbc.dll /y

ODBCConf /a {REGSVR %SystemRoot%\System32\vfpodbc.dll}

То же самое под Windows XP, Server 2003
...
Рейтинг: 0 / 0
01.12.2006, 14:49
    #34170723
PavelT100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
Однако заработало.
Перед открытием recordset я поставил
Код: plaintext
rm.CursorLocation = adUseClient 
и заработало.
Однако вопросы все же есть.
rm.LockType = adLockOptimistic, как я и указывал но
rm.CursorType = adOpenStatic по прежнему , хотя я четко поставил adOpenDynamic ?
Записи обновляются успешно, что мне и нужно, но кто-нибудь может прокоментировать происходящее ?
...
Рейтинг: 0 / 0
01.12.2006, 17:59
    #34171472
Igor86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
Если необходимо делать Update, используя Фоксовый OLEDB, то надо знать его ограничения.
Например, Фоксовый OLEDB не поддерживает динамический RecordSet (если не изменяет память, то только типы adOpenKeySet и adOpenStatic), соответственно и с блокировками. Еще зависит от того какой курсор (клиентский или серверный). Однако можно в статический RecordSet добавлять записи без проблем и сохранять тоже, ну и соответственно изменять и сохранять.
...
Рейтинг: 0 / 0
04.12.2006, 12:18
    #34174278
PavelT100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
Andrey TsИспользуйте ваш исходный код, только предварительно установите ODBC for VFP в системе:

лечится копированием vfpodbc.dll (в SYSTEM32, с машины, где стоит Win 2000 и MDAC ) и его установкой:

copy vfpodbc.dll %SystemRoot%\system32\vfpodbc.dll /y

ODBCConf /a {REGSVR %SystemRoot%\System32\vfpodbc.dll}

То же самое под Windows XP, Server 2003

Замечательно, но в системе у меня есть vfpodbc.dll, и драйвер Microsoft Visual FoxPro Driver установлен в Control Panel|Administative Tools|Data Sources(ODBC) - закладка Drivers.

Однако конструкция :
Код: plaintext
cnn.Open "Provider=MSDASQL.1;Persist Security Info=False;Driver={Microsoft Visual FoxPro Driver};UID=;SourceDB=D:\Data;SourceType=DBF;Exclusive=Yes;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"
не работает как я и писал в первом сообщение.
...
Рейтинг: 0 / 0
04.12.2006, 19:38
    #34175912
MSDN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
Ты вообще при создании в упор видел это ? А зачем это? А что накуй оно оно вообще нужно ?
...
Рейтинг: 0 / 0
04.12.2006, 19:39
    #34175914
MSDN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
...
Рейтинг: 0 / 0
05.12.2006, 11:56
    #34177008
PavelT100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
MSDNТы вообще при создании в упор видел это ? А зачем это? А что накуй оно оно вообще нужно ?
Не понял, о чем вы ?
...
Рейтинг: 0 / 0
05.12.2006, 18:22
    #34178596
Igor86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу подсоеденится к файлам FoxPro через Ole DB
Бросьте Вы этот Фоксовый ODBC. Его MS уже давно не поддерживает. И Фоксовские таблицы и БД он поддерживает только шестой версии. Работайте через Фоксовый OLEDB. У меня с ним проблем не наблюдается (начиная с версии для 9 Фокса)
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не могу подсоеденится к файлам FoxPro через Ole DB / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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