Здравствуйте, Нахлобуч, Вы писали:
Н>Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют
public void pullTables() {
LoadingStatus status = new LoadingStatus();
try {
status.Text = "Загрузка таблиц";
status.addTask("closeconn", 6, "Загрузка текущего соединения");
status.addTask("price", 50, "Загрузка таблицы номенклатур");
status.addTask("options", 30, "Загрузка таблицы опций");
status.addTask("clients", 20, "Загрузка таблицы клиентов");
status.addTask("clientavgorder", 60, "Загрузка таблицы средних заказов");
status.addTask("passwords", 5, "Загрузка таблицы паролей");
status.addTask("routes", 13, "Загрузка таблицы маршрутов");
status.addTask("orders", 5, "Загрузка таблицы заказов");
status.addTask("order_items", 6, "Загрузка таблицы элементов заказов");
status.addTask("pricecategories", 45, "Загрузка таблицы цен");
status.Show();
status.startTask("closeconn");
this.connection.Close();
string rdaOleDbConnectString = "Provider=SQLOLEDB; Data Source="+serverName+";Initial Catalog="+serverDBName+"; " +
"User Id="+serverLogin+";Password="+serverPassword;
SqlCeRemoteDataAccess acc = new SqlCeRemoteDataAccess();
acc.InternetUrl = "http://" + serverName + "/mag/sscesa20.dll";
acc.LocalConnectionString = "Data Source=" + dbLocation + ";password=" + dbPassword;
status.startTask("price");
acc.Pull("price", "select * from price where pda = '" + Dns.GetHostName() + "'", rdaOleDbConnectString, RdaTrackOption.TrackingOn);
status.startTask("options");
acc.Pull("options", "select * from options where pda = '" + Dns.GetHostName() + "'", rdaOleDbConnectString, RdaTrackOption.TrackingOn);
status.startTask("clients");
acc.Pull("clients", "select * from clients where pda = '" + Dns.GetHostName() + "'", rdaOleDbConnectString, RdaTrackOption.TrackingOn);
status.startTask("clientavgorder");
acc.Pull("clientavgorder", "select * from clientavgorder where pda = '" + Dns.GetHostName() + "'", rdaOleDbConnectString, RdaTrackOption.TrackingOn);
status.startTask("passwords");
acc.Pull("passwords", "select * from passwords where pda = '" + Dns.GetHostName() + "'", rdaOleDbConnectString, RdaTrackOption.TrackingOn);
status.startTask("routes");
acc.Pull("routes", "select * from routes where pda = '" + Dns.GetHostName() + "'", rdaOleDbConnectString, RdaTrackOption.TrackingOn);
status.startTask("orders");
acc.Pull("orders", "select * from orders where pda = '" + Dns.GetHostName() + "'", rdaOleDbConnectString, RdaTrackOption.TrackingOn);
status.startTask("order_items");
acc.Pull("order_items", "select * from order_items where pda = '" + Dns.GetHostName() + "'", rdaOleDbConnectString, RdaTrackOption.TrackingOn);
status.startTask("pricecategories");
acc.Pull("pricecategories", "select * from pricecategories where pda = '" + Dns.GetHostName() + "'", rdaOleDbConnectString, RdaTrackOption.TrackingOn);
status.Close();
status.Dispose();
} catch (Exception e) {
logger.Logger.log(this.GetType(), e);;
MessageBox.Show("Не удалось загрузить таблицы. Проверьте правильность введенных параметров и наличие связи с сервером.");
status.Close();
status.Dispose();
}
}
... << RSDN@Home 1.1.3 stable >> Winamp: Marilyn Manson — This is the new shit
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
PROCEDURE update_by_rowid(pi_kpk IN ent.kpk%TYPE,
pi_name IN ent.NAME%TYPE,
pi_kpckeo IN ent.kpckeo%TYPE,
pi_rowid IN ROWID) AS
err VARCHAR2(512);
BEGIN
SAVEPOINT sp; -- точка восстановления
-- пробуем обновить данныеUPDATE ent
SET kpk = pi_kpk, NAME = pi_name, kpckeo = pi_kpckeo
WHERE ROWID = pi_rowid;
COMMIT;
EXCEPTION
-- если КПК уже естьWHEN dup_val_on_index THEN-- откатROLLBACK TO sp;
-- получаем кем он занят и выводим сообщениеSELECT 'Введённый КПК - ' || pi_kpk || ' уже занят для "' || NAME || '"'
INTO err
FROM ent
WHERE kpk = pi_kpk;
raise_application_error(-20005, err);
WHEN OTHERS THEN-- откатROLLBACK TO sp;
RAISE;
END;
Здравствуйте, Рома Мик, Вы писали:
OK>>Это что за язык? РМ>Похоже на паскаль, я правда давно паскаля не видал...
Я тоже с начала подумал паскаль, а потом присмотрелся — неее... не паскаль
Mr. None wrote:
> КЕ>Вот подумалось — пустое множество ничего не содержит по определению. > Поэтому над пустым множеством можно совершать любые операции — результат всегда будет нулевой . Это один из важных принципов теории множеств... > > Кроме того, кстати, любое множество содержит само себя вместе со своими границами. Так что в любом случае нет никакого парадокса...
Дык мы о разном говорим. Виноват мой кривой язык.
Ты говоришь о том что множество всегда является своим подмножеством. А а я о том что множество не должно включать само себя в качестве элемента. X не принадлежит X. Понятно что это касается и пустого множества.
Пример парадокса — утверждение "Из каждого правила есть исключения". Будучи примененным к самому себе это утверждение приводит к противоречию.
Здравствуйте, DuШes, Вы писали:
DШ>имхо...нечитаемый язык...
Да, это точно... Есть така штука — Trace Mode (трассовая мудя в простонародии). Есть там такой язык — язык функциональных блоков. Вообще писать на нем куда проще — пишется в редакторе, там всё визуально — накидываешь блоки (например здесь функция GT(...) — это блок "больше", а SEL(...) — выбор из двух по флагу), а также взаимосвязи между ними. Просто сейчас пишу документацию, а там скриншот (для описания функционального предназначения программы) фиг приведешь — нада все расписывать и приходиться писать в документации такое (благо трасе муде может генерировать этот код из FBD) + коментарии для непонятливых программеров заказчика (тем более обидно, т.к. они ничего читать не будут).
Здравствуйте, Костя Ещенко, Вы писали:
КЕ>Mr. None wrote:
КЕ>Дык мы о разном говорим. Виноват мой кривой язык.
КЕ>Ты говоришь о том что множество всегда является своим подмножеством. А а я о том что множество не должно включать само себя в качестве элемента. X не принадлежит X. Понятно что это касается и пустого множества.
Множество A может быть элементом множества B только в том случае, если множество B есть множество множеств... Так что множество не может быть своим собственным элементом, равно как и элементом любого другого множества содержащего налогичные элементы (не помню как называется термин обозначающий описываемую сущность этих множеств, то ли мощность, то ли размерность, то ли не то не другое, так что не буду выпендриваться ).
Компьютер сделает всё, что вы ему скажете, но это может сильно отличаться от того, что вы имели в виду.
Здравствуйте, Mr. None, Вы писали:
КЕ>>Ты говоришь о том что множество всегда является своим подмножеством. А а я о том что множество не должно включать само себя в качестве элемента. X не принадлежит X. Понятно что это касается и пустого множества.
MN>Множество A может быть элементом множества B только в том случае, если множество B есть множество множеств... Так что множество не может быть своим собственным элементом, равно как и элементом любого другого множества содержащего налогичные элементы (не помню как называется термин обозначающий описываемую сущность этих множеств, то ли мощность, то ли размерность, то ли не то не другое, так что не буду выпендриваться ).
Ну вот, теперь ты сделал наши множества типизированными. Термин так и называется — тип (тип 0 — примитивные элементы, тип 1 — множества элементов и т.д.). Теория типов была введена для пресечения подобных противоречий, но она будто бы сильно осложняет математические построения. И чтобы оставить сложность на приемлемом уровне в теорию типов была введена какая-то дополнительная аксиома, позволяющая формулировать и доказывать одну теорему для множеств различных типов.
Не так давно читал книгу по истории-философии математики и чего-то еще помню
Здравствуйте, rus blood, Вы писали:
RB>Здравствуйте, Нахлобуч, Вы писали:
RB>20 — так 20... RB>
RB> ..........................
RB> /* Now we should re-order keywords, created from names of products.
RB> These keywords and their derived forms (canonical and templated)
RB> have spider_order value -1. */
RB>" FOR pro_rec IN "
RB>" (SELECT DISTINCT prk_pro_id FROM dd_sem_product_keyword "
RB>" WHERE prk_spider_order < 0) "
RB>" LOOP "
RB>" v_current_order := 0; "
RB> /* We should re-order keywords of the current product */
RB>" FOR pro_kwd_rec IN "
RB>" (SELECT prk_kwd_id FROM dd_sem_product_keyword "
RB>" WHERE prk_pro_id = pro_rec.prk_pro_id "
RB>" ORDER BY prk_active_product DESC) "
RB>" LOOP "
RB>" v_current_order := v_current_order + 1; "
RB>" UPDATE dd_sem_product_keyword "
RB>" SET prk_spider_order = v_current_order "
RB>" WHERE prk_pro_id = pro_rec.prk_pro_id AND "
RB>" prk_kwd_id = pro_kwd_rec.prk_kwd_id; "
RB>" END LOOP; "
RB>" END LOOP; "
RB>......................
RB>