Существует три основных типа соединения:
INNER
соединение сравнивает две таблицы и только возвращает результаты, где соответствие существует. Записи от 1-й таблицы дублированы, когда они соответствуют нескольким результатам в 2-м. Внутренние объединения имеют тенденцию делать наборы результатов меньшими, но потому что записи могут быть дублированы, это не гарантируется. CROSS
соединение сравнивает две таблицы, и возвратите каждую возможную комбинацию строк от обеих таблиц. Можно получить много результатов этого вида соединения, которое даже не могло бы быть значимо, таким образом используйте с осторожностью. OUTER
соединение сравнивает две таблицы и данные возвратов, когда соответствием являются доступные или Нулевые значения иначе. Как с Внутренним объединением, это будет дублирующиеся строки в одной таблице, когда это будет соответствовать нескольким записям в другой таблице. Внешние объединения имеют тенденцию делать наборы результатов больше, потому что они не будут собой удалять записи из набора. Необходимо также квалифицировать Внешнее объединение для определения, когда и где добавить Нулевые значения: LEFT
средства ведут весь учет от 1-й таблицы, неважно, что и вставляют Нулевые значения, когда 2-я таблица не соответствует. RIGHT
означает противоположное: ведите весь учет от 2-й таблицы, неважно, что и вставляют Нулевые значения whent он, 1-я таблица не соответствует. FULL
средства ведут весь учет от обеих таблиц и вставляют Нулевое значение в любую таблицу, если там не идет ни в какое сравнение. Часто Вы видите, будет OUTER
ключевое слово, опущенное от синтаксиса. Вместо этого этому просто "ОСТАВЯТ СОЕДИНЕНИЕ", "ПРАВО ПРИСОЕДИНЯЕТСЯ", или "ПОЛНОЕ СОЕДИНЕНИЕ". Это сделано, потому что Внутренние и Перекрестные объединения не имеют никакого значения относительно ЛЕВОГО, ПРАВИЛЬНОГО, или ПОЛНЫЙ, и таким образом, они достаточны собой для однозначного указания на Внешнее объединение.
Вот пример того, когда Вы могли бы хотеть использовать каждый тип:
INNER
: Вы хотите возвратить все записи из таблицы "Invoice", наряду с их соответствующим "InvoiceLines". Это предполагает, что каждый действительный Счет будет иметь по крайней мере одну строку. OUTER
: Вы хотите возвратить все записи "InvoiceLines" для конкретного Счета, наряду с их соответствующими записями "InventoryItem". Это - бизнес, который также продает услугу, такую, что не весь InvoiceLines будет иметь IventoryItem. CROSS
: у Вас есть таблица цифр с 10 строками, каждый параметры удержания '0' до '9'. Вы хотите составить таблицу диапазона дат для присоединения против, так, чтобы Вы закончили с одной записью в течение каждого дня в диапазоне. Путем перекрестного присоединения к этой таблице с собой неоднократно можно создать столько последовательных целых чисел, сколько Вам нужно (учитывая Вас, запускаются в 10 к 1-му питанию, каждое соединение добавляет 1 к экспоненте). Тогда используйте DATEADD () функция для добавления тех значений к основной дате диапазона. Используя файл подключения RDP, вы можете установить альтернативную оболочку в качестве вашего приложения; синтаксис файла подобен
alternate shell:s:c:\winnt\system32\notepad.exe
, и вы передаете его в качестве аргумента командной строки в mstsc.exe; это похоже на решение chrissr, но не влияет на каждый запускаемый сеанс RDP. Более подробная информация о настройках здесь .
Я думаю, что Citrix занимается именно этим. Хотя я не уверен в деталях, так как использовал его всего пару раз. Я думаю, что то, что я использовал, называлось XenApp , но я не уверен, что это то, что вам нужно.
Это называется «бесшовным» режимом. rdesktop
, клиент RDP для Unix, способен на это. На странице руководства:
-A Включить SeamlessRDP. В этом режиме rdesktop создает окно X11 для каждого окна на сервере. сторона. Для этого режима требуется серверный компонент SeamlessRDP, доступный по адресу http://www.cendio.com/seamlessrdp/. При использовании этой опции вы должны указать запуск оболочка, которая запускает нужное приложение через SeamlessRDP.
Дополнительную информацию см. На упомянутом веб-сайте Cendio .
Да, вы можете изменить оболочку по умолчанию с Explorer.exe на конкретное приложение.
В Regedit перейдите к HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon. Текущая оболочка должна быть Explorer.exe. Измените его на YourApp.exe. Это изменит оболочку для всех пользователей, которые входят в систему. Если вы хотите изменить его только для определенного пользователя, перейдите к тому же ключу в HKEY_CURRENT_USER.
RDP не будет делать этого изначально.
Как сказано в других ответах, вам нужно будет выполнить некоторые сценарии и внести изменения в политику в качестве кладжа, чтобы усложнить RDP вход в систему для запуска чего-либо, кроме предполагаемого приложения.
Однако с 2008 года Microsoft выпустила технологию виртуализации приложений через службы терминалов, которая позволит вам делать это без проблем.
Другой способ показан в этой статье CodeProject:
http://www.codeproject.com/KB/IP/tswindowclipper.aspx
Основная идея состоит в том, чтобы создать вирусный канал, который отправляет позицию окна приложений, которые вы хотите показать, а затем визуализирует только эту часть окна на клиенте.