Нужна помощь (QueryExpress+vfpoledb+dbf) | |
---|---|
oudod Автор Сообщений: 6 Дата регистрации: 03.12.2017 |
Добрый день !
Есть база на VFP 9.0. Есть потребность по необходимости получать данные в XML. Опыта работы с VFP -> 0. Спросить рядом некого. Пытаюсь с использованиям связки QueryExpress+vfpoledb получить желаемый результат. Получилось подключиться базе и сделать не сложные запросы. Пробовал сделать такой запрос: USE registr; CURSORTOXML("registr","lcXML",1,0,0,"1"); STRTOFILE(m.lcxml,"d:\registr.xml") Ошибок не выдает; Выводит список строк; НО файл registr.xml не создается. Буду благодарен за любую помощь ! |
Re: Нужна помощь (QueryExpress+vfpoledb+dbf) | |
---|---|
PaulWist Сообщений: 14618 Дата регистрации: 01.04.2004 |
Надо посмотреть список поддерживаемых команд и функций в фоксовском провайдере.
------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) Исправлено 1 раз(а). Последнее : PaulWist, 03.12.17 21:47 |
Re: Нужна помощь (QueryExpress+vfpoledb+dbf) | |
---|---|
oudod Автор Сообщений: 6 Дата регистрации: 03.12.2017 |
Действительно, STRTOFILE() - Unsupported Function. Сделал такой запрос: use registr; CursorToXML( "registr", "d:\registr.xml", 1, 512, 10, "1" ) Ошибок не выдает; Выводит список строк; НО файл registr.xml не создается. Буду благодарен за любую помощь ! |
Re: Нужна помощь (QueryExpress+vfpoledb+dbf) | |
---|---|
PaulWist Сообщений: 14618 Дата регистрации: 01.04.2004 |
Точку с запятой в первой строке надо убрать (в фоксе это продолжение строки, а не конец строки)
------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Нужна помощь (QueryExpress+vfpoledb+dbf) | |
---|---|
Pliskin Сообщений: 2959 Откуда: Новосибирск Дата регистрации: 19.11.2003 |
Да и во второй тоже надо! |
Re: Нужна помощь (QueryExpress+vfpoledb+dbf) | |
---|---|
oudod Автор Сообщений: 6 Дата регистрации: 03.12.2017 |
...убрал точку с запятой. use registr cursortoxml("registr","d:\registr.xml", 1, 512, 0, "1") вышла ошибка - Command contains unrecognized phrase/keyword. |
Re: Нужна помощь (QueryExpress+vfpoledb+dbf) | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
msdn.microsoft.com
С чего вы взяли что провайдеру можно передавать произвольные команды? Большой список поддерживаемых команд в статье хелпе - это команды которые можно использовать в хранимых процедурах и/или триггерах. А вовсе не то что можно посылать из клиентского приложения как допустимую команду. Или, тем более, как батч (набор команд). Напишите нужный код в виде хранимой процедуры и вызывайте. Кстати, не советую выводить результат "в файл". ------------------ WBR, Igor |
Re: Нужна помощь (QueryExpress+vfpoledb+dbf) | |
---|---|
oudod Автор Сообщений: 6 Дата регистрации: 03.12.2017 |
Игорь, спасибо за комментарий. Я просто ищу вариант с минимальными затратами/потерями... А вариант с EXECSCRIPT( ) или ТОЛЬКО хранимые процедуры ? Если не сложно поясните Ваше предупреждение начет "в файл". Спасибо. |
Re: Нужна помощь (QueryExpress+vfpoledb+dbf) | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Можно и с execscript() - главное аккуратно его внутренности написать, отладить (лучше всего в фоксе ), не забыть при помощи CAST "причесать" возвращаемое значение - т.к. в этом случае нужно будет memo поле, в простое "строковое" скорее всего XML банально не поместится.
Можно и вообще напрямую поставить вызов cursortoxml() в качестве выражения в список выбора select (тогда в простом случае не нужно никаких use - алиас "той же таблицы" будет доступен) - но тогда не получится без файла обойтись. В файл писать (если цель просто в получении данных - т.е. строки с xml-ем) это лишнее звено, при том ещё и из контекста провайдера... ------------------ WBR, Igor |
Re: Нужна помощь (QueryExpress+vfpoledb+dbf) | |
---|---|
oudod Автор Сообщений: 6 Дата регистрации: 03.12.2017 |
Игорь, если Вас не затруднит, покажите как должен выглядеть запрос (execscript()+select+cursortoxml()) с учетом Ваших замечаний и предложений. XML-файл нужен для обработки в другой среде. Спасибо еще раз за Ваше участие. Исправлено 1 раз(а). Последнее : oudod, 04.12.17 15:35 |
Re: Нужна помощь (QueryExpress+vfpoledb+dbf) | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Ну у меня нет никаких QueryExpress-ов, а чисто из самого же фокса через этот провайдер это выглядит примерно вот так:
P.S. Я везде добавил к "флагам" CURSORTOXML 16 - для указания в xml той же кодировки в какой находится сама таблица. Можно вместо этого использовать флаг 48 - тогда данные будут перекодированы в utf-8. Оставлять "как есть" не стоит - фокс пропишет в качестве кодировки 1252, хотя сами данные запишет "как есть" - а это, естественно, неправильно. P.P.S. Ну и да, само условие WHERE RECNO()=1 "нехорошее" - если вдруг в таблице первая физически запись будет удалена, то второй вариант ничего не вернёт... Первый то всё одно создаст файл - даже если записей в таблице нет вообще - фокс делает "тестовый прогон" выражений в списке полей для определения типов/размеров полей создаваемого курсора - как побочный эффект для такого случая сработает и CURSORTOXML с записью в файл... Впрочем, всяко лучше сделать таки ХП в фоксовой базе, и вызывать именно напрямую функцию а не извращаться с хитрыми обёртками внутри функций в SELECT... ------------------ WBR, Igor Исправлено 2 раз(а). Последнее : Igor Korolyov, 04.12.17 17:38 |
Re: Нужна помощь (QueryExpress+vfpoledb+dbf) | |
---|---|
oudod Автор Сообщений: 6 Дата регистрации: 03.12.2017 |
Игорь, БОЛЬШОЕ СПАСИБО за пример !
Буду экспериментировать. PS - Query Express is a simple Query Analyzer: www.albahari.com Исправлено 1 раз(а). Последнее : oudod, 05.12.17 18:24 |
© 2000-2024 Fox Club  |