Подключение к dbf из 1С8 через драйвер фокспро 9 #777976


#0 by Loko
всем привет! есть старая прога (на фокспро), которая хранит информацию в дбф-файле. нужно настроить обмен: из 1С добавлять туда новые записи. проблема в том, что в этой файле есть memo поля. просто добавить через XBase не получается. установили на серваке фокспро 9. пытаюсь подключится через ADODB к файлу. не получается. Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию на серваке: windows 2012. а odbc драйвер 32 разрядный может в этом проблема?
#1 by Loko
1С на серваке тоже 64 разрядная. когда в кофигураторе создаю новый внешний источник данных, видит только драйвер скл .
#2 by Loko
со своего компа windows 7 получилось подключиться к дбф-ке. в т.ч. считать поля memo вопрос 1: в чем разница между первым моим подключением (через драйвер) и нынешним (через провайдер)? вопрос 2. все таки дело в разрядности виндовса? на серваке не работает также.
#3 by Loko
вопрос 3. как сделать запись в дбф-ку эту?
#4 by Kandellaster
скормить запросик с INSERT в Command
#5 by Loko
запрос - это просто чтение файла. а мне нужно добавить новую запись.
#6 by Гобсек
Если создать файл dbf средствами 1С, то любая версия foxpro прочитает его без проблем.
#7 by Kandellaster
СтрокаЗапрос = "INSERT INTO tablename и таки не сработает штоле?
#8 by Loko
вся проблема с полями memo. не работает 1С с этими полями.
#9 by Loko
попробую. спасибо
#10 by NorthWind
разница в том, что в первом случае вы пытаетесь использовать провайдер для odbc, который, в свою очередь, должен читать файл через драйвер odbc. Во втором случае вы используете провайдер visual fox pro, который работает с файлом напрямую.
#11 by NorthWind
Битность провайдеров должна совпадать с битностью процесса. Т.е. для сервака надо найти 64-битные провайдеры
#12 by NorthWind
или поставить 32-битный сервак, что вряд ли правильно
#13 by Loko
ок. понял. спасибо. а на сервере не работает именно из-за разрядности? вообще в природе есть фокс про 64 для виндовс сервер 2012?
#14 by NorthWind
А провайдер Access фокспрошные файлы не ест? Он на МС 64-битный лежит...
#15 by NorthWind
Вообще поскольку ADO/OLEDB технология от Майкрософт, то я там бы и поискал провайдеров, могут быть вполне
#16 by Гобсек
В нулевые годы Microsoft заявила, что разрабатывать 64-разрядную версию foxpro считает нецелесообразным и тем самым похоронила foxpro.
#17 by Loko
смотрю на серваке в администрировании "Источники данных ODBC (64-разрядная версия)" там в драйверах только SQL Server стоит.
#18 by Loko
ошибку выдает: Произошла исключительная ситуация (Microsoft OLE DB Provider for Visual FoxPro): Must specify additional parameters.
#19 by Loko
а, понял. я там наименования полей не указал. только значения.
#20 by Loko
не идет все равно. не добавляется запись. видимо, как понимаю надо описать типы полей. Как это сделать?
#21 by Loko
Произошла исключительная ситуация (Microsoft OLE DB Provider for Visual FoxPro): Data type mismatch.
#22 by Горогуля
покажи уже какие значения и куда пытаешься писать
#23 by Loko
там где тест - тип строка, где цифра - тип число, где фалсе - булево, где улан-удэ - мемо.
#24 by Горогуля
такое впечатление, что сплошь строки пытаешься писать
#25 by Loko
т.е. только строку надо в кавычках? число без? а мемо и булево?
#26 by NorthWind
ну не стоит - найдите и поставьте
#27 by Loko
в написали, что нету 64-ой
#28 by Горогуля
не скажу. 'false' - ну явно строка же ;)
#29 by NorthWind
посмотрите в сторону провайдера для Access, вполне может быть что он делает то что вам надо. Он 64-битный - есть, скачивается с MS бесплатно
#30 by Loko
точно .f. или .t. надо
#31 by Loko
ок
#32 by Loko
в общем, получилось добавить запись) неправильно указывал значения. строка в одинарных кавычках, число без кавычек через точку в дробной части, булево - .f. или .t. теперь осталось разобраться с разрядностью...
#33 by Горогуля
>просто добавить через XBase не получается. оно как-то аргументирует?
#34 by Loko
XBase не работает с типом поля memo
#35 by Kandellaster
каким боком у тебя там улануде ?))
#36 by Loko
улан-удЭЭЭЭЭЭ. живу здесь
#37 by Loko
еще вопрос возник. а есть какие-нить механизмы блокировки дбф-файла в момент когда я записи свои буду добавлять?
#38 by Kandellaster
я тоже там, живу
#39 by Гобсек
Если мне память не изменяет, то foxpro при начале добавления записи автоматически делает блокировку заголовка и снимает по окончании. По логике в твоем случае эту работу автоматически должен делать драйвер.
#40 by Loko
ок
#41 by Loko
пробую через акцес: не открывается. ошибка: {ВнешняяОбработка.ВыгрузкаВДБФ.Форма.Форма.Форма}: Ошибка при вызове метода контекста (Open)     ОлеДБ.Open(Соединение); по причине: Произошла исключительная ситуация (Microsoft Access Database Engine): Could not find installable ISAM. провайдера мож неправильно указываю?
#42 by Горогуля
симптомы, причины, решения...
#43 by Loko
да похоже нельзя открыть дбв через акцесс провайдер...
#44 by Loko
дбф
#45 by Loko
СтрокаПодключения="DRIVER={Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx)};SourceDB=\1cdataBulat; SourceType=DBF; Exclusive=No;BackgroundFetch=Yes;Collate=Russian;Null=No;Deleted=Yes;"; а вот так соединение проходит) только новая ошибка синтаксиса при добавлении записи: Syntax error (missing operator) in query expression '.f.'. как булево записывается в акцесе?
#46 by ovrfox
Можно, но только стандарта DBASE III (без полей memo)
#47 by SSSSS_AAAAA
Боже мой, сколько (уж извините за резкость) чуши на ровном месте... 1. Фокс только 32-битный  и дрова к нему тоже только 32-битные. 2. Список 32-битных дров на 64-юитных системах отдельный и никак не связан со списком 64-битных дров. 3. OLE DB Provider и ODBC - две разных технологии построения драйверов доступа к базам данных. конкретно для фокса ODBC драверы дрвнее мамонтов. Все фоксовые форматы дбф поддерживает только VFP OLE DB Provider. 4. Во спасение от будущих граблей :) - даты надо писать в формате {^yyyy-mm-dd} В принципе, сего должно хватить для решения обсуждаемой пробемы. Разумеется, если это использовать с головой. :_
#48 by Loko
это мы уже выяснили. с 32-х битного виндовса нормально подключаюсь через VFP OLE DB Provider. все работает. ты уж извини меня неумного, но то, что ты перечислил - все это уже мы выяснили выше. конкретно как с сервера 64 разрядного подключится к дбф-ке?
#49 by SSSSS_AAAAA
Добавчик: 5. В подавляющем большинстве случаев сервер 1с 32-битный и потому во всех этих случаях ни о каких 64-битных дровах не может быть и речи.
#50 by Loko
я сразу написал в первом посте что у нас сервер 1С 64 разрядный
#51 by SSSSS_AAAAA
Да, похоже, таки еще не выяснили, раз такой вопрос задаешь. Ну так и что непонятно из ? 64-битные приложения в принципе не умеют пользоваться 32-битными дровами. Работать исключительно из 1с-вского клиента, даже если он и вместе сервером 1с на одной машине.
#52 by NorthWind
похоже, что в гугле вас забанили.
#53 by NorthWind
единственное что - я, честно сказать, уже плохо помню, получится там мемо-поля читать или нет.
#54 by SSSSS_AAAAA
Получится, если строку коннекта сменит на рабочую с VFP OLE DB Provider.
#55 by Loko
как понял dbf не открываются через этот провайдер в 64-разрядной системе.
#56 by Loko
на локальной базе все норм работает. на серваке: {ВнешняяОбработка.ВыгрузкаВДБФ.Форма.Форма.Форма}: Ошибка при вызове метода контекста (Open)     DBConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;" + по причине: Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.
#57 by Ёпрст
дык поставь его, на серваке то. Чтоб хотя бы в udl был виден
#58 by Loko
подскажите синтаксис добавления даты в моем случае? "INSERT INTO DOGOVOR VALUES ("+ДатаВ+")" ошибка синтаксиса говорит
#59 by Ёпрст
Вот к такому виду приводи:
#60 by Loko
т.е. дату мне так преобразовывать до инсерта: ?
#61 by Loko
т.е.
#62 by Loko
не идет так. Произошла исключительная ситуация (Microsoft OLE DB Provider for Visual FoxPro): Произошла одна или несколько ошибок во время обработки команды.
#63 by Горогуля
видал в интернетах приколы по поводу даты. ^ перед или за { или что-то этакое.. ищи
#64 by Горогуля
+ в этой ветке тебе говорили даже
#65 by Loko
ага в 47 увидел, попробую. спасиб
#66 by Горогуля
мущина! здесь же чат, а кто читает вчерашнее - тот лох
#67 by Loko
ну не прочел. бывает. запись, в общем, идет. но даты пустые...
#68 by Горогуля
наверное, что-то не так, не?
#69 by Loko
ага, разобрался. числовые группы убрал в году) все, работает. всем спасибо!
#70 by Горогуля
мда.. спасибо тебе (это не сарказм). у меня пока сохраняется вера в человечество. пока правильного намёка достаточно. и ответного "спасибо", конечно ;)
#71 by Ёпрст
всё работает:
#72 by Loko
всем привет! это снова я) в общем, получилось подключиться к дбф-ке через Provider = Microsoft.Ace.OLEDB.12.0 с сервака64. но проблема в том, что с мемо полями, как я понял, этот провайдер не работает (другие дбф-ки без мемо полей читает норм). все-таки как Епрст подключается через Provider=VFPOLEDB.1? у меня упорно провайдера не видит. драйвер установлен также по ссылке как в . скидываю скрин источников данных на серваке, смущает дата драйвера (1999 год). может в этом проблема?
#73 by Loko
вот здесь такая же проблема была, но там мемо полей не было. и тогда у Епрсты все ок было...
#74 by Ёпрст
я хз, чего там у вас за серваки, у нас 2012 x64, хотя и на  2003 x64 hf,jnftn/
#75 by Loko
а можете скрин сделать источников одбс как у меня в ?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С