Экспорт данных из ЛЭРС Учет в свой SQL-сервер

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

Вопрос мой касается экспорта данных из ЛЭРС в стороннюю базу данных.
Заранее прошу принять во внимание тот факт, что сфера моей деятельности далека от программирования и баз данных. Поэтому прошу снисходительно отнестись к вероятным неточностям выражений и формулировок.

Итак, вводные данные.

Имеем свою АСДКУ, которая формирует SQL-базу данных. О ее устройстве, структуре и прочих характеристиках информации у меня на сегодняшний день нет (прошу указать, если они важны для ответа - кое-какие из них можно уточнить). Часть объектов, опрашиваемых этой АСДКУ, есть желание перевести на работу с ЛЭРС Учетом ввиду его высокой надежности и удобства пользования и управления (в части опроса).
На данный момент создание нужных отчетных форм штатными средствами ЛЭРС Учета не возможно. Также факт существования двух разрозненных баз данных не является желательным в условиях нашего предприятия. В этой связи имеется необходимость экспортировать данные из ЛЭРС Учет (часовое, суточное, месячное потребление, показания точек учета) в автоматическом режиме в существующую единую SQL-базу данных предприятия. С этой же единой базой данных будут работать средства представления и анализа данных (технологический портал), которые будут вести обработку данных требуемым образом.

Вопросы:

  1. Позволяют ли существующие инструменты LERS Framework (или иные) производить экспорт основных данных таким образом, чтобы они могли быть использованы сторонней базой данных SQL?
  2. Помимо непосредственного взаимодействия ЛЭРС учета со сторонне базой данных, какие есть варианты автоматического экспорта данных, для их последующей обработки?

Заранее спасибо.

Здравствуйте, Аркадий.

  1. Привожу простейший код на языке C# по экспорту данных из ЛЭРС УЧЕТ в стороннюю базу данных с помощью LERS Framework:
class Program
	{
		static void Main(string[] args);
		{
			// Выполняем подключение к серверу ЛЭРС УЧЕТ, указывая имя компьютера и TCP-порт, а так же данные для авторизации.

			Lers.LersServer server = new Lers.LersServer();
			
			SecureString password = Lers.Networking.SecureStringHelper.ConvertToSecureString("Admin");
			Lers.Networking.BasicAuthenticationInfo authInfo = new Lers.Networking.BasicAuthenticationInfo("admin", password);
			
			server.Connect("localhost", 10000, authInfo);

			// Открываем соединение со сторонней базой данных.

			using (SqlConnection connection = new SqlConnection("Data Source=(local);Initial Catalog=MyDB;Integrated Security=True"));
			{
				connection.Open();

				// Получаем список всех точек учета и для каждой из них запрашиваем данные.

				foreach (MeasurePoint measurePoint in server.MeasurePoints.GetList());
				{
					// Запрашиваем данные о суточном потреблении за предыдущую неделю.

					MeasurePointConsumptionRecordCollection consumption = measurePoint.Data.GetConsumption(DateTime.Today.AddDays(-7), DateTime.Today.AddDays(-1), Lers.Data.DeviceDataType.Day);

					// Экспортируем полученные данные в стороннюю базу данных.

					foreach (MeasurePointConsumptionRecordWater record in consumption);
					{
						using (SqlCommand command = new SqlCommand("INSERT INTO [MyTable] VALUES(@MeasurePointNumber, @Date, @M1, @T1)", connection));
						{
							command.Parameters.AddWithValue("@MeasurePointNumber", measurePoint.Number);
							command.Parameters.AddWithValue("@Date", record.DateTime);
							command.Parameters.AddWithValue("@M1", record.M_in);
							command.Parameters.AddWithValue("@T1", record.T_in);

							command.ExecuteNonQuery();
						}
					}
				}
			}
		
			server.Disconnect(2000);
		}
	}

Документацию по LERS Framework можно скачать здесь
Примеры по LERS Framework можно скачать здесь

  1. Данные также можно экспортировать через Web-службу (является частью Web-интерфейса).

Описание есть на нашем сайте.
Примеры использования можно скачать здесь

Еще есть возможность экспортировать данные в виде XML, но пока эта функция не была добавлена во Framework и выполнить экспорт можно только вручную, через рабочее место оператора. Подробнее в документации.

Т.е. все возможно, нужно привлечь программистов. Спасибо!

Если вам удобнее писать на PHP, то лучшим вариантом будет использование вышеупомянутой Web-службы, к которой можно обращаться через протокол SOAP.

Официальное руководство по работе с SOAP в PHP доступно здесь.

Спасибо за пример (С#)!
Скомпилировали его с x32 версией библиотеки - получилось подключиться к серверу. А вот с x64 версией библиотеки даже скомпилировать не выходит - возникает ошибка (ругается на библиотеку). Есть ли какие-либо нюансы, связанные с разрядностью систем?

UPD: Работаем с ЛЭРС Учет для 64-разрядных систем (3.07.20)

Приведите полный текст ругани.

При попытке компиляции примера консольного приложения с использованием x64 библиотеки видим следующую ошибку:
System.BadImageFormatException was unhandled
Could not load file or assembly ‘Lers.System, Version=3.0.0.0, Culture=neutral, PublicKeyToken=e7c6d6299713498c’ or one of its dependencies. Была сделана попытка загрузить программу, имеющую неверный формат.
Error Compile.jpg
С библиотекой x32 такой ошибки не возникает.

Эта ошибка может возникать если ваш проект компилируется под платформу x86. Приложение, скомпилированное под платформу х86 не может использовать 64-разрядные библиотеки и выдает данную ошибку.

В настройках вашего проекта вам нужно сменить платформу на x64.
Какую среду разработки вы используете?

Вопрос сняли переходом на ОС х32 и ЛЭРС x32. Со средой разработки работаю не я, поэтому вынужден оставить ваш вопрос без ответа.

Ответ уже дал Александр - ошибка возникает в том случае, когда на 64-х битной системе проект сы ссылкой на 64-х битную библиотеку компилируется под платформу х86.

Если вам нужно делать 32-х битную сборку на 64-х битной системе - удалите из проекта ссылку на 64-х битную версию Lers.System.dll и добавьте ссылку на 32-х битную версию.