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

Lucky

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

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

  • Посещение

Достижения Lucky

Ученик

Ученик (3/14)

  • Первое сообщение
  • Соавтор
  • Неделя в сообществе
  • One Month Later
  • Год в сообществе

Последние значки

0

Репутация

  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. Что протёрли данной жидкостью? Тонким слоем протирали, али как?
×
×
  • Создать...