Форум: "Начинающим";
Текущий архив: 2007.06.24;
Скачать: [xml.tar.bz2];
ВнизУниверсальный SQL-запрос Найти похожие ветки
← →
kyn66 © (2007-06-04 11:57) [0]Для добавления в существующу таблицу новых полей использую универсальную процедуру:
procedure TMainFrm.AddColumn(TabName, ColName, Typ : String);
begin
with TADOQuery.Create(nil) do
try
Connection := Connection1;
ParamCheck := True;
SQL.Clear;
SQL.Add(Format("ALTER TABLE %s ADD %s %s DEFAULT 0" , [TabName, ColName, Typ]));
ExecSQL;
CLose;
finally
Free;
end;
end;
...
AddColumn("Rpts", "Nabor", "BIT");
Здесь по умолчанию я выставляю значение 0. Но это подходит для числовых полей. А что будет, если мне нужно добавить новое поле типа "Текст" и "Дата" ? Будет ли этот запрос универсальным? Мало того, при добавлении поля типа "Дата", необходимо указать, что формат поля для него - Краткий формат даты (01.01.2007) Как это сделать правильно и унверсально через одну процедуру?
← →
clickmaker © (2007-06-04 11:59) [1]использовать что-то типа таблицы дефолтов для разных типов. Например, с помощью TStringList Names - Values
← →
kyn66 © (2007-06-04 12:07) [2]А думал может подставить ешшо один параметр типа Variant...
← →
clickmaker © (2007-06-04 12:14) [3]
> [2] kyn66 © (04.06.07 12:07)
ну, если дефолты меняются по ситуации, то да
← →
clickmaker © (2007-06-04 12:15) [4]можно же вообще гибридный вариант сделать. Доп. параметр, если Null, то берешь из таблицы дефолтов, если нет - то его самого
← →
kyn66 © (2007-06-04 13:24) [5]C дефолтами ладно, как реализовать вторую часть моего вопроса... А именно, как указать для поля типа "Дата", чтобы установился параметр формат поля - Краткий формат даты ?
← →
Johnmen © (2007-06-04 13:28) [6]Какой смысл в этих строчках
ParamCheck := True;
?
SQL.Clear;
CLose;
← →
kyn66 © (2007-06-04 13:38) [7]> Johnmen
Согласен, было взято из текта, где это использовалось раньше. Здесь ща не актуально, спасибо. Но вопрос остался открытым...
← →
sniknik © (2007-06-04 13:51) [8]> что формат поля для него - Краткий формат даты
нет в аксессе(базе) типа полей краткого формата дат... есть формат отображения в аксессе (который тебе не нужен), в дельфи это дисплейформат свойство компонента "поле".
← →
Johnmen © (2007-06-04 13:58) [9]
> kyn66 © (04.06.07 13:38) [7]
Тагда анализируй Typ для формирования нужного текста запроса...
← →
kyn66 © (2007-06-04 13:59) [10]
> в дельфи это дисплейформат свойство компонента "поле".
не совсем понял...
← →
Sergey13 © (2007-06-04 14:07) [11]> [0] kyn66 © (04.06.07 11:57)
А что за задача такая, если добавлять поля постоянно приходится?
← →
sniknik © (2007-06-04 14:25) [12]> не совсем понял...
тип поля в базе всегда datetime, без вариантов, а все что ты видиш дизайнере аксесса, типа "Краткий формат даты"/длинный/время/... это все настройка отображения, в визуальных компонентах, аналог которого в дельфях это дисплейформат.
так понятнее?
← →
kyn66 © (2007-06-04 14:52) [13]>sniknik Да, спасибо.
> Sergey13
ДА не то чтбы постоянно, просто есть утилита для апдейта структуры базы и только.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.06.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 5.188 c