gifts2017

Внешняя компонента для доступа к paradox через BDE (BDEBase 2.0.3.20 от 14.06.2006)

Опубликовал Ким Чен (BioAngel) в раздел Программирование - Внешние компоненты

Встала как-то передо мной задача работать с таблицами парадокса в 1С. Так как встроенных средств для этого нет, а побродив по форумам я наткнулся на лишь на пару статей, в которых описывалась работа с парадоксом через ADO, что мне показалось не очень удобно, я решил написать свою компоненту для доступа.
Методы старался делать где это возможно максимально близкие к xBase.
Вроде самое необходимое реализовал. Впоследствии компонента будет дополняться.

Атрибуты:

  • <Поле>

Методы:

  • СоздатьФайл()
  • ОткрытьФайл()
  • Открыта()
  • ЗакрытьФайл()
  • ОчиститьФайл ()
  • Первая()
  • Последняя()
  • Следующая()
  • Предыдущая()
  • НомерЗаписи()
  • Перейти()
  • ВКонце()
  • ВНачале()
  • Найти()
  • ПолучитьЗначениеПоля()
  • УстановитьЗначениеПоля()
  • Добавить()
  • Скопировать()
  • АвтоСохранение()
  • Записать()
  • Отменить()
  • Удалить()
  • Очистить()
  • КоличествоЗаписей()
  • КоличествоПолей()
  • ОписаниеПоля()
  • ОписаниеТаблицы()
  • ПолучитьНазваниеПоля()
  • НомерПоля()
  • ДобавитьПоле()
  • КодОшибки()
  • РежимОтладки()
  • Фильтрация()

Подробное описание методов в прилагаемом als-файле.

новое в версии 2.0.3.20 от 14.06.2006

+ Новый метод Фильтрация(); -Установить режим фильтрации записей в базе.
* Косметические исправления

Скачать файлы

Наименование Файл Версия Размер
bdeBase.zip 204
.zip 389,88Kb
25.09.09
204
.zip 389,88Kb Скачать
bde 5.0.1 44
.1245166906 4,15Mb
25.09.09
44
.1245166906 4,15Mb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Ильдар (ildarmcs) 24.07.06 11:34
Скачал, поставил, потестил. Работает.
Нормально. Спасибо.
А планируется ли через BDE сделать доступ из 1С 8.0 к InberBase - подобным базам?
2. Ким Чен (BioAngel) 24.07.06 11:49
пока не планируется, собственно отсутствуют задачи для данной СУБД
3. znh (znh) 07.04.07 07:20
Спасибо. Особенно за метод Фильтрация();
4. Александр Веремеев (wer_alex) 18.09.08 16:19
Все хорошо и решил воспользоваться. Нет одной только функции . Удалить все помеченные записи (команда Раск).
Необходимо через 1С свернуть базу Paradox на определенную дату.
5. Ким Чен (BioAngel) 30.09.08 15:48
Возможность по доработке отсутствует, затерялись исходники и что то мне подсказывает они не найдутся. :(
6. Андрей Мухин (Muhin555) 04.02.10 10:05
Здесь уже использовали эту разработку www.paltusov.ru Вот для обмена с R-Keeper………
Прикрепленные файлы:
restdemo.zip
7. Ким Чен (BioAngel) 04.02.10 19:55
Не уловил суть комментария если честно :D
8. Андрей Мухин (Muhin555) 12.03.10 00:34
в посте №6 привожу пример использования вашей разработки ;)
9. Егор Великоднев (egor_gsm) 18.02.11 10:47
Народ, закиньте плиз пример использования н 7.7 Интересует выгрузка данных в Paradox .DB файл!! Очень надо !!! Help !!
10. Ким Чен (BioAngel) 17.05.11 22:11
Если ЗагрузитьВнешнююКомпоненту("BDEBase.dll")=0 Тогда
Сообщить("Не удалось обнаружить компоненту BDEBase.dll!");
КонецЕсли;
Попытка
БДЕ = СоздатьОбъект("Addin.BDEBase");
Исключение
Сообщить("Не удалось создать объекты Addin.dbBase!");
КонецПопытки;

БДЕ.ОткрытьФайл ( "C:\bdeBase\pLogData.DB", );
пока БДЕ.ВКонце() = 0 Цикл
сообщить(БДЕ.Num);
Бде.Следующая();
КонецЦикла;
11. igor_gk (igor_gk) 12.10.11 11:42
Попытаюсь использовать для импорта в 1С 8.2 из X-DOOR (есть такая бухгалтерская программа, базы - PARADOX).
Получится?
12. Ким Чен (BioAngel) 12.10.11 14:38
С данной системой не знаком.
Всё зависит от поставленной задачи)
13. igor_gk (igor_gk) 12.10.11 14:44
Да там просто файлики, в которых хранится всякая хрень - справочники, таблицы планы счетов.
Вобщем мне бы доступ к файликам получить и прочитать из них данные (из-под 1С v. 8.2)...
14. Ким Чен (BioAngel) 12.10.11 15:56
Обычно проблем не вызывает, будут сложности пишите.
15. mikhailovaew (mikhailovaew) 20.10.11 14:00
Гляжу - одного плюсика для рейтинга не хватает, а работа вроде серьезная.
Так что + )))
16. Михаил М (Михаська) 09.02.12 11:26
17. Ким Чен (BioAngel) 09.02.12 17:19
Поддержку форматов осуществляет BDE
18. Ugu (ge_ni) 21.09.12 14:32
Здравствуйте!
Давно не пользовался. а на днях попробовал и получил по варианту подключения компоненты 2 ошибку 0х800004005 под Win7. Придушил Брандмауэр полностью... не помогает. По варианту подключения компоненты 1 пишет, что отсутствует CLSID! Я так понимаю он где то в системном реестре пишется, ну и радость эта имеет двоичное представление??? Что характерно у Jmail.dll, FormEx, 1CPP эта радость есть и не требует никаких усилий. Думаю: если бы Вы перетранслировать старые исходники в какой-то новой версиии интерпретатора то проблемма снялась бы сама... С уважением Евгений
19. Ugu (ge_ni) 21.09.12 15:49
Извините! Вроде сам разрулил! 2 строчки в реестре и всё! Однако... это требует достаточной квалификации. Хотя в отношении Вашей *.dll, вполне возможно, что Вам всё-равно, кто и как её будет истользовать... Работает то классно!
20. Ким Чен (BioAngel) 25.09.12 15:31
как уже писал ранее "Возможность по доработке отсутствует, затерялись исходники" ((
21. Андерсен Ковальски (Vovanich) 10.01.13 23:09
Пытаюсь подрубится к СКУД ОРИОН с помощью длл...Всё ок только отфильтровать по дате не получается...Может подскажет кто как отфильтровать записи за определенный период?в строку загоняю отбор "([TimeVal]>'"+НачДата+"') и ([TimeVal]<'"+конецдня(КонДата)+"') а тащит все записи с начала года. Хотя датаНач = 01.12.2012 КонДата = 31.12.2012
22. Ким Чен (BioAngel) 12.01.13 14:12
Пришлите пример файла и обработку
23. N’aix lifestealer (N_aix) 09.03.13 16:09
24. Ким Чен (BioAngel) 04.06.13 23:13
Пример создания таблицы paradox
Попытка
База = New("Addin.BDEBase");
Исключение
Сообщить("Не удалось создать объекты Addin.BDEBase!");
КонецПопытки;
//База.РежимОтладки(1);
База.ДобавитьПоле("Fml", "S" , 50 , 1); // фио
База.СоздатьФайл("D:\newdb.db",);
База.Добавить();
//База.Fml = Стр.Fml;
База.УстановитьЗначениеПоля("Fml","Фёдор Емельяненко");
База.Записать();
База.ЗакрытьФайл();
25. yurok kozorez (kozorez) 27.09.13 05:03
26. yurok kozorez (kozorez) 27.09.13 18:59
подскажите, как отфильтровать таблицу по дате?
27. Ким Чен (BioAngel) 27.09.13 19:11
Фильтрация(<Режим>,<КритерийФильтрации>,<Параметры>)

Назначение:
Установить режим фильтрации записей в базе.

Возвращает:
Текущее числовое значение режима фильтрации (на момент до исполнения метода).

Параметры:

<Режим> - выражение: 1 - задает режим фильтрации в базе, 0 - снимает (по умолчанию - 0)
<КритерийФильтрации> - В описании критерия фильтрации можно указывать имена полей и литералы (явно заданные значения); можно использовать обычные операции отношения и логические операторы И , ИЛИ , НЕ , например:
Эта запись фильтра оставит в таблице записи, в которых поля Doljnost=""доцент"" и TabNum больше 3000
Фильтрация(1,"([Doljnost]='доцент') И ([TabNum] > 3000)",0)
28. yurok kozorez (kozorez) 27.09.13 19:26
после долгих проб и ошибок работает фильтрация по дате
measure.Фильтрация(1,"([RecDTime]>'"+строка(НачДата)+"')",0); 

только при попытке добавить условие, фильтр сбрасывается...
29. yurok kozorez (kozorez) 27.09.13 19:30
measure.Фильтрация(1,"([Terminal]=7815)и([Terminal]=7814)И([RecDTime]>'"+строка(НачДата)+"')И([RecDTime]<'"+строка(КонДата)+"')",0);


так не работает.. а хотелось бы..
даже два условия вместе не работают
30. Ким Чен (BioAngel) 27.09.13 19:47
Пришлите в личку пример таблицы и обработку на которых проблема воспроизводиться.
как вариант пробуйте вставить пробелы перед и после "И"
31. yurok kozorez (kozorez) 28.09.13 04:35
Всё получилось! нужны пробелы.
measure.Фильтрация(1,"(([Terminal]=7815) или ([Terminal]=7814)) И ([RecDTime]>'"+строка(НачДата)+"') И ([RecDTime]<'"+строка(КонДата+1)+"')",0);


еще интересует последний параметр
Фильтрация(<Режим>,<КритерийФильтрации>,<Параметры>) нигде не нашёл описание, а так обработка супер!

32. Акуличев Денис (Arden) 29.10.13 12:10
BioAngel, Здравствуйте !

Использую вашу разработку для регулярного чтения данных из другой базы данных, но функция ОткрытьФайл() срабатывает только на 100 файлах, затем на 101-м файле возвращает "0". Это ограничения компоненты или в каких то настройках BDE можно увеличить этот параметр? Файлы начинают открываться только после перезапуска сеанса 1С.
33. Акуличев Денис (Arden) 29.10.13 13:23
похоже нашел во что упираюсь, в ограничение Paradox 100 паролей на сессию.
Функция КодОшибки() выдает Too many passwords. :(

Никак не обойти, не закрывая сеанс 1С ?
34. Ким Чен (BioAngel) 29.10.13 18:30
без доработки видимо не получится, но как уже писал ранние исходники давно утрачены вместе с жёстким диском
35. Alexey (ejik2012) 02.07.14 10:05
(34) BioAngel, подскажите, кириллица нормально читается компонентой? Если использовать ADODB, то при чтении кириллицы выходят кракозябры и даже не знаю как лечить это.
36. Ким Чен (BioAngel) 02.07.14 13:27
возможно кодировка в заголовке таблицы не соответствует её содержанию, в любом случае надо проверять
37. Alexey (ejik2012) 04.07.14 14:55
(22) BioAngel, поделись пожалуйста секретом как фильтрацию по полям с Датой делать ))))
38. Ким Чен (BioAngel) 04.07.14 23:56
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа