Перейти к содержанию

Lucky

Пользователи
  • Постов

    33
  • Зарегистрирован

  • Посещение

Весь контент Lucky

  1. Тогда меняй БП, тебе же говорили... Ещё и видяшку не помешало бы поменять - проц мощный, система охлаждения, возможно, не справляется.
  2. Кстати, sql.ru - пристанище для людей, просящих помощи по базам данных. А вообще, их (компонентов) несколько групп: ADO, dbExpress, компоненты для работы с Interbase, BDE (после 7-й версии не развивается, чисто для поддержки старого ПО).
  3. Марко Кэнту. Delphi 7 для профессионалов.
  4. бывает... отсюда мораль - именуй компоненты, как надо, чтобы не было такого головняка в след. раз
  5. И нафига эта зелёная борода нужна? Читай выше, ёлы палы... смотри внимательней form3.table1.Locate и form3.Label1.Locate
  6. Взят метод от компонента по работе с БД (например, Table или Query). Locate производит поиск в Dataset по указанным полям первой позиции с указанными значениями этих полей. Table и Query - потомки TDataset. Locate - метод TDataset (TDataset.Locate(...)). Судя по загруженному модулю DBTables, используется BDE.
  7. Для проверки вхождения символа в строку используй функцию Pos. Присвоение Key нулевого символа (Key := #0) оставляет строку Edit'а без изменений. Кстати, для определения символа-разделителя целой и дробной частей используй константу DecimalSeparator (модуль SysUtils).
  8. Конечно, ответ хотелось услышать от toll'a, но, что-то он молчит...genemy Да, ты прав, ЭТО лишнее. И прав в том, что через вьюшки можно данные менять, что-то я подрастерялся малость... X-tender Я и имел в виду ограниченный набор данных. Да и явное ограничение по действиям пользователя определяется набором его прав (т.е., у одного пользователя может быть несколько ролей).
  9. Нет, Я не Петя.Фраза "динамическое представление данных" разве не означает, что этот набор создаётся в момент обращения к представлению? Ответ - динамические наборы данных (НЕ таблицы). Т.е., обращаясь к вьюшке за данными (например, SELECT * FROM View1) мы, по-сути, исполняем тот запрос, который её и формирует. Например, пускай представление View1 определено как SELECT * FROM Table1 WHERE Field3>100Тогда запрос вида SELECT * FROM View1можно представить в виде следующего запроса: SELECT * FROM (SELECT * FROM Table1 WHERE Field3>100) v1 Не помню, как насчёт MS SQL, но в Oracle есть материализованные представления (т.е. это вьюшки, у которых хранится результат в виде таблицы). Через вьюшки обычно решается распределение прав доступа к тем или иным данным - кому попало давать права на просмотр всей таблицы нет необходимости. Поэтому, вьюшки являются неким инструментом в разграничении таких прав - мы даём пользователю права на просмотр вьюшки, а не всей таблицы, тем самым оберегая себя от непредвиденных последствий (вдруг тот окажется "прошаренным маньяком" и понапакостит в данных). Таким образом, исходя из соображений безопасности, конечному пользователю данные следует передавать посредством представлений, а внесение изменений осуществлять посредством процедур (т.е. исключить прямой доступ к данным). А теперь, ВНИМАНИЕ, встречный вопрос: "В примере про JOIN я допустил ошибку. В каком месте?".
  10. Views (вьюшки) - динамические представления данных. Её состав определяется командой выборки данных (SELECT). Вьюшка определена заранее, простой выбор из таблицы - более гибок. Кроме того, к вьюшке нельзя создавать индексы. Основное назначение - отражение данных конечному пользователю (т.к. даёт доступ только на просмотр данных), т.е. через вьюшку данные нельзя изменить.
  11. toll Сдаётся мне, неспроста такие вопросы... В общем, чтобы не тормозило, создавай индексы - даёт ну оооооочень большой скачок в производительности. Причём, индексы в таблицах должны соответствовать тем полям, по которым идёт сравнение (т.е., в том числе и составные индексы). И можно воспользоваться разного рода соединениями через JOIN, например: SELECT t1.FieldA, t3.FieldB FROM Table1 t1 LEFT OUTER JOIN Table2 t2 ON t1.ID_t2 = t2.ID AND t2 LEFT OUTER JOIN Table3 t3 ON t2.ID_t3 = t3.ID CooDi Чтобы данные отсечь, их нужно сначала найти, а для этого и применяют индексы.
  12. нужно поставить ADOConnection.LoginPrompt := false (по-умолчанию стоит true)
  13. Что протёрли данной жидкостью? Тонким слоем протирали, али как?
  14. The_Ice Это мы к чему сейчас клоним? Ежу понятно, что Canvas - это экземпляр класса TCanvas. Просто Dackregin не имеет представления об объектно-ориентированном программировании (ООП). Я лишь дал почву для размышления, а углубляться, уж извините, нужно самостоятельно. Dackregin Изучай принципы ООП.
  15. The_Ice смысл ведь понятен? Cristian пространство имён System.Draw
  16. coder потомучто Мелкософт пропагандирует до-соплей свой подход к работе с базами данных через ODBC, в то же время в Delphi способов куча - и ODBC (ADO), и родная поддержка Interbase, и dbExpress (прямое соединение через клиентские библиотеки). Я работаю с Oracle, и пробовал разные способы, поверь - через dbExpress получение данных идёт быстрее. Кроме того, модель работы с данными в C# просто убивает своей нерациональностью - зачем-то сделали возможность ПОЛУЧЕНИЯ ВСЕЙ СХЕМЫ ДАННЫХ НА КЛИЕНТА и дальнейшее извращение с созданием связей и прочего, что ДОЛЖНО БЫТЬ НА СЕРВЕРЕ БД. Кароче, бред какой-то... Конечно, есть второй вариант - работа посредством запросов, но по-незнанию люди-то хватаются именно за первый вариант. Объяснение типа "поддержка оффлайновых сервисов" меня не устраивает по той причине, что можно всё это организовать в виде локальной СУБД. В общем, двойная работа получается... Полнейшее нарушение принципа построения клиент-серверных приложений. И вся эта штука может храниться в виде XML (оффлайновая БД). Да-да, XML - это, типа, круто, да? Но почему, чёрт возьми, я должен в КЛИЕНТСКОМ ПРИЛОЖЕНИИ делать работу СЕРВЕРА БД? Видимо, те несколько тысяч людей с нетрадиционной сексуальной ориентацией, которые работают в компании, должны были что-то придумать... Они бы лучше, чем такую хрень придумывать, над производительностью подумали, сборщик мусора получше бы тестили или компоненты по работе с данными отработали (BindingSource например), чтобы эти звери память десятками мегабайт не жрали... Кароче, слюна сейчас брызгать уже начнёт...
  17. мда... с C# башка становится похожа на голову шарпея (это такая порода собак, у них просто мозг шерстью покрыт, т.к. черепная коробка отсутствует *24) А вообще, на той же Википедии (http://ru.wikipedia.org) можно почитать про эти языки. По собственному опыту скажу, что с базами данных всё-таки эффективнее работать через Delphi. Кроме того, Delphi, в отличии от C#, поддерживает создание как полноценных Win-приложений, так и для платформы .Net.
  18. Что бы не делал в 4 строчке с конца пишет: что "а" неизвестный индефикатор. И с Подпрограммами функций тоже самое. бл.., это что? с..ка, меня сейчас вывернет от такого кодинга.... человек, смотри сюда: var n,i,j:integer; Procedure XXX (var a:array [1..100,1..100] of integer); хм, нормальное начало описания ПРОЦЕДУРЫ ХХХ, хотя уместней такие вещи в своём типе описать begin write(' '); было бы интереснее вместо этой фигни вывести, например, вот это (_*_), а то так на экране ничерта не видать readln(n); for i:=1 to n do for j:=1 to n do a[i,j]:=j*i; end; а вот тут КОНЕЦ ПРОЦЕДУРЫ begin а вот тут НАЧАЛО ОСНОВНОЙ ПРОГРАММЫ [b]write(XXX(a[i,j]):3);[/b] это тут у меня начались спазмы... ХХХ - это ведь ПРОЦЕДУРА??? а у них НЕТ РЕЗУЛЬТАТА!!! writeln и потом, a[i,j] - это аргумент ПРОЦЕДУРЫ, точнее ВЫХОДНОЙ ПАРАМЕТР, или я пьян? end; а это что за хренотень? (это тут компилятор выругаться должен после устранения верхних проблем) end. а вот это конец программы, или нет??? А теперь вопрос: где учимся? ваша училка срисовывает ответы из книжки, вообще не врубаясь в суть происходящего, ничего вам не объясняя, или студент сам проквасил семестр, и теперь хвосты нагоняет? Идентификатор - знаю, индефикатор - это что? Новое оружие для разрушения мозга на клеточном уровне? Нас марсиане пытаются захватить? Товарищи, учите правильнописание, т.е. грамоту.
  19. А кто придумал такое оригинальное хранение интервала? Обычно используется 2 поля: минимальная и максимальная граница интервала. Например, если таблицу обозвать Games и интервал определить полями MinAge, MaxAge, то запрос может выглядеть так: SELECT * FROM Games WHERE (:MinA BETWEEN MinAge AND MaxAge) OR (:MaxA BETWEEN MinAge AND MaxAge) где :MinA и :MaxA - входные параметры, определяющие возрастные границы.
  20. Да, пылесос и капля масла дадут вторую жизнь вашим вентиляторам.
  21. Всё равно, сдаётся мне, что что-то в залоченных ядрах не так - не зря ведь их на заводе прикрывают. Даже по законам маркетинга, полноценный проц кастратом делать не будут. Значит, есть в этих ядрах какой-то изъян. Стабильность в тестах ещё ни о чём не говорит - просто не возникало ДЛЯ ДАННОГО ПРОЦЕССОРА ошибочной ситуации. Проверка на более широком круге задач может выявить эту ошибку (игры, обработка видео-, аудиопотоков, архивирование и восстановление информации и т.п.). Возможно, окажутся нестабильны какие-либо блоки SIMD-расширений и т.п.
  22. тут решение (правда, на Паскале, но один фиг) http://www.cyberforum.ru/pascal/thread60467.html по-поводу масштабирования... возьми какою-нибудь переменную, в которой будешь хранить коэффициент увеличения изображения, и умножай на этот коэффициент полученные координаты (не забывая про положение относительно центра координат)
×
×
  • Создать...