| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
egr 19.11.2004 13:30
1. Парсер, реально это набор удобных оберток над многими более низкоуровневыми абстракциями, вроде соединений с БД и выполнении определенных типов запросов, вроде прокрутки двумерных массивов (таблиц) и пр.OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "...";
OleDbCommand command = new OleDbCommand("UPDATE ...", conn);
conn.Open();
command.ExecuteNonQuery();
conn.Close();В парсере же: ^connect[ConnectionString]{
^void:sql{
UPDATE ...
}
}С запросами возвращающими данные в C#, ещё сложнее, - нужно задействовать другие, весьма непростые для новичков абстракции вроде DataReader, DataSet, DataAdapter и т.д. В парсере же все проще. Например получение данных в двумерный массив (таблицу) с которым потом можно просто работать, выглядит так: ^connect[ConnectionString]{
$table[^table::sql{
SELECT
col1,
col2,
...
FROM
table
}]
}и далее таблицу можно прокручивать, выбирая при этом нужные столбцы, а так же делать другие вещи. Например прокутка выглядит так: ^table.menu{
$table.col1 $table.col2<br/>
}и в сравнении с C# в котором, скажем прокрутка какого-нибудь ArrayList выглядит так: ArrayList array = <init code>;
IEnumerator enum = array.GetEnumerator();
while (enum.MoveNext())
{
...
enum.Current
...
}т.е. приходится задействовать достаточно сложные для новичков абстракции типа интерфейсов. С другими типами многомерных структур там ещё сложнее, я не говорю уже про C++ и прочие.