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# приводить не буду, потому что лень столько писать. На этом я прекратил эксперименты. Мне и этих сравнений было достаточно. |
Всего комментариев 0
Комментарии