Имя: Пароль:
1C
1C 7.7
v7: Прямой запрос к дбф
0 malev35
 
09.11.12
12:05
Есть следующий код:

DBConn = CreateObject("ADODB.Connection");
DBConn.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + КаталогИБ() + ";" + "Extended Properties=""DBASE IV;"";");          
//Делаем выборку
СтрЗапроса="Select * from [SC924#DBF] Where DESCR='"+СокрЛП(РеквКарты)+"'";
РезЗапроса = DBConn.Execute(СтрЗапроса);

вываливается с ошибкой "Microsoft JET Database Engine: Индекс не найден." в ХР вроде работало, на Win Ser 2003 не хочет
1 malev35
 
09.11.12
12:16
без Where DESCR='"+СокрЛП(РеквКарты)+"'" тоже работает
2 Ёпрст
 
09.11.12
12:19
проще брать vfp oledb провайдер
3 Ёпрст
 
09.11.12
12:19
ну и запрос через 1cpp писать - там есть метапарсер
4 malev35
 
09.11.12
12:23
(2) как узнать установлен данный провайдер или нет, я пока ограничен в правах (Источники данных ODBC?)
(3) сначала хотел, но если и так работало на XP
5 Ёпрст
 
09.11.12
12:27
(4) тебе один хрен ставить провайдер надо, что джет оледб, что фоксовый.
6 Ёпрст
 
09.11.12
12:28
ну или 1sqlite использовать
7 malev35
 
09.11.12
12:29
(2)Если так:
DBConn.Open("Provider=vfpoledb;Data Source="+КаталогИБ()+";Collating Sequence=general;");
то = "не удается найти данного поставщика" а прав на установку нет.
(5) в (0) работает если без условия в запросе только что проверил
8 Ёпрст
 
09.11.12
12:31
Ё..

СтрЗапроса="Select * from [SC924#DBF] Where DESCR like'%"+СокрЛП(РеквКарты)+"%'";
9 Ёпрст
 
09.11.12
12:32
если че, длина наименования должна соответствовать реквизиту поиска, если точное равенство нужно (т.е добить пробелами или тримделать для дескр)
10 malev35
 
09.11.12
12:36
Вау! супер, работает!
Большое спасибо!