В ответ на ответ Sir Henry по вопросу #1549 пишу следующее: ключ уникальности стоит - ясен перец, но ТОЛЬКО НА ПОЛЕ ID !!! Номер документа (официальный) идет с начала года с №1 и до 23:59,31 декабря след.года, далее он опять должен считаться с нуля, следовательно он не может быть уникальным. Моно, конечно, и при открытие проги проверяить на подобное и в случае чего SET GENERATOR .. TO 0, но хотелось бы с помощью триггера попробовать. Номера на документ прихода/расхода могут достигать до 8 номеров одновременно
Приветствую Вас, jiny! В таком случае, ясен перец :)), Вам в этот триггер нужно посылать текущую дату и дату обнуления генератора, и проверять уже в триггере, нужно обнулять ентот столбец с номером документа или не нужно. //NowDate - текущая дата, EdgeDate - дата перевода стрелок :), например 31.12.2004_11:59:59 CREATE TRIGGER MyNewIDPlat(NowDate DATE, EdgeDate DATE) ....
IF (:NowDate > :EdgeDate) THEN SET GENERATOR ... TO 0 ...
Впрочем, не претендую на истину в последней инстанции, можно и еще какие-нибудь варианты сделать основываясь на том, что дату можно и в самом триггере проверить. Ответ отправлен: 24.05.2004, 07:19 Отправитель: sir henry
Вопрос № 1553
У нас есть локальная сеть, протянутая по всему городу. Есть куча разных серверов. Как хттп, так и фтп. Есть инет-страница, которая показывает статистику этих серверов. Определяет она это состояние следующим образом: на каждом сервере (HTTP or FTP) есть файл y.gif. Так вот если его нет, то картинка в браузер не грузится, а если есть, то грузится ;) Таким образом юзеры видят состояние серверов в данный момент. На Дельфи я хочу сделать тоже самое. Вернее почти уже сделал... но пока нашел функцию скачки файлов по HTTP. Но на 11 сервере она почему-то останавливается и ничего не пишет. Причем если 11ым поставить другой сервер, все происходит также :( Может как-то можно по-другому проверить состояние FTP и HTTP ? Вот исходник проекта:
Добрый день, maDByte! Посмотри в Королевстве Delphi Ответ отправлен: 24.05.2004, 19:04 Отправитель: Pawel Отвечает Boriss
Здравствуйте, maDByte! Может использовать простое PING: http://www.delphimaster.ru/articles/icmp.html (Реализация ping с помощью ICMP API) Кроме того в Королевстве Delphi нашел то, что в приложении. Не проверял
Приложение: Ответ отправлен: 24.05.2004, 11:48 Отправитель: Boriss
Вопрос № 1554
Привет! Есть функция, которой я определяю существование 20 URLов. Если URL найден, то тут же выдается положительный ответ, но загвостка заключается в том, что если URL не нашелся, перед ответом 'Такого ресурса нет', программа думает целых 25 секунд... Может есть способ как увеличить скорость проверки существования URL? Заранее благодарю!
Добрый день, maDByte! Я бы запускал проверку либо скачивание указанной страницы в отдельном потоке, одновременно запускал бы таймер на 5 секунд например. При срабатывании таймера я бы проверял как там дела с проверкой ну или со скачиванием страницы (сколько байт страницы скачалось), и если дела плохо, то завершал бы поток и дальше уже выводил бы ответ -такого ресурса нет- или что угодно... Ответ отправлен: 24.05.2004, 07:59 Отправитель: CrackLab Отвечает Boriss
Здравствуйте, maDByte! Пожалуй, совет CrackLab наиболее удачен. Так уж устроена сеть, что она пытается найти всегда. И это правильно, так как сервер может просто не успевает дать Вам положительный ответ Ответ отправлен: 24.05.2004, 10:28 Отправитель: Boriss Отвечает Pawel
Добрый день, maDByte! Использовать таймер в отдельном потоке. Ответ отправлен: 24.05.2004, 19:13 Отправитель: Pawel
Вопрос № 1555
Была написана программа на Дельфи6. Затем в результате отката ОС ХР были потеряны исходники к измененной версии программы. Осталось только откомпиллированный exe файл. Необходимо востановить исходные коды программы из этого exe файла. Возможно ли это, если возможно, то как? Нужен практический совет или хотя бы ссылки.
Доброе время суток, Dfkthbq! Вряд ли получится что хорошее. То есть деассемблировать точно сможете, но разобраться в нем ... Проще заново написать. Слышал о программах, восстанавливающих код Паскаля, но даже и не пробовал. Вот, например: http://www.ems-hitech.com/sourcerescuer (кажется, платный)
Ответ отправлен: 24.05.2004, 10:18 Отправитель: Boriss Отвечает CrackLab
Здравствуйте, Dfkthbq! Исходный код дельфи восстановить не получится. Как уже ответили другие эксперты можно только засунуть файл в дизассемблер и получить дизассемблированный листинг и все. Но это вам ничем не поможет. В общем нужно писать заново. Ответ отправлен: 24.05.2004, 14:18 Отправитель: CrackLab Отвечает sir henry
Приветствую Вас, Dfkthbq! Возможно, но только в исходный код ассемблера, потому-что ЛЮБАЯ программа, на чем бы она не была написана, преобразуется в машинный код. А аналог машинного кода - это только ассемблер. Ответ отправлен: 24.05.2004, 11:05 Отправитель: sir henry Отвечает Snowm@n
Добрый день, Dfkthbq! Юзай DeDe (Delphi Decompiler) - авось поможет :) Ответ отправлен: 26.05.2004, 09:58 Отправитель: Snowm@n Отвечает Pawel
Добрый день, Dfkthbq! Полностью нельзя. Частично(формы, ресурсы и т.п.) с использованием DeDe. Ответ отправлен: 24.05.2004, 19:16 Отправитель: Pawel
Вопрос № 1556
Добрый день! Подскажите, что я не так делаю: есть база Foxpro 2.0 Пробую ее с помощью DataPump перегнать в *.db (Paradox) не получается что-то с кодировкой, хотя в Visual Foxpro открывается с кодировкой 866 все нормально. В BDE ставил самые разные драйвера Langdriver, все равно на экране какая-то белиберда.
Доброе время суток, Владимир! Вопрос неточно сформулирован. Что значит "самые разные"? На моей машине имеется только один подходящий dBASE RUS cp866. Не лучше ли решить проблему средствами FoxPro - сменить кодировку. Или, нашел в справке: Надо установить шрифт по умолчанию не Arial Cyr , а Fixedsys или System. Примерно так: 1.найти производителя в реестре HKEY_CURRENT_USERSOFTWAREBORLANDDBD7.0PreferencesPropertiesSystemFont и меняешь Arial Cyr на стандартные для Windows: Fixedsys или System (писать название шрифта с большой буквы). 2. И в стандартном драйвере BDE ,например DBASE, ставишь русский драйвер dBASE RUS cp866. Открываешь BDE configurator(administrator) и в строке Drivers->Native->DBASE->Langdriver->ставишь dBASE RUS cp866. Ответ отправлен: 24.05.2004, 16:15 Отправитель: Boriss Отвечает sir henry
Доброе время суток, Владимир! Скорее всего у Вас в *.db тоже получается 866-я кодировка. Попробуйте в VFP или написав соответствующую программу на дельфи, сначала конвертировать 866-ю кодировку в 1251, а потом уже перегонять в db. Ответ отправлен: 24.05.2004, 11:09 Отправитель: sir henry Отвечает Pawel
Приветствую Вас, Владимир! Ну так и получаете в db тоже кодировку 866. Нужно через FoxPro перекодить базу.
Ответ отправлен: 24.05.2004, 19:17 Отправитель: Pawel
Вопрос № 1557
Спасибо Sir Henry, but : в триггере не выполняется SET GENERATOR .. TO .. Версия Interbase 6.0 Как быть ? И 2-ой вопрос : пишу под Win98 хотелось бы XP-шный стиль, со вставкой XPmanifest ничего не меняется, перерыл инфу на эту тему, но так ничего не понял. Прошу доходчиво объяснить как это делается на практике.(поэтапно)
Добрый день, jiny! 1. Да, действительно. Я честно говоря об этом не подумал :)). Но не все так плохо как кажется :). Обнулить генератор можно так: TEMPVAR = GEN_ID(NameOfGenerator, -GEN_ID(NameOfGenerator, 0); т.е. сгенерировать значение с приращением на то же число, что уже есть в генераторе, но с обратным знаком. Немножко притянуто за уши, но работает :). 2. Не могу ничего сказать по этому поводу, т.к. не люблю украшательства в программах, но по-моему манифест работает только в XP, для остальных (W2K, например) нужно скачивать специальные библиотеки. Я этим вопросом не задавался, поэтому более подробно ничего сказать не могу. Ответ отправлен: 25.05.2004, 09:13 Отправитель: sir henry
Вопрос № 1558
Здравствуйте,ALL! Опять я со своим вопросом...за номером 1540 и похожим на мой 1547.Пример с базой interbaseпонятен, но есть и MSACCESS:) Перепробовал 1001 комбинацию,и опять прошу помочь, потомучто ничего не получилось. Привожу пример кода- регистрации, который не работает. И неможет работать...
Приветствую Вас, Гена Васечкин! Не пользую Interbase, а ADO. Но вот что нашел в описании: Так как для доступа к БД компонентам Interbase не требуется BDE, то для создания соединения используется всего одно свойство DatabaseName. Для создания соединия можно воспользоваться СТАНДРАТНЫМ ДИАЛОГОМ ВЫБОРА ФАЙЛА ПРИ ЩЕЛЧКЕ НА КНОПКЕ СВОЙСТВА В ИНСПЕКТОРЕ ОБЪЕКТОВ (TIBDabase). Компонент имеет собственнй редактор, позволяющий задавать значения свойств соединения. Там же можно и протестировать соединение Ответ отправлен: 27.05.2004, 16:29 Отправитель: Boriss
Вопрос № 1559
Здравствуйте ,эксперты .Может кто знает в каком файле лежат все зарезервированные слова в Delphi .Не хочеться лазить по модулям и в ручную вытаскивать их .Спасибо за ответ .
Добрый день, Seiphirot! Все зарезервированые слова лежат не в модуле, а в учебнике по Дельфи. Если Вы имеете в виду слова типа FOR, IF, REPEAT, то их орпеделений ни в одном модуле Вы не найдете, это Вам не функции :)). Ответ отправлен: 25.05.2004, 10:24 Отправитель: sir henry Отвечает Pawel
Приветствую Вас, Seiphirot! Reserved Words в хелпе посмотри. Ответ отправлен: 24.05.2004, 18:51 Отправитель: Pawel Отвечает CrackLab
Приветствую Вас, Seiphirot! В дельфи в хелпе есть тема Reserved Words. Вот что там написано: The following reserved words cannot be redefined or used as identifiers. and array as asm begin case class const constructor destructor dispinterface div do downto else end except exports file finalization finally for function goto if implementation in inherited initialization inline interface is label library mod nil not object of or out packed procedure program property raise record repeat resourcestring set shl shr string then threadvar to try type unit until uses var while with xor In addition to the words above, private, protected, public, published, and automated act
as reserved words within object type declarations, but are otherwise treated as directives. The words at and on also have special meanings. Ответ отправлен: 24.05.2004, 18:24 Отправитель: CrackLab Отвечает Boriss
Здравствуйте, Seiphirot! %)) А зачем их вытаскивать? Пусть там и сидят. А серьезно, купите учебник любой, а лучше хороший. Я считаю, что и английский и язык знаю, а всех ж пять учебников купил. Там сеют доброе. Или у Вас какой-то замысел хитрый? Ответ отправлен: 25.05.2004, 18:53 Отправитель: Boriss Отвечает Snowm@n
Добрый день, Seiphirot! help->reserved words Ответ отправлен: 26.05.2004, 09:56 Отправитель: Snowm@n
Вопрос № 1560
Доброе время суток! Помогите мне в таком деле: 1. Требуется создать невизуальный компонент, который будет при изменений размеров формы менять пропорционально размеры всех находящихя на нём др. визуальных компонентов. Как это сделать? 2. Как события копмонентов создаваемых привязять к событию др. компнента? Заранее всем спасибо, кто ответит!
Здравствуйте, Roman! А зачем? Просто в обработчке события OnResize для заданной формы изменяйте размеры других форм. Для этого пропишите их модули в USES, посмотрите в VAR, как они называются и спокойно так изменяете. Тут одно только - не зациклитесь! Это стандарнтый такой приемик ... 2) Уточнине: программно или во время разработки? Ответ отправлен: 25.05.2004, 19:08 Отправитель: Boriss Отвечает sir henry
Добрый день, Roman! 1. В свойстве OnResize формы отслеживайте коэффициент изменения формы и меняйте размеры других компонентов по этому коэффициенту. Зачем нужен невизуальный компонент при этом - совершенно непонятно. Но если он Вам нужен - дело Ваше :). 2. Нельзя ли переформулировать вопрос? Вы имеете в виду, как из событий одного компонента вызывать события другого компонента? Просто вызывайте и все :). Ответ отправлен: 25.05.2004, 10:30 Отправитель: sir henry Отвечает Snowm@n
Уважаемые эксперты пожалуйста помогите: Необходимо в СBuilder вывести на принтер PaintBox как это можно реализовать, а также копирование в буфер. На PaintBoxe рисую методом canvas.
Приветствую Вас, Андрей Зеленый! 1. У принтера есть такой-же Canvas. Делайте выводы :)). Почитайте по ссылке: http://www.comprice.ru/debug/2003-50.phtml 2. PaintBox в буфер - смотрите приложение.
Приложение: Ответ отправлен: 25.05.2004, 10:55 Отправитель: sir henry Отвечает Boriss
Здравствуйте, Андрей Зеленый! sir henry все написал. Я только напомню, что в Builder вместо "дельфийской" точки (ю) ставьте ->. И все будет, как написано
Ответ отправлен: 25.05.2004, 19:10 Отправитель: Boriss
Вопрос № 1562
================-------------------- Я бы запускал проверку либо скачивание указанной страницы в отдельном потоке, одновременно запускал бы таймер на 5 секунд например. При срабатывании таймера я бы проверял как там дела с проверкой ..., и если дела плохо, то завершал бы поток и дальше уже выводил бы ответ -такого ресурса нет- или что угодно... ----------------===================== А реализацию можно ? Заранее благодарен!!!
Доброе время суток, maDByte! Ну всю программу я писать не буду, хотя бы потому что последний раз я писал программу для работы с интернет года 2 назад и сейчас в упор не помню че там и как. Но могу подсказать как в Delphi создать поток, а вы уже впишете тело функции в потоковую процедуру. Ответ отправлен: 24.05.2004, 21:11 Отправитель: CrackLab
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.