|
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
|
Вау! супер, работает!
Большое спасибо!
|
|