Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: MS Access и устройство с дровами на Borland C++ Builder 5.0  (Прочитано 11110 раз)
0 Пользователей и 1 Гость смотрят эту тему.
direktorSan
Удачи!
Участник

ru
Offline Offline
Пол: Мужской

« : 07-04-2005 21:46 » new

Здравствуйте!

Есть один вопрос:
Есть устройство (предположим, регистратор расхода электрической энергии), которое подключается к порту COM1 (или COM N, N={1,2,3,4});
Есть прога, которая производит опрос этого устройства каждые M секунд;
Эта прога написана на Borland C++ Builder 5.0;
Далее.
Есть база данных в MS Access 2000, которая должна хранить все показания устройства.

Вопрос:   Как организовать связь БД и проги?
(Уточнение: основным приложением, в котором присходит работа и которое управляет устройством, является БАЗА ДАННЫХ, а сервисная прога грузится в фоновом режиме).

Заранее спасибо!
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 13-04-2005 04:54 » 

Цитата
Вопрос:   Как организовать связь БД и проги?
Ну если "прога" не знает о существовании "БД", то скорее всего она ("прога") что-то куда-то пишет. Раз она что-то куда-то пишет значит это можно прочесть (другой "прогой") и добавить в "БД". Улыбаюсь
Записан

С уважением, Oldy.
direktorSan
Удачи!
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 16-04-2005 05:44 » 

Способ передачи данных через файл сопряжен с некоторыми неудобствами (как минимум необходимо обеспечить из ACCESS-а открытие и чтение файла, который создан и используется "прогой", т.е. необходимо отслеживать ошибки доступа).
Мне предложили при загрузке базы проверять наличие в памяти загруженной "проги". Далее, если "прога" загружена, ACCESS сообщает ей свой HWND и "прога" посылает на этот описатель сообщения с данными.
Вот только как на VB реализовать: 1) проверку наличия в памяти загруженной "проги"; 2) посылку сообщения программе по ее HWND?
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 18-04-2005 14:14 » 

Цитата
1) проверку наличия в памяти загруженной "проги"
API - функции FindWindow, EnumWindows и т.п.
Цитата
2) посылку сообщения программе по ее HWND?
Я понял, что это должен быть макрос в БД, который будет запускаться при загрузке БД в ACCSESS? А почему нельзя добавлять данные в таблицу в БД из "проги" скажем SQL-запросом?
« Последнее редактирование: 18-04-2005 14:31 от Oldy » Записан

С уважением, Oldy.
direktorSan
Удачи!
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 18-04-2005 18:52 » 

2 Oldy
Пардон! Неправильно выразился.
Поиск копии программы в памяти я делал на C++. Суть вопроса заключалась вот в чем: Что нужно включить в Tools\References чтобы вызвать API-шную функцию и как их (API-шные функции) вообще из Васика вызывать?
Если этот вопрос не в эту тему, то, пожалуйста, дайте ссылочку по этому материалу.

По поводу второй цитаты.
Предполагается, что в сообщении будет фигурировать только одна величина (или небольшой набор величин). Ибо время и источник поступления сообщения известны.
SQL-ем реализовать можно, но тогда не получится ли жесткой привязки только к ACCESS-у?
Хотелось бы, чтобы заказчик устройства (или его программер) сам мог написать небольшой модулёк для той версии БД, в которой он работает (1C, Access, Orecle, DBase и т.п., либо вообще для самопальной БД).
Записан
direktorSan
Удачи!
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 18-04-2005 19:02 » 

Дополнение.
Ситуация, предположительно, должна быть следующей:
1. Прогружается компутер;
2. При этом прогружается та самая прога, которая осуществляет инициализацию устройства;
3. Прогружается БД (в данном случае ACCESS, ибо так захотел заказчик);
4. Во время загрузки БД некоторая процедура находит в памяти ту самую "прогу" и отсылает ей свой HWND;
5. Прога, получив сообщение, начинает периодически слать базе сообщения со значением нагрузки в линии.

В принципе затык только в программной реализации на Васике вызова API-шных функций.
Поэтому опять просьба: дайте, пожалуйста, ссылочку на материал по этой тематике.
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 19-04-2005 20:41 » 

Ссылки:
Например вот эта - https://forum.shelek.ru/index.php/topic,4192.0.html
Непременно здесь - http://msdn.microsoft.com/library/

и наконец -

Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Записан

С уважением, Oldy.
direktorSan
Удачи!
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 24-04-2005 09:33 » 

Огромное спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines