|
траблы при SQL запросе к своей DBF базе.. хелп плиз!! Ø |
☑ | ||
|---|---|---|---|---|
|
0
EuVod
28.07.05
✎
18:12
|
Пытаюсь сделать универсальную обработку, которая позволяла бы формировать/выполнять SQL запросы к 1С базе, в сеансе с которой она вызывается (через ADO). В итоге возникло 2 проблемы:
1. Не удается выполнить запрос к текущей базе (т.е. если в строке соединения указать: Data Source=КаталогИБ() (ну не буквально, а в выражении ессно). Причем к другим базам (в т.ч. открытым) достукивается нормально, а к свое в зависимости от использованного драйвера БД может написать что-то типа – «не могу открыть sc13.dbf, т.к. он занят «неизвестный пользователь»). 2. Сначала я использовала драйвер для ODBC: ConnString = "driver={Microsoft Visual FoxPro Driver};SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;SourceDb="+Path; НО, при выборке числового поля ругня (от имени _1С_ насколько я понял): 2тип переменной не поддерживается». Пытаюсь в запросе применить CAST – ругается (хотя вроде того же порядка функции MAX, MIN, TRIM, UPPER) – работают. Ладно, думаю попробуем сбоку: взял «родной» ADO провайдер: ConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Path;//Extended Properties=dBase III Ура – числовые поля схавались нормально, НО, все русские буквы выводятся кракозябрами, и не работают агрегатные и прочие функции в запросе.. на попытку MAX говорит, что не может найти индекса, на попытку UPPER выводить в окне ошибки только один символ «:». Только TRIM и работает. В итоге вопрос (наконец-то) как мне организовать запрос к свое текущей 1С DBF базе, и иметь все возможности Local SQL??? Спасибо! |
|||
|
1
Fram
28.07.05
✎
18:33
|
для начала попробуй запускать базу НЕ монопольно
|
|||
|
2
EuVod
28.07.05
✎
18:58
|
Спасибо:).- действительно с этим 1-м траблом все до смешного просто...
но вот что делать со 2м?? почему не отрабатываются стандартный ф-ции Local SQL?? мне казалось уж на этом уровне все и всегда поддерживатеся невзирая на особенности DB провайдера? |
|||
|
3
EuVod
28.07.05
✎
19:02
|
а то например
SELECT CAST(Descr AS CHARACTER(10)) FROM "SC13" S (параметры соединения: driver={Microsoft Visual FoxPro Driver};SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;SourceDb=C:\1C-develop\Razrabotka ) Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC Visual FoxPro Driver]Function name is missing ). |
|||
|
4
BigHarry
28.07.05
✎
19:08
|
(3) У Visual FoxPro Driver вместо CAST-а надо STR
|
|||
|
5
EuVod
28.07.05
✎
19:21
|
(4)
SELECT STR(Descr AS CHARACTER(10)) FROM "SC13" S таже фигня - [Microsoft][ODBC Visual FoxPro Driver]Function name is missing ). или там синтаксис другой? -я по разному пробовал, но с разными ошибками не сработало... а где можно узнать, что вообще можно делать с этим драйвером? В Фоксе никогда не работал просто. |
|||
|
6
BigHarry
28.07.05
✎
19:38
|
Стоп! А нафига поле Descr преобразовывать? Оно ведь и так текстовое. Это с числовыми полями из ADO-шных запросов у 1С-инфы проблемы...
|
|||
|
7
EuVod
28.07.05
✎
19:48
|
исключительно для примера (не)успешной работы ф-ции CAST (или как мне додсказали STR)
усе, сработало - просто я не въехал, что STR - это явное преобразование к строке, а не универсальный конвертер типа CAST SELECT STR(sp1329 )... все же вопрос остается - какие функции мне доступны в запросах при исползовании этого драйвера. можно ли работать с чиловыми полями не через строчный тип? а то че-то искал искал - ни в MSDN нету ни в инете не нашел.. заодно кто что может сказать про ADODB.Connetction.Properties collection. там кучая всяких пропертей - я их вывел себе на служебную ТЗ на форме, чтоб посмотреть, но что они значат и можно ли их как-то использовать? |
|||
|
8
BigHarry
28.07.05
✎
19:52
|
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_foxhelp/html/folrfFunctions.asp
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |