Это создаст пустую таблицу с именем ETMP_TESTE со структурой таблицы SAJ.EASJOBJETO.
CREATE TABLE ETMP_TESTE AS
SELECT *
FROM SAJ.EASJOBJETO
WHERE 1 = 0;
Это не обрабатывает ограничения и первичные ключи и тому подобное, но оно даст вам структуру таблицы. 1 = 0 гарантирует, что данные не копируются.
Если вам нужны первичные ключи и тому подобное, посмотрите на извлечение DDL для EASJOBJETO. Большинство SQL IDE имеют эту встроенную функциональность. Вы можете отредактировать его, чтобы исправить имя таблицы, запустить скрипт и получить все.
Я бы использовал UserControl, он кажется там проще, вы можете увидеть, что происходит в конструкторе (если хотите), у формы есть куча вещей, которые вам никогда не понадобятся, если вы просто будем использовать его как представление в контейнере.
Сравните это с вашим методом:
public static void DockControl(this Control control, UserControl userControl)
{
userControl.Dock = DockStyle.Fill;
control.Controls.Clear();
control.Controls.Add(userControl);
}
Моя точка зрения такова, что, вероятно, не будет иметь большого значения, какое направление вы выберете. Я бы предпочел использовать пользовательские элементы управления просто потому, что это более стандартный подход, который позволит вам двигаться вперед в большей гибкости. Например, что если ваш клиент придет к вам и скажет, что он хотел бы, чтобы две вкладки были объединены в одну вкладку? Пользовательские элементы управления позволят вам поместить эти два элемента управления на одну вкладку, не пытаясь при этом объединить элементы управления в одну форму, а затем поменять их обратно в следующем месяце, когда требования снова изменятся.
У вас есть большое, сложное приложение, которое состоит из множества частей, которые, насколько я понимаю, должны общаться друг с другом. Я думаю, что вопрос, который вы должны задать себе, это не «Формы или элементы управления?».