Форум программистов, компьютерный форум, киберфорум
Doctor_y
Войти
Регистрация
Восстановить пароль
Карта форума Блоги Сообщество Поиск Заказать работу  
Оценить эту запись

FoxPro. А не начать ли использовать C#?

Запись от Doctor_y размещена 03.12.2016 в 10:07

Периодически, мне предлагали для управления данными использовать другие системы. Я не против нового и с удовольствием перекочевал на другую систему, т.к. скучно становилось от одних и тех же кодов. Я писал определенный код и предлагал его повторить используя другую СУБД. Не возникало даже малейшего сомнения продолжить использовать для работы FoxPro.
Так как FoxPro, все таки предназначен для управления данными, сравниваются именно эти функции.
Имеем: удаленный сервер MySQL 5, таблица MyISAM с более 1 100 000 записями.
Задача: получить и визуализировать 1 млн фамилий, имен и отчеств. Мое соединение с интернетом 100Мбит (speedtest.net показывает 64Мбит), соединение с интернетом удаленного сервера 10Мбит (speedtest.net показавает 12Мбит). Провайдеры разные.
В конструкторе FoxPro и C# делаем форму и кидаем на нее Grid. Код пишем в методе (событии) Load формы.

FoxPro:
conn=SQLCONNECT(имя DSN, пользователь, пароль)
=SQLEXEC(conn, "SELECT * FROM table", "Result")

C#:
conn = new MySqlConnection(Строка подключения);
conn.Open();
MySqlDataAdapter mda = new MySqlDataAdapter();
mda.SelectCommand = new MySqlCommand("SELECT * FROM table", conn);
DataTable dt=new DataTable("Result")
mda.Fill(dt);
dataGridView1.DataSource = dt;

И в том и в другом случае увидим полученные данные. И то и другое не сильно трудоемко. НО:
1. Некоторые из ячеек таблицы содержат значения NULL.
- FoxPro получит все записи, значения NULL отобразит в гриде как NULL.
- C# встретив NULL перестанет заполнять DataTable и вам придется решать все ли значения получены или нет, можно в перечислении полей в запросе, проверять на NULL, а если полей в таблице сотня, а если мы связываем таблицы...
2. Редактирование ячеек Grid.
- FoxPro не только отобразит дату как дату, число как число, но и даст их редактировать в этом же формате, т.е. при вводе даты не придется вводить точки и не придется вводить год если он текущий, в ячейку числового поля не введете буквы, сколько в поле определено десятичных знаков, столько и введете и многое другое.
- C# правильно отобразит все данные но в текстовых полях, в которые можно ввели все что угодно. Для форматного ввода и валидации структуры данных придется писать дополнительный код.
3. Скорость выполнения от запуска формы до ее появления на экране с данными
- FoxPro 32 сек.
- C# 2 мин. 45 сек.
4. Ну а удобство управления данными, думаю, объяснять не нужно. Такого количества функций как в FoxPro........ .
И на последок я решил создать форму и Grid программно, в FoxPro это выглядит так:

Form1=CREATEOBJECT("Form")
Form1.ADDOBJECT("Grid1","Grid")
Form1.Grid1.Visible=.T.
Form1.Show()

Все, форма на экране. Можно перед этим кодом добавить 2 строчки кода для получения данных и форма на экране будет с данными.
Код C# приводить не буду, потому что лень столько писать.

На этом я прекратил эксперименты. Мне и этих сравнений было достаточно.
Размещено в Без категории
Показов 2018 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru