|
|
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
Sergey ChTo: FoxProHater Мне кажется, что Ваше негативное отношение к FoxPro лежит в плоскости психологической - когда нелюбимая работа ради квартиры... Тут мы Вам увы, помочь ничем не можем... Отмотаете срок, смените работу, все у Вас наладится... But anyway, good luck! Не надо так буквально воспринимать аллегории, ув. коллега, я пример с квартирой привел как умозрительное отражение другой реальной ситуации, хотя, насчет "отмотаете срок" все вполне правильно. А насчет - осуждения кого-то за незнание чего-то (местонахождения клавиши F1, английского языка, объектной модели FoxPro, если таковая вообще существует в природе, кроме как в головах "интуитивно-прирожденных опытных программистов на VFP"), не судите и - не судимы будете... Я много "объектных моделей" программных платформ повидал в своей жизни: и VB (VBScript/VBA), и Java (J2EE/Swing), и .NET приснопамятный, разве что до Delphi руки никогда не доходили (да и желания особого не было, но "дельфины" и сами тут высказываются в адрес FoxPro вполне однозначно). И что самое интересное - никаких проблем с пониманием "объектных моделей" для этих программных платформ у меня никогда не возникало, а вот поди ж ты, FoxPro оказался такой "крутой", что ажно - "не для средних умов", ажно - 7-ми лет на хватило нормальному человеку (каковым я себя считаю, несмотря на лай из подворотни отдельных местных личностей), чтобы "понять", "оценить", "прочувствовать", "полюбить" и "вознести на жупел"... Извините, конечно, но обычно в такой ситуации цитируют старый анекдот на тему: "... может в консерватории что-то надо поправить?". З.Ы. особенно меня умиляет манера некоторых местных "форумчан", дорвавшихся до клавиатуры, сходу представлять своих оппонентов "умственно-отсталыми", "ленивыми", "недоразвитыми" и пр. лестными эпитетами. А как же иначе: "на что только - хвост поднимать вздумал, ишак?! на святое!!! на - наше все!!! ату - его!!! кусь!!!". Очень помогает "самоутверждению" и "самореализации", только - за счет чего, да и - зачем именно так? (проще закрыться в туалете с фоткой Пэм Андерсон или Джей Лопес и заниматься аналогичным по сути делом, и деньги за и-нет платить на надо). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2005, 18:29 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
FoxProHater З.Ы. особенно меня умиляет манера некоторых местных "форумчан", дорвавшихся до клавиатуры, сходу представлять своих оппонентов "умственно-отсталыми", "ленивыми", "недоразвитыми" и пр. лестными эпитетами. А как же иначе: "на что только - хвост поднимать вздумал, ишак?! на святое!!! на - наше все!!! ату - его!!! кусь!!!". Очень помогает "самоутверждению" и "самореализации", только - за счет чего, да и - зачем именно так? (проще закрыться в туалете с фоткой Пэм Андерсон или Джей Лопес и заниматься аналогичным по сути делом, и деньги за и-нет платить на надо). Все мы подвержены эмоциям и неумению выслушать противоположную точку зрения с уважением к собеседнику. Этому надо учиться и уметь применять на практике. Меня, этому учили, боюсь что не всем так повезло как мне... Тема, затронутая мной в этом топике очень сложная и многогранная и естественно, что любое обсуждение будет неполным, но я думаю, что для многих из нас даст пищу для размышления. Microsoft даже разместил для всеобщего (бесплатного) обозрения и изучения книгу по C#, специально написанную для программистов FoxPro (признаюсь, пока не читал так-как чисто психологически мне проще писать на VB.NET). Так-же как и Вы мне пришлось компилировать код при помощи внешнего компилятора для моего первого проекта ASP.NET (потом компания купила мне Visual Studio Net 2003), там многие вещи делать намного проще, чем было рисовать формы в FrontPage, код писать в Notepad, затем все компилировать и сводить вместе... Но даже и в VS.NET не все так удобно при разработке реальных приложений как в VFP... Это понимает и Microsoft. Они уже многократно обещали что-то сделать в этом направлении, но пока дело продвигается очень медленно... Никто не спорит, что в FoxPro есть ошибки (есть очень досадные, на которые тратится наше драгоценное время - конечно не недели, скорее всего часы). Благодаря открытости, принятой в компании MS - мы можем прочитать об ошибках, написать о них и скорее всего они будут исправлены... Кроме того, объявлено о том, что будет происходить с проектом FoxPro до 2007 года... Так что у этого проекта есть будуще и кроме того очень Важно сохранить все те программы (а их в мире огромное множество - сужу по США, Канаде, Англии, России) уже написанные на FoxPro. Грош цена среде разработки, если фирма-производитель не обеспечит приемственность кода и поддержку на многие годы и платформы... В среде .NET есть много интересного и удобного. Когда пишешь приложение - важно умение искать информацию о существующих классах - их свойствах и методах... Их очень много, а в новой версии еще больше. Если что-то задумал написать то надо проверить - существует уже готовое решение или нет... То есть убивает в нас писателей Но работа с данными по прежнему оставляет желать лучшего... Таким образом, никто здесь не пытается противопоствить идеологию FoxPro (думаю что можно сказать и так) - идеологии .NET. Это два неплохих продукта одной компании, кторая "ведет нас в будещее" и не дает некоторым участникам форума (например мне) "умереть с голода"... Всего Вам доброго и спасибо что делитесь своими впечатлениями... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2005, 19:26 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
Тут у вас просто "бойня". Прикольно. хорошо что защищают Фокс. Но самое странное что , увы, его уже не отстоять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2005, 20:08 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
FoxProHaterМне ошибка не нужна, я именно это и хочу учесть при обращении в странице, которая потенциально может быть удалена из PageFrame (говорю же - проект "куча говна", не я такое придумал/спроектировал), и чтобы избежать этой ошибки я должен убедиться в том, что нужная мне страница присутствует в контейнере, как я должен это сделать когда PEMSTATUS(... 5) и TYPE() не помогают? Циклом перебирать Pages и сравнивать свойство Name с искомым? Если перенести проверку PEMSTATUS(... 5), TYPE() и VARETYPE(), касательно наличия 3 страницы, из события Init формы, например в событие Activate формы или в событие Click кнопки на форме, то Fox отрабатывает все правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2005, 20:54 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
Ошибся в 20:54. Конечно же не VARETYPE( ) а VARTYPE( ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2005, 21:05 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
Да, отрабатывает правильно - если форму вызывать по DO FORM form.scx, т.е. она есть в графическом виде. Если же через создание класса формы и ее вызов - в prg файле, то такая особенность осталась.:-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2005, 21:34 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
Сергей, КиевЕсли перенести проверку ...... то Fox отрабатывает все правильно. Спасибо, ув. коллега, за очередной "обходной путь", только я, по-моему, нигде не говорил, что я этого не знаю... Может быть у вас всех создалось такое впечатление, что я до сих пор не в курсе - как "найти" удаленную страницу на PageFrame, или как посчитать количество столбцов в гриде, не привязанном ни к какому источнику данных, или как изобразить TreView-контрол на нужной мне странице, к сожалению, я все это уже "узнал" задолго до откровений местных "форумчан", как и тот "непроходимый" факт, что FoxPro вплоть до 8-й версии включительно (про 9-ю узнаю точно завтра на работе, но лично я в нее не верю) - не в состоянии адекватно обработать ошибку от ODBC-источника данных, если в запросе (процедуре) присутствуют более 1-го результирующего набора данных (resultset), а после возврата первого возникает ошибка... (условно говоря: "select 'scalar_value' select * from unexisting_table"). Зато про то, что это меня уже достало - искать очередные "обходные пути", тратить свое время и время своих коллег/заказчиков на выяснение очередной "хитрости", всю дорогу пишу достаточно внятно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2005, 21:42 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
karly™Я все же объясню, почему просьба привести вариант решения на Фоксе встречена гробовым молчанием :-) В VFP есть визард, который эту задачу решает за пять кликов мышки ;-) Хотя это не совсем честно. Встроенный визард дает естественную фору, тем более что его возможности гораздо шире, например в нем предусмотрена куча проверок на допустимость названий полей. Поэтому можно попробовать решить то же самое своими силами. Есть варианты оптимальнее? Вот-вот. Кто там говорил о wizard-man 'ах? Таких которые привыкли решать все за 5 кликов мышки и не заботиться об архитектуре приложения? Оказывается wizard-man 'ы это фокспрошники и есть? Да, есть варианты оптимальнее. Не таскать все данные на клиента, а выполнять расчет на сервере и предоставлять клиенту только результирующий набор данных. О чем я и говорил. Вы говорите мышкой на фокспре быстрее, чем писать ХП на T-SQL или PL/SQL? Лень учить? Так определитесь, что важнее скорость и качество работы приложения или скорость разработки. ДиченкаСерьезные вещи из командной строки не пишутся. Ага, там "скриншот"(с) не сделаешь Сразу видно, что кроме фокспры и дизайна интерфейсов не сталкивался с другими задачами. Igor KorolyovОтчего же нет - цикл с INSERT INTO ... на 100000 итераций с локальной DBF (физический размер записи 512 байт - т.е. около 49Мб данных) отрабатывает за .... 3,3 секунды (это с закрытием таблицы - т.е. с физической записью всего кэша на диск - БЕЗ закрытия таблицы - 0,8 секунды) Покажи мне промышленную СУБД, обеспечивающую хотя-бы такую же скорость работы. Я сам начинал с DBASE III+ и Clipper Summer'87, но время ведь не стоит на месте. Нет FoxProHater, эту старую закалку не сломит ничего. DBF для некоторых - действительно самые крутые ("на горшке высиженные"(C)) яйца Igor KorolyovОпытный программист отличается от неопытного тем, что он "чувствует" опасные места, и просто НЕ ЛЕЗЕТ туда, где можно ожидать "засады". Я считал, что опытный программист просто знает об опасных местах, сталкивался с ними и исходит из своего опыта. Я бы сказал, что не пытается использовать всех возможностей программист неопытный, а "чувствует" опасные места, наверное, лишь Гарри Поттер Igor Korolyovследовательно на сегодняшний день, по своей функциональности ADO.NET не дотягивает даже до уровня FPD Вот тут и меня зацепило. Вы просто, видимо, не потрудились ознакомиться с технологией. Таких, простите за резкость, ИДИОТСКИХ заявлений я не слышал больше нигде. Буду вас цитировать другим разработчикам ПО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 13:06 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
фигня какая-то. Ну нет в адо.нет своего движка. Какие-то простейшие объединения полученных результсетов сделать можно (как тут некоторые почему-то ставили в заслугу). Но это ж не полноценный скл как в вфп. Дело-то не в адо или одбц а в наличии/отсутствии собственного движка на клиенте. Если у вас только простые задачи по получению результатов с сервера - хорошо. Но зачем об этом кричать, это хоть на перле можно получать и показывать результаты выборок. --------------------- говоря честно в нете DataSet, скажу вам по секрету, это бизнес объект который может хранить в себе несколько таблиц и даже реляционные связи между ними, и это при работе с MS SQL --------------------- прекрасно. Есть стандарт ANSI SQL. Внутренний движок вфп ему соответствует. Возможности нескольких связанных табличек датасетов конечно же нет. О чём разговор-то? Вполне верятно что через какое-то время микрософт предложит вместо датасета како-нить дбсет с возможностями как движок у вфп. Это будет удобней чем датасет. Но пока этого нет. Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 13:34 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov 1) Смотря какие СУБД Если вы такой спец по СУБД не расскажете какие ? Igor Korolyov 2) Ну даже если и не требуется, то тормозит вся система пока индекс пересоздаётся очень конкретно. Причём даже не какая-то там "самодельная" типа MySQL (с которой и взять то нечего - энтузиасты делают и конечо они делают то что им нужно в первую очередь), а вполне дорогие Oracle 8i на выделенных серверах (причём UNIX-ах а не Win). Да вы поймите что на Oracle пользователи будут работать, а в вашем случае нервно курить ожидая пока создастся 3-4 индекса к гигабайтной таблице. И на Oracle для увеличения производительности можно добавить индекс к таблице совершенно не мешая работе. Igor Korolyov Для VFP - аналогично. Если ты не закладывался на SEEK() то от отсутствия индекса лишь производительность упадёт и всё... Аналогично ? А вы если не секрет из всего "богатства" VFP используете только SELECT,INSERT,UPDATE и DELETE ? Если так то удел этих операторов server-side. Если нет то обьясните мне хотя бы вкратце что такого ЛУЧШЕГО есть в VFP для работы с БД. Igor Korolyov Твоё самое первое сообщение в этой ветке, и второе - это во-первых неправда (то что ты там говоришь "взял от С# ... нормальных языков" - это априори подразумевает что VFP "ненормальный") - половина из перечисленного было ещё в VFP3 - выпущенном задолго до того как MS придумало слово NET - остальное как максимум в VFP8 - НИЧЕГО из перечисленного тобой не является нововведением VFP9. Ну если считать что C# это почти полный клон Java то в Java и C++ все это появилось "немного" пораньше чем в VFP. C# приведен только для примера. Igor Korolyov Тогда ПОЛНЫЙ пример приводи. Который можно вставить в какой-нить метод и исполнить - ибо если делать s как String - то получаем 'string' does not contain a definition for 'Parse' У других же встроенных классов нету метода Trim... Ну ошибся я только дяденьки ногами не бейте Если немного покопались бы то нашли что у String и у string есть метод Split(). А Parse() это я спутал с типом int конструкция типа такой int i = new int.Parse("10"); Igor Korolyov Он ставит свой сервис (т.е. висит в памяти ПОСТОЯННО в отличие от фокса). Я говорил что он не тяжелее VFP. Я для интереса проверил - FireBird сервер где-то 3М в памяти, для сравнения ICQ5 - 4M VFP 9 runtime с одним wait-ом: 6M Igor Korolyov Имеет какие-то неприятные особенности реализации кэширования записи в файл базы при остановке/перезапуске сервиса (или просто клиент написан криво - пользуюсь я одной приблудой на этом движке) - от чего у меня постоянно пропадает содержимое memo-полей (или как их там правильно называют в FB) в последней добавленной записи, а содержимое других полей (НЕСТАБИЛЬНО! Т.е. раз на раз не приходится) возвращается к состоянию "до редактирования". Т.е. похоже на то как будто последняя транзакция не записывается в базу. Работает всё ессно локально - т.е. сервер на том-же компе. А вам команда shutdown не знакома или вы и свои приложения на VFP через Ctrl-Alt-Del убиваете ? Сервер на вашу остановку сервиса среагировал вполне нормально - не сохранил незакоммиченную транзакцию. И еще насчет обработки данных на клиенте. Если клиент для больших и сложных расчетов будет иметь тачку сравнимую по мощности с сервером то не задуматься ли над тем чтобы апгрейдить сервер а не клиентские места ? И не бегать же извините за пользователем который делает расчет месяца со словами - "Дяденька не выключайте машину, у нас тут расчет идет" , да и для сложной аналитики можно и job-ы использовать. Igor Korolyov Отчего же нет - цикл с INSERT INTO ... на 100000 итераций с локальной DBF (физический размер записи 512 байт - т.е. около 49Мб данных) отрабатывает за .... 3,3 секунды (это с закрытием таблицы - т.е. с физической записью всего кэша на диск - БЕЗ закрытия таблицы - 0,8 секунды) Покажи мне промышленную СУБД, обеспечивающую хотя-бы такую же скорость работы. Oracle 9i тот же обьем - 10с вместе с COMMIT. УЖАСНО большая разница Аж в три раза, только периодичность таких заливок не такая большая чтобы переживать из-за этого. Только вот если при такой заливке в VFP мигнет свет то ИМХО эти записи ручками выковыривать придется, а Oracle просто откатит незавершенную транзакцию умершей сессии. Igor Korolyov SQL не новее - давай и его выкинем :) Ты можешь предложить ЛУЧШУЮ альтернативу в плане ЯЗЫКА ОБРАБОТКИ ДАННЫХ? Давай - дерзай, может быть потомки с благоговением будут изучать твои труда, как сегодня изучают Кодда, Дейта и прочих основоположников :) У SQL есть строгая концепция и стандарт, а VFP какая-то сложная смесь смесь ЯЗЫКА ОБРАБОТКИ ДАННЫХ и ЯЗЫКА ПРОГРАММИРОВАНИЯ не имеющая ни стратегии развития ни стандарта, по сути МАКРО ЯЗЫК ОБРАБОТКИ ДАННЫХ. Вы где нибудь видели ANSI Foxpro ? Может быть поэтому у тех кто много писал на C,C++,Pascal,Object Pascal такое стойкое неприятие VFP ? Igor Korolyov Тобой лично? Вполне могу согласится - если ты плохо понимаешь идеологию фокса, Ну что мне теперь вступить в партию VFP ? Если я понимаю идеологию С и C++ мне легко понять идеолгоию Java и C# А вот с VFP извините у меня проблемы, да и есть ли у него идеология ? Igor Korolyov то ни написать хорошо сопровождаемый код, ни даже нормально сопровождать чужой (хорошо написанный) код ты не сможешь. Так чья это проблема - среды программирования? Или вполне конкретных программистов? Ну откуда ты знаешь что я могу а что нет ? Только вот проблема, я про Foxpro, святой VFP трогать не буду, поскольку сопровождаемую мной прогу писали несколько программистов, не скажу что супер, но неплохие, так вот, у каждого из них был свой стиль, кто-то раньше писал на C кто-то на Pascal кто-то пытался создавать подобие обьектов и разбираться сейчас с этой мешаниной стилей не скажу что сложно, но неудобно. Дак вот мне кажется что идеология языка должна включать в себя создание определенного стиля (или единооборазия стилей). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 13:40 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
Flare karly™Я все же объясню, почему просьба привести вариант решения на Фоксе встречена гробовым молчанием :-) В VFP есть визард, который эту задачу решает за пять кликов мышки ;-) Хотя это не совсем честно. Встроенный визард дает естественную фору, тем более что его возможности гораздо шире, например в нем предусмотрена куча проверок на допустимость названий полей. Поэтому можно попробовать решить то же самое своими силами. Есть варианты оптимальнее? Вот-вот. Кто там говорил о wizard-man 'ах? Таких которые привыкли решать все за 5 кликов мышки и не заботиться об архитектуре приложения? Оказывается wizard-man 'ы это фокспрошники и есть? Да, есть варианты оптимальнее. Не таскать все данные на клиента, а выполнять расчет на сервере и предоставлять клиенту только результирующий набор данных. О чем я и говорил. Вы говорите мышкой на фокспре быстрее, чем писать ХП на T-SQL или PL/SQL? Лень учить? Так определитесь, что важнее скорость и качество работы приложения или скорость разработки.Не надо передергивать. Вы слепили вместе два разных куска от моего поста, плюс приплели высказывание от Диченки. Неодобрительно отозвались о всех фокспрошниках разом. А опус про "скорость и качество работы" - вообще непонятно к чему. Я сказал, что есть визард, но можно написать и самому. Привел вариант, как это можно сделать. В любом случае, количество кода и время работы на VFP получится меньше, чем на T-SQL, благодаря большому набору команд для работы с таблицами. Данная задача является примером, когда данные быстрее и проще обработать на клиенте. Только не надо говорить "зачем тянуть все данные" - объем информации, переданной по сети, одинаков до и после обработки . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 13:59 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
Блин :) когда вы успокоитесь. NET - круче , да - да :) посмотрим на него через 2- 3 года :) как бы не настигла его судьба VB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 14:15 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
karly™В любом случае, количество кода и время работы на VFP получится меньше, чем на T-SQL, благодаря большому набору команд для работы с таблицами. Чем же ФоксПро богаче T-SQL, хотелось бы узнать, в плане "команд работы с таблицами"? karly™Данная задача является примером, когда данные быстрее и проще обработать на клиенте. Только не надо говорить "зачем тянуть все данные" - объем информации, переданной по сети, одинаков до и после обработки. Да поймите вы, что общим требованием при написании многоуровневых систем является то, что между уровнями следует перемещать как можно меньше данных. А мне тут доказывают, что в некоторых задачах "данные быстрее и проще обработать на клиенте". А я вам говорю, что кросс-таб быстрее и проще формировать на стороне сервера. Но почему-то на практике получается так, что ФоксПрошники привыкают все данные обрабатывать на клиенте и говорят, что это "быстрее и проще". Проще разрабатывать - да. Быстрее обрабатывать данные - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 15:13 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
А я вам говорю, что кросс-таб быстрее и проще формировать на стороне сервера -------------------------------------- Мда. А вам, если вы умеете читать, кучу раз уже сказали что в случае использования для написания клиента к серверу среды со своим движком БД (коей и является вфп) возможно как обрабатывать подобные расчёты на сервере так и на клиенте. В случае отсутствия своего движка (с-диез) это невозможно. Т.е. меньше свободы выбора. Высказывания в духе "проще", "удобне", "все", "всегда" и пр. являются вашим личным мнением, никто не обязан воспринимать его серьёзно. Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 15:44 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
FlareЧем же ФоксПро богаче T-SQL, хотелось бы узнать, в плане "команд работы с таблицами"? Ну, например тем, что для организации прохода по строкам таблицы в VFP мне достаточно написать SCAN FOR... ENDSCAN, а в T-SQL придеться городить: DECLARE ....CURSOR. Затем OPEN..., FETCH NEXT FROM.... и наконец сам цикл: WHILE @@FETCH_STATUS = 0.... В VFP строчную обработку делать проще. А если Вы скажете, что можно обойтись без серверных курсоров, то я скажу, что Вы вряд ли разрабатывали серьезные прилажения на MS SQL, уж извините за прямоту. С уважением, Алеексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 15:58 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
Guest_1 Oracle 9i тот же обьем - 10с вместе с COMMIT. УЖАСНО большая разница Аж в три раза, только периодичность таких заливок не такая большая чтобы переживать из-за этого. Только вот если при такой заливке в VFP мигнет свет то ИМХО эти записи ручками выковыривать придется, а Oracle просто откатит незавершенную транзакцию умершей сессии. вот Вы опять говорите то, что где-то слышали, но не знаете наверняка и не проверяли. Ибо транзакиции есть и в ВФП, и откатываются так же, если не верите поищите по форуму. я даже скриншоты выкладывал, и по просьбам антифоспровщиков выдергивал сетевой шнур в момент работы транзакции.... Что качается обработки данные на стороне сервера, кто спорит - там и обрабатывать, что собственно мешает это делать при помощи ВФП, как клиента к Ораклу к примеру - неведаю, что мешает делать все на ХП в DBC тоже не ведаю, хотя и не увлекаюсь. Да кстати у нас Оракл + оракл Формс, так вот на базу в 1500 таблиц ХП-шек уж очень маловато + SQLMonitor показывает, что клиентские машины берут себе селектами данные и, наверное на месте обрабатывают, отлавая потом серверу данные, ВФП там и не пахнет, все есть КС, но тем не менее... только не надо пинать ногами, ибо писали тоже не дома на коленке хотя изредка SQLMonitor показывает но очень редко, как на мой взгляд. Или же это нормально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 15:59 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
Aleksey-KВ VFP строчную обработку делать проще. А если Вы скажете, что можно обойтись без серверных курсоров, то я скажу, что Вы вряд ли разрабатывали серьезные прилажения на MS SQL, уж извините за прямоту. Строчную обработку делать проще синтаксически. Для вас синтаксис стоит превыше принципов проектирования приложений клиент-серверной архитектуры? SCAN...ENDSCAN на клиентской машине - есть зло. Да, правильнее делать на T-SQL DECLARE CURSOR, если курсор действительно нужен. Для большинства задач нет необходимости применять курсоры. Применение курсоров должно быть последним в списке способов кодирования разработчика. Нуждаются в курсорах лишь некоторые типы разработки вроде динамических запросов(при получении того же кросс-таба), операций ориентированных на записи или прокручиваемых форм, чтобы не тягать на клиента по 100 000 записей. Если задачу можно решить без использования серверных курсоров, ее надо решать без серверных курсоров - это азбучная истина. Рекомендую почитать: Можно легко понять человека, не желающего учить довольно-таки корявые языки написания серверных процедур и отлаживать эти процедуры в среде, зачастую лишенной интерактивного отладчика. Но тогда надо быть готовым к тому, что просмотр таблицы на клиенте будет работать примерно вдвое - втрое дольше, чем в старом файл-серверном приложении, и во столько же раз увеличит сетевой трафик. 1024А вам, если вы умеете читать, кучу раз уже сказали что в случае использования для написания клиента к серверу среды со своим движком БД (коей и является вфп) возможно как обрабатывать подобные расчёты на сервере так и на клиенте. В случае отсутствия своего движка (с-диез) это невозможно. Вы полагаете, что я не могу менять как хочу свой DataTable внутри DataSet'а? А могу и в XML записать вместо DBF'а :) Что подразумевается под "движком"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 17:40 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
Вы полагаете, что я не могу менять как хочу свой DataTable внутри DataSet'а? А могу и в XML записать вместо DBF'а :) Что подразумевается под "движком"? ============================================= я уже приводил пример. Ну, ещё раз cn1=sqlstringconnect("driver=sqlserver... cn2=sqlstringconnect("driver=oracle... sqlexec(cn1,"select ... ",t1) sqlexec(cn2,"select ... ",t2) а дальше select ... from t1 join t2 on t1.tabnum=t2.tabnum ... select count(*) ... group by ... select sum(*) ... group by ... select avg(*) ... group by ... и т.д. т.е. любые средства обработки данных присутствующие в ANSI SQL. Можно и в цикле по таблицам датасета пробегать но для получения выборок скл всё таки удобней, он для этого и создавался. Т.е. те средства которые есть, например, в MS SQL+DTS но на клиенте. По-моему это нетрудно понять и решить что датасет с несколькими табличками это несколько не то. Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 18:24 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
FlareРекомендую почитать:Можно легко понять человека, не желающего учить довольно-таки корявые языки написания серверных процедур и отлаживать эти процедуры в среде, зачастую лишенной интерактивного отладчика. Но тогда надо быть готовым к тому, что просмотр таблицы на клиенте будет работать примерно вдвое - втрое дольше, чем в старом файл-серверном приложении, и во столько же раз увеличит сетевой трафик. Статья хорошая, если не считать того, что нового он там ничего не открыл. А просто проиллюстрировал примеры из информационных технологий к закону о “Единстве и борьбе противоположностей” или по-простому, к выражению - “две стороны одной медали”. А вот это - «…В общем, в течение года систему запустить так и не удалось, а потом банк помер. Когда я поведал эту историю одному знакомому квалифицированному ораклисту, он чрезвычайно возбудился и начал рассказывать, что, оказывается, нужно было просто подкрутить Oracle некоторые настройки, правда, НЕ ОПИСАННЫЕ в основной документации...» (выделено мной, привет FoxProHater) Если задаться вопросом, а собственно, на чем должно быть написано программное обеспечение, чтобы оно: - решало проблемы заказчика, ради которых он и затевает эту «катавасию» с разработкой; - работало с приемлемой скоростью; - устраивало заказчика по стоимости; - выдвигало минимальные требования к «железу»; - давало возможность развивать проект дальше; - требовало минимальные затраты заказчика на обучение персонала для работы с данным ПО; - требовало минимальные затраты на сопровождение и администрирование данного ПО, то, на мой взгляд, для очень и очень многих задач сегодняшнего дня (безусловно - не всех) - идеально подходит именно VFP (со всеми своими преимуществами и недостатками). И сегмент рынка именно, таких задач еще долго и долго будет существовать! Ну а те, кто уже перевел своих клиентов на .NET, обрадуйте их еще, ПУСТЬ ГОТОВЯТ ДЕНЬГИ - Билл Гейтс атакует http://]http://www.vzglyad.ru/economy/2005/7/31/2631.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 19:10 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
Да... такое впечатление, что Вы просто не смотрите на тот свое сообщение, которое вызвало мой ответ: FlareЧем же ФоксПро богаче T-SQL, хотелось бы узнать, в плане "команд работы с таблицами Мой ответ был именно на это ваше утверждение. Вы, прямо как профессиональный политик, начинаете рассуждать про то, чего в моем сообщении и близко не было. Все ваши рассуждения про серверные курсоры и пр. - это же прописные истины, которые даже рассматривать не хочется. FlareSCAN...ENDSCAN на клиентской машине - есть зло. А вот это меня просто позабавило! Или вы просто не знаете, что есть такое SCAN...ENDSCAN, или Вы его просто не можете готовить :). Или вы считаете, что пользователи на клиентских машинах могут быть удовлетворены рассматриванием результатом изощренных SQL запросов в виде HTML страниц. Так вот это не так. Клиенты, как правило, хотят данные, полученные с сервера, покрутить, рассмотреть с разных сторон, отсортировать и так и этак и пр. И вот на VFP это сделать не просто, а очень просто, не привлекая ресурсы сервера. Не понял Вашу ссылку на статью в Компьютерре!!! Это же беллетристика! Вы бы еще ссылку на статью в "МК" привели! Человек пишет о вещах, которые давно и мне совершенно уже не интересны. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 19:42 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
FlareЧем же ФоксПро богаче T-SQL, хотелось бы узнать, в плане "команд работы с таблицами"?Вы чужие посты читаете? В куске кода, который я приводил, была такая команда Код: plaintext 1. К слову, подобный кросс-таб - еще не крайний случай. Мне приходилось делать отчеты по продажам за месяц, где колонками служили дни недели. Причем первую неделю, если она начиналась не с понедельника, надо было дополнять пустыми колонками до семи дней. Flare...чтобы не тягать на клиента по 100 000 записей... FlareРекомендую почитать:Можно легко понять человека, не желающего учить довольно-таки корявые языки написания серверных процедур и отлаживать эти процедуры в среде, зачастую лишенной интерактивного отладчика. Но тогда надо быть готовым к тому, что просмотр таблицы на клиенте будет работать примерно вдвое - втрое дольше, чем в старом файл-серверном приложении, и во столько же раз увеличит сетевой трафик.Дураков, на самом деле, давно нет. По 100 000 записей на клиента никто не тянет. Если для вас статья 6-летней давности стала открытием, это не значит, что и все остальные до сих пор не поняли разницу в принципах разработки клиент-серверных и файл-серверных приложений. Ваши заявления - не более чем пустые рекламные лозунги. Проблемы, о которых вы говорите, в жизни не встречаются (разве что вы сами делатете подобные ошибки). Вы ничего не знаете о предмете, о котором судите. Вот FoxProHater, к примеру, гораздо более аргументирован. Он приводит примеры конкретных ошибок (во многом спорных, но его точка зрения имеет право на жизнь). Его примеры аккуратно подобраны и оформлены, и видно, что человек потратил немало времени на изучение проблемы. Берите пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 23:15 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
Странные вы, господа. Спорите что-то. А что спорить-то ? давно технологии программирования изменились а фокс остался в каком-то смысле старым по общению с данными. Вот если бы MS писали сервер БД, как говориться "спешинал фо фокс" была бы совсем другая тема. А так на самом деле прихоиться извращаься: то Win32 api, то С++ запертый в отстойный механизм FLL , то свои COM сервера на сервере - источнике данных. И уж точно SCAN... ENDSCAN - Это было круто во времена DOS. Скажу так - если такими сканом счтать данные на моих серверах - смерти OS подобно даже с 1 гиг оперативки. Я работаю в телкоммуникациях. И вот поверите, нет ни одной системы на фоксе способной тянуть биллинг даже районного узла связи. А способность к обработке таких данных - это критерий проф. нужности системы, между прочим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2005, 00:01 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
Flex0Скажу так - если такими сканом счтать данные на моих серверах - смерти OS подобно даже с 1 гиг оперативки. А никто этого и не предлагает. Речь идет о том, что какие-то задачи можно выполнять на машине клиента с применением Foxа, разгружая таким образом сервер. Кстати, вопрос к Sergey Ch, где-то он сказал, что ему фирма приобрела - Visual Studio Net 2003. Если это не коммерческая тайна, интересно, во сколько - удовольствие ей обошлось то? Может своим предложить, а заодно и технику под Vistu поменять, чтобы с работы выгнали? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2005, 01:44 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
Hi FoxProHater! Здесь обычно обмениваются мнениями коллеги, и потому обращение на "ТЫ" не является унизительным, скорее наоборот, но как ВАМ будет угодно... > "Опытными программистами" с предустановленным "чувствительным очком", к > сожалению, не всех сподобил господь рождаться сразу в готовом виде ... и > только на собственном опыте учатся всему, что умеют или не умеют в этой > жизни. Где противоречие с тем что я сказал? Вы ЗНАЕТЕ про такие "странные" ситуации - значит способны в 1001 раз не наступать на грабли. Думаю любому нормальному человеку достаточно 1 раз понять свою ошибку, чтбы потом её не повторять (ну а если вдруг кто запамятует и снова нарвётся, то исправит не за неделю, а за 5 минут) - это относится к ЛЮБОЙ среде и ЛЮБОМУ языку. > Особенно, если в публичных обсуждениях "достоинств" FoxPro последовательно > скрывать свое знание о его реальных "недостатках". 1) Никто ничего не скрывает. Информация вполне доступна. 2) Вы говорили о недостатках NET? Приводили код на C# который "в 100 строк содержит 5 глюков"? Так тогда кто из нас относится к вопросу ПРЕДВЗЯТО? Дабы пресечь ваше закономерное "В NET ошибок нету" просто посоветую любому заинтересованному лицу набрать в MSDN, в диалоге поиска слова "kbbug NET" и посмотреть... > А что, "статически описанные члены класса" в ООП уже стали добавляться в > код класса через визуальный редактор форм Естественно. По сути своей scx это и есть ОДИН класс (если откинуть объект DE) - и если бы prg синтаксис не имел ограничений по вложенности, то данный класс выглядел бы как .... ADD OBJECT pf1.Page1 AS Page WITH ... ADD OBJECT pf1.Page2 AS Page WITH ... ADD OBJECT pf1.Page3 AS Page WITH ... Это я и называю статическими членами класса. Динамические - это добавленные в рантайме, посредством вызова метода AddObject() (или NewObject()) - они вполне корректно удаляются с помощью метода RemoveObject(). Статические же члены класса не могут быть удалены столь безболезненно (в дизайнтайме они ВООБЩЕ не могут быть удалены - и это тоже вполне закономерно). Из "недокументированных" особенностей стоит отметить пожалуй то, что даже просто указание pf1.PageCount=3 в ОПИСАНИИ класса (а не где-то там в pf1.Init() или ещё каком методе - т.е. в рантайме) создаёт статические члены класса. > при явном удалении объекта из контейнера никаких "хвостов" от этого > объекта оставаться в контейнере не должно (азбучная истина). Если вы вырываете зуб - то следов никаких не остаётся? Почему вы считаете, что фоксовый контейнер это исключительно динамическая сущность? Это далеко не так - фоксовый контейнер (PageFrame в частности) может сочетать в себе как динамические, так и статические элементы. Если его НЕ наполнять ничем в DesignTime - то ВСЕ элементы будут динамическими. > Может быть и знаю, но к теме обсуждения это отношения не имеет, т.к. я не > мембера выкидываю из класса, а объектную ссылку из коллекции контейнера. Нет, вы именно member-объект пытаетесь удалить. Это НЕ ссылка в коллекции. > Мне ошибка не нужна, я именно это и хочу учесть при обращении в странице, > которая потенциально может быть удалена из PageFrame Тогда вам не стоило Page описывать статически - нужно было в Init фрейма добавить свою страницу (либо по AddObject, либо увеличив PageCount). В приведенном же случае может помочь скажем type("this.pf1.Page3.Name") = "C". Однако повторюсь - ошибка не тут, а в самой первоначальной идее - пытаться удалить статический member-объект... > Я не могу понять, почему "Visible = .F. при AddObject борется с Visible = > .T.", зачем им "бороться"? Это что - 2 "конкурирующих" Visible? Нет, но это взаимно противоречащие установки для одного и того-же свойства (т.е. фокс полагает то что контрол добавленный по AddObject()невидим, а по факту он видим). Я не могу сказать точно каков порядок инстанциации контрола в данном случае, но видимо Visible = .T. в определении срабатывает до того, как проинициализируются внутренние свойства, определяющие расположение контрола на невидимой странице (и как следствие контрол НЕ должен прорисовываться). > И почему для FoxPro-шных контролов (Grid, TextBox etc) никакой "борьбы" не > наблюдается Поскольку они "рисуются" в отличие от Activex-а, и видимо не имеет значения, будет ли произведено "несвоевременое" отображение или нет. > Или это специальное мощное средство FoxPro для "облегчения использования" > ActiveX-компонентов? Конечно нет - это конечно непредусмотренный эффект - видимо тестеры не додумались сделать такую комбинацию свойств, и пропустили... > Настолько же часто, насколько любой программист захочет написать > добавление грида на форму кодом, а не форм-дизайнером. Я не очень представляю ситуацию, когда нужно ОСТАВИТЬ RecordSource пустым - т.е. если добавить программно грид, и присвоить RecordSource, то никакой проблемы не будет... Если же ИМЕННО надо оставить это свойство пустым - считайте число колонок другим способом, например через AMEMBERS() или при описании класса грида явно укажите ColumnCount=0 (раз уж колонки добавляются через метод AddColumn()). Вообще ColumnCount = -1 это специально зарезервированное зачение (для поддержки автосоздания столбцов) - видимо потому и обработка сделана как-то по особому, и возникает в результате описанная вами проблема. >> - а допустим ли ТАКОЙ синтаксис в SELECT команде? не нужно ли убрать >> первый строковый литерал? > Такой вопрос открывает в тебе "большого специалиста" по > клиент-серверным технологиям ввообще и по T-SQL в частности, лучше бы > сразу признался: "извините, не работал я с MS-SQL-Server, все под DBF-ками > точу", не позорился бы лишний раз. Я просто не могу проверить это, "пощупать своими руками" так сказать - о чём и предупредил. У меня стоит Oracle, в нём естественно такой синтаксис недопустим. В синтаксически корректной конструкции, например: ? SQLEXEC(ln1, "begin RAISE_APPLICATION_ERROR(-20001, 'Мой текст сообщения об ошибке'); end;") Всё возвращается как и положено - именно пользовательское сообщение об ошибке. Аналогично (корректно) отрабатывают и ошибки генерируемые из UDF, пакетов и т.п. Я специально посмотрел BOL, и не нашёл там нигде подобного примера (RAISERROR везде употребляется вне SELECT - как отдельная команда) - упоминания о том, что RAISERROR можно использовать внутри SELECT я также не обнаружил. Кроме того, согласно общему синтаксису команды SELECT, между элементами списка выбора должны быть запятые. Только в случае "элемент_выбора [AS] название_поля_в_резалтсете" не нужно запятых - но как может быть "названием поля" такая конструкция - я не представляю. Если же вы имели в виду что это 2 отдельные команды, то видимо между ними нужно добавить символ ; - как описано в статье "Specifying Batches" для ODBC. > Еще один образец понимания сути команд на языке T-SQL (а командишка-то > плевая, всего 2 простейших оператора). Так это одна команда, или всё-же Batch из 2-х команд? Я не привык к тому, что разные команды ничем друг от друга не отделены, и не уверен что ODBC может корректно обработать такую строку... > И тут "прокольчик" Вопрос в том чей - мой или ваш. Ибо по поводу RAISERROR в BOL написано довольно много - в частности (если очень кратко) - для батчей возвращающих несколько резалтсетов нужно проверять статус наличия ошибки после получения каждого резалтсета - ибо последующие резалтсеты будут затирать результаты предыдущих. В фоксе, чтобы раздельно получать множественные ODBC резалтсеты, нужно как минимум отключить "BatchMode" и воспользоваться SQLMORERESULTS(). Является ли конструкция из одного единственного SELECT и последующего RAISERROR "многорезультатной" я не могу сказать. , ув. "большевик" - как раз "ДРУГИЕ клиенты работающие через ODBC драйвер" обрабатывают это ситуацию "на ура" ( > например, тот же ADODB.Recordset Вообще-то ADODB обычно работает не с ODBC драйвером, а непосредственно с Ole DB провайдером. > но я-то писал не о "других", а о твоих "родных", FoxPro-шных О ком это? ODBC такая-же сторонняя система для VFP как и OLE DB и ADO. "Родное" для него это прямой доступ к dbf и ничего более. > а ты тут берешь и прямо открытым текстом расписываешься в том, что ничего > другого и не знаешь... Да, в MS SQL я не являюсь специалистом. Однако мне кажется, что это не имеет никакого отношения к теме разговора. > есть разница между "детскими болезнями роста" и "старческими болезнями > вырождения", и не чувствовать ее может только слепой/глухой... Видимо я такой и есть, ибо для меня ошибка - она и есть ошибка - независимо от того существует она в VFP, в .NET или в любой другой программе. И почему ошибки в NET это "ничего страшного" а ошибки в VFP это причина называть его всякими обидными словами - я не понимаю. Я ещё могу понять классификацию ошибок по степени их влияния на процесс разработки - т.е. на критические (нет возможности их обойти и потому использование какой-то функции/класса/просто элемента языка невозможно) и некритические (когда способ обхода известен и не представляет никакой проблемы). Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2005, 04:46 |
|
||
|
(C#) Интересно, хорошо это или плохо...
|
|||
|---|---|---|---|
|
#18+
Hi Guest_1! > Да вы поймите что на Oracle пользователи будут работать Вам привести статистику "работы" одного такого сервера? Ну извольте - запрос обрабатывающий в итоге несколько сотен тысяч записей (ну да, алгоритм там конечно навороченный - UDF в подзапросе, соединение десятка таблиц, в т.ч. в подзапросе повторно соединяются те-же таблицы) на нашей незагруженной системе отрабатывает порядка 20 секунд - на "рабочей" системе - от 10 минут в обеденное время, до 20 минут во время штатной работы с сервером. > Аналогично ? А вы если не секрет из всего "богатства" VFP используете > только SELECT,INSERT,UPDATE и DELETE ? Нет конечно > Если так то удел этих операторов > server-side. Однако если брать VFP, то я могу их использовать на любом уровне - и в клиентской части тоже. > Если нет то обьясните мне хотя бы вкратце что такого ЛУЧШЕГО > есть в VFP для работы с БД. Пустой вопрос. То что для меня "лучшее" - вам будет "не нужно и вредно" - это уже озвучивалось. >> Он ставит свой сервис (т.е. висит в памяти ПОСТОЯННО в отличие от фокса). > Я говорил что он не тяжелее VFP. А если учесть, что VFP в памяти это И движок СУБД И движок клиентской части (причём это интерпретатор, в отличие скажем от "старого" C/C++) > А вам команда shutdown не знакома Я лично не работаю с IB, а разработчикам той софтины видимо не знакомы. Хотя шатдаунить сервер после каждой транзакции (и даже при закрытии приложения!) - это уж извините меня маразм полный. Если ты нормальный сервер, то после COMMIT данные должны лежать на диске и ни от каких сбоев питания и прочих форс-мажорных обстоятельств не зависеть. Сделать шатдаун "извне" я не могу, уже хотя-бы потому что не имею логина к этой базе. > Сервер на вашу остановку сервиса среагировал вполне нормально - не > сохранил незакоммиченную транзакцию. Я почему-то считал что если клиентское приложение закрыто, то никаких "незакоммиченных транзакций" в принципе быть не может - либо делай откат (если разработчик клиента настолько туп что COMMIT или AUTOCOMMIT не использует), либо сохраняй данные. Кроме того нормальная посылка Stop сервису IMHO должна обрабатываться НОРМАЛЬНО - это не TerminateProcess какой-то. Скажем Oracle вполне адекватно реагирует на остановку/перезапуск своего сервиса. > И еще насчет обработки данных на клиенте. Если клиент для больших и > сложных > расчетов будет иметь тачку сравнимую по мощности с сервером то не > задуматься > ли над тем чтобы апгрейдить сервер а не клиентские места? 1) Никто не говорит о СПЕЦИАЛЬНОМ апгрейде клиентов (кроме MS с их потрясающей новой ОС - которой уже нужны двухпроцессорные ядра для работы :) ну и с NET, который на всего-лишь прошлогодних компах тормозит по самое не балуй). 2) Предположим, что у конторы УЖЕ ЕСТЬ 500 сравнительно простеньких по нынешним меркам Celeron 1GHz, и каждый клиент на них выполняет тот самый пресловутый xtab запрос (для простоты из таблички с всего-то 10000 записей) - теперь вопрос - КАКОЙ должен быть сервер, чтобы в разумное время (не 10 минут) обслужить такое число клиентов? А какой должен быть сервер, чтобы просто выбрать требуемые 10000 записей и послать их каждому клиенту - дабы тот "своими силами" создал xtab из них? Я уже не говорю про другие классы задач - логистика с её линейным программированием, сложный стат-анализ с элементами моделирования, математическое программирование... Когда объём данных может быть сравнительно невелик, а вот число производимых с ними операций - огромно. Попробуй оцифровать скажем 50 видео-потоков на самом крутом сервере (желательно ОДНОВРЕМЕННО - т.е. чтобы последний не ждал пока полностью отработают задачи первых), а потом по 1 потоку на 50-ти сравнительно слабых компов - потом сравни полученные результаты. > И не бегать же > извините за пользователем который делает расчет месяца со словами - > "Дяденька не выключайте машину, у нас тут расчет идет" Зачем за ним бегать? Это ведь ему нужен результат - если на его машине расчёт идёт. Ну не захочет ждать - вырубит - ну ничего страшного - значит не получит он результата. А вот бегать по всем и успокаивать "подождите пол-часика, пока у нас тут расчёт закончится, не тревожте сервер" - это что хорошо? Особенно учитывая что в "блокировочнике" типа MS SQL либо массивный расчёт заблокирует кучу данных, либо его результатт будет некорректным из-за происходящих в момент расчёта изменений в таблицах. > Oracle 9i тот же обьем - 10с вместе с COMMIT. УЖАСНО большая разница У меня 8.1.7 вставка заняла 145 секунд - на той-же домашней системе, при условии что это был ЕДИНСТВЕННЫЙ клиент, кроме того через ODBC не перекачивалась "полноразмерная" запись - лишь одно crah(10) поле (ODBC трассировка естественно выключена, для соединения использован режим ручного COMMIT). На работе помнится ребята заполняли таблицу на MS SQL GUID-ами - 1Млн записей - это заняло порядка 1.5 часов (чёрт его знает - влиял на это сам факт расчёта GUID для каждой записи или нет)) > Только вот если при такой заливке в VFP мигнет свет > то ИМХО эти записи ручками выковыривать придется, а Oracle просто > откатит незавершенную транзакцию умершей сессии. "Выковыривать" это громко сказано - поправить заголовок dbf-а это 20 строк кода, или если вручную делать (воспользовавшись калькулятором и описанием структуры заголовка dbf) - 5 минут. А вот когда у меня на Oracle накрылся один из файлов (тоже сбой питания кстати говоря) - пришлось полностью переставлять сервер (т.к. мне не критичны были сами данные, то просто скриптом всё пересоздал). > У SQL есть строгая концепция и стандарт, Ну ну, моут быть вы расскажете про "строгую концепцию и стандарт" на примере SQL диалекта скажем в MS SQL и в Oracle 8i - даже НЕ учитывая их процедурные языки. > а VFP какая-то сложная смесь смесь ЯЗЫКА ОБРАБОТКИ ДАННЫХ и > ЯЗЫКА ПРОГРАММИРОВАНИЯ Ну и что? MS предполагает вообще использовать NET языки для написания ХП в новой версии MS SQL. Oracle позволяет использовать java - тоже кстати весьма далёкий от ЯЗЫКА ОБРАБОТКИ ДАННЫХ - просто "универсальный" язык... > не имеющая ни стратегии развития ни стандарта, Что такое "стратегия развития"? Почему вас не смущает "отсутствие развития" у C++ придуманного чёрт-знает как давно? Стандарт естественно имеется. В SQL части реализовано практически всё подмножество SQL'92 - в xBase части оставлено всё что было в xBase языках, на момент пока они ещё не разошлись кто куда... > по сути МАКРО ЯЗЫК ОБРАБОТКИ ДАННЫХ. И это здорово! > Вы где нибудь видели ANSI Foxpro ? Хм, у NET есть стандарт ANSI или ISO? Как я понима ни один патентованный язык не имеет такого стандарта, да и не нуждается в этом - т.к. кроме владельца патента (или что там у MS) никто не имеет права выпускать своих реализаций. > Может быть поэтому у тех кто много писал на C,C++,Pascal,Object Pascal > такое стойкое неприятие VFP ? Отчего-же тогда у C-ков стойкое неприятие к С++ программерам, у них обоих ещё более стойкое неприятие к Delphi-нам в частности и ко всему Паскалю в общем? Да и вообще "стойкое наприятие" IMHO характерно для всяких "студентов" и "кулхацкеров" - нормальные разработчики ничего подобного не высказывают. Они вообще в основном работой занимаются, а не лазят по непрофильным форумам с целью обгадить кото-то. > Если я понимаю идеологию С и C++ мне легко понять идеолгоию Java и C# > А вот с VFP извините у меня проблемы Мне искренне жаль. > да и есть ли у него идеология ? У него как таковой идеологии нет. Можно использовать несколько (очень разных) стилей программирования. Лучше их конечно не смешивать, а раз выбрав - одного и придерживаться. Впрочем я сомневаюсь что скажем C++ разработчик станет совмещать MFC, ATL, прямое использование WinAPI и ассемблерные вставки... Если же речь идёт о таком понятии как ООП - то отличий в принципе нет. > Ну откуда ты знаешь что я могу а что нет? Это было обезличенное обращение. > у каждого из них был свой стиль Т.е. вы утверждаете, что на C++ нет проектов, написанных несколькими разработчиками с использованием РАЗНЫХ подходов? Что это невозможно вообще? > разбираться сейчас с этой мешаниной стилей > не скажу что сложно, но неудобно. Разбираться с "мешаниной" неудобно в ЛЮБОЙ среде. NET не исключение. > Дак вот мне кажется что идеология языка > должна включать в себя создание определенного стиля (или единооборазия > стилей). Нет, это не относится к языку. Это НЕ МОЖЕТ относится к языку. Если вы в курсе общей схемы (технологии) создания ПО, то должны знать, что "средства реализации" вовсе не диктуют основные проектные решения. Т.е. правильно спроектированное ПО одинаково легко реализуется практически на любом языке. Если же в процессе реализации будут кардинально меняться основные проектные решения - то тут сам язык увы ничем помочь не сможет. Вообще постановщик, проектировщик, аналитик - не обязаны ничего знать о том в какой среде будет реализована система. Это совсем иной уровень абстракции... Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2005, 04:46 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33194690&tid=1589346]: |
0ms |
get settings: |
7ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
152ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 475ms |

| 0 / 0 |
