подключение к DBF через ADO #552153


#0 by drandulet78
всем добрый день. помогите умные головы плиз. есть база VFP dbf, задача к ней подлючится, сделать выборку. подключаюсь строкой  ado.Open("DRIVER=Microsoft FoxPro VFP Driver (*.dbf); Exclusive=No; SourceType=DBF; SourceDB=C:"); при попытке прочитать значение полей типа NUMERIC говорит что этот тип переменной не поддерживается. погуглив пытался сделать преобразование в строку сразу при выборке  base = ado.Execute("Select str(RECEPT.god) from RECEPT" ); , но опять выходит ошибка ADODB.Recordset: Не удается найти объект в семействе, соответствующий требуемому имени или порядковому номеру. вот укороченный текст обработки ADO = CreateObject("ADODB.Connection"); КонецЦикла; подкажите плиз где тут что не так
#1 by PaulBC
Пока Base.EOF=0 Цикл ...
#2 by Ёпрст
как-то использовать адо в 1с-ине, это прошлый век..
#3 by drandulet78
с "base.MoveFirst; " к сожалению не помогло. если в выборке брать только строковые поля то всё работает. Ёпрст3 подскажи тогда свой вариант....буду признателен
#4 by Ёпрст
Либо 1cpp + фоксовый провайдер, либо 1sqlite.. Там и типизация к типам 1с и метапарсер имён и запрос в качестве поставщика данных для табличного поля и.. т.д.
#5 by ado
Во изврат то, перебор одной таблички через ADO делать. Чем XBase не угодил?
#6 by drandulet78
там не просто перебор, это я привел просто пример для описание проблемы, а насчет "1cpp + фоксовый провайдер" спасибо. сейчас покопаю в ту сторону
#7 by ado
Ну, тогда пардон. А тогда попробуй приветение типов с помощью CAST сделать, эта функция в стандарт SQL входит, в отличии от str. Про CAST вот здесь, например:
#8 by ado
+ А str -- это сугубо эмэс эскуэля функция, не удивительно, что на другом провайдере она не работает.
#9 by Ёпрст
у него же фок.. там str есть всегда
#10 by ado
Да? Ну, тогда фикевознает. Но я бы попробовал через CAST написать.
#11 by Ёпрст
я бы попробовал вообще без приведения типа. :)
#12 by drandulet78
пробовал я и с CAST, выходит таже ошибка
#13 by Ёпрст
#14 by orefkov
7ка не умеет работать с COM-типом NUMERIC. В запросе преобразуй поле в строку, в 1С - обратно. типа select str(numfield, 10, 2)
#15 by drandulet78
да перелопатил я эти примеры уже вдоль и поперек, там описывается работа с другим провайдером, а у каждого провайдера свои видимо нюансы и своя интерпретация языка запросов, и видно не могу подобрать ключик
#16 by drandulet78
и вот это тоже не помогло
#17 by orefkov
+ А, ступил, не до конца прочитал select str(god) as God
#18 by drandulet78
ладно, всем огромное спасибо, сейчас поробую 1Срр копать, о результатах отпишусь
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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