|
|
|
v7: Интерфейсы работы с DBF | ☑ | ||
|---|---|---|---|---|
|
0
MagTux
12.12.11
✎
12:37
|
Доброго времени суток!
C DBF работаю через интерфейс XBASE. Работает довольно быстро, но есть некоторые проблемы, которые здесь я не буду обсуждать. Через интерфейс ADO чтение получается раз в 5 дольше (это при простейших запросах). Есть ли какие-нибудь альтернативные быстрые механизмы работы с DBF из 1С 7.7? Спасибо! |
|||
|
1
Ёпрст
гуру
12.12.11
✎
12:38
|
(0) дык писать запросы надо уметь еще.
|
|||
|
2
Дядя Васька
12.12.11
✎
12:39
|
||||
|
3
Ёпрст
гуру
12.12.11
✎
12:39
|
а так, запрос на фоксовом провайдере в разы быстрее, чем xbase, к примеру
|
|||
|
4
Godofsin
12.12.11
✎
12:39
|
(0) ИМХО, через ADO грамотнее
|
|||
|
5
1Сергей
12.12.11
✎
12:39
|
>>но есть некоторые проблемы, которые здесь я не буду обсуждать.
раз обсуждать не хочешь, то ветку можно закрывать |
|||
|
6
MagTux
12.12.11
✎
12:47
|
(5) Я не обсуждать XBASE создал ветку, а искать альтернативы.
(3) Я использую "Microsoft.Jet.OLEDB.4.0", он тоже медленнее Fox? Я просто с примера ромикса взял. (2) Поковыряю запросы на 1С++. Спасибо! |
|||
|
7
Ёпрст
гуру
12.12.11
✎
12:48
|
(6) нам отсюда не видно твой текст запроса и как ты например, попадаешь в нём в индекс.
|
|||
|
8
MagTux
12.12.11
✎
12:51
|
(7) select TOP 1 UROV_T
from Urov_topl_8.DBF WHERE DATE_A=#12/12/2011# Например, такой. В ДБФ нет индекса. |
|||
|
9
Ёпрст
гуру
12.12.11
✎
12:54
|
(8) дык создай, что мешает ?
|
|||
|
10
MagTux
12.12.11
✎
12:54
|
(9) Мопед не мой. Читаю чужую базу чужой программы.
|
|||
|
11
Ёпрст
гуру
12.12.11
✎
12:56
|
ну, пробуй через oledb для vfp
|
|||
|
12
Ёпрст
гуру
12.12.11
✎
12:58
|
||||
|
13
Джордж1
12.12.11
✎
12:59
|
(8)"Urov_topl" - интересно что за конфиг?
|
|||
|
14
MagTux
12.12.11
✎
13:01
|
(11)(12) Спасибо. Попробую.
(13) Программа на Делфи с базой в DBF. |
|||
|
15
Джордж1
12.12.11
✎
13:02
|
(14)в какой области? Urov_topl - это взлив в топливной емкости?
|
|||
|
16
MagTux
12.12.11
✎
13:03
|
(15) Уровнемеры в резервуарах нефтебазы.
|
|||
|
17
Джордж1
12.12.11
✎
13:04
|
(16)интересно. тоже сейчас с этим работаю.
Не расскажешь что у вас автоматизировано? |
|||
|
18
MagTux
12.12.11
✎
13:55
|
(12) В разы быстрее АДО при тех же запросах. Спасибо!
(17) 1) Уровнемеры в резервуарах. Программа показывает уровень нефтепродукта, объём по таблицам калибровки, плотность на разных уровнях, рассчитанную массу. При приходе топлива - расчёт объёма и массы поступившего нефтепродукта. 2) Автоналив нефтепродукта в бензовозы (развоз по АЗС). Замер температуры и плотности залитого нефтепродукта. Расчёт массы. Автозаполнение ТТН. |
|||
|
19
MagTux
12.12.11
✎
13:59
|
+(18) Правда, реализация паршивая. Приехали "специалисты", поставили новейшее оборудование и программу на Делфи 7 с базой в DBF под BDE. Оно то работает, но технологии ископаемые.
|
|||
|
20
Джордж1
12.12.11
✎
14:00
|
(18)глянуть бы вашу прогу.
а замеры уровня, температуры и плотности (тем более на разных уровнях) чем делаются? |
|||
|
21
MagTux
12.12.11
✎
14:07
|
(20) Исходников сам не видел ибо чужое. А ГУЙ... гуёвый ГУЙ. Дали бы мне протоколы работы железа, я бы сам лучше сделал.
Замеры делают поплавковые (вроде) уровнемеры и плотномеры. Спец.оборудование в резервуаре установлено. Вживую его не видел. В интернетах есть инфа. |
|||
|
22
Джордж1
12.12.11
✎
14:08
|
(21)а емкостей у вас так много, что спец прога для этого нужна?
// у нас всякие уравнемеры типа "струна" - то работают, то не работают. замеры ручками делают |
|||
|
23
MagTux
12.12.11
✎
14:35
|
||||
|
24
Джордж1
12.12.11
✎
14:49
|
(23)корявенько конечно
а залив автоцистерн по счетчику делается или по изменению объема в емкости? |
|||
|
25
1Сергей
12.12.11
✎
14:52
|
(24) ага. сливают топливо из цистерны, а в конце прога говорит "Слив засчитан!"
|
|||
|
26
MagTux
12.12.11
✎
14:58
|
(24) По счётчику. Уровнемер то объём считает по калибровочным таблицам. У самого уровнемера погрешность + погрешность калибровки. А счётчик поверенный. У него, вроде, 100 мл погрешность, или даже 10 мл.
================ Ещё по теме. В XBASE последнюю запись таблицы получить довольно просто. Метод Последняя() позиционирует объект на последнюю запись причём очень быстро на больших безиндекных таблицах. Как добиться того же через запрос OLEDB (без индексов)? Структура таблицы такова: DATE_A - date - дата TIME - char(11) - время Ч:ММ:СС UROV_T - numeric(20,4) - уровень топлива Необходимо получить последнюю запись с последним измеренным уровнем топлива. |
|||
|
27
Ёпрст
гуру
12.12.11
✎
17:19
|
top 1 ... order by row_id desk
|
|||
|
28
Ёпрст
гуру
12.12.11
✎
17:21
|
desc, т.е
|
|||
|
29
MagTux
12.12.11
✎
17:24
|
(27) Спасибо. Этот манёвр я знаю. Только вот нету ID.
|
|||
|
30
Steel_Wheel
12.12.11
✎
17:36
|
(8) Фейл. таки есть.
|
|||
|
31
Steel_Wheel
12.12.11
✎
17:36
|
Кривууууущий, но есть
|
|||
|
32
MagTux
12.12.11
✎
17:39
|
(30) Имеется в виду TOP 1 без ORDER BY ?
|
|||
|
33
MagTux
13.12.11
✎
10:15
|
(30)Имеется в виду индекс есть? Дата + время? Этот индекс настолько кривой (учитывая формат времени), что лучше перебором найти.
|
|||
|
34
MagTux
13.12.11
✎
10:19
|
+(33) Если не преобразовывать время, то запись 13.12.2011 8:20 по индексу будет после 13.12.2011 18:20. Поэтому в индексы время вообще не годится в таком формате.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |