Форум: "Базы";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
ВнизМинимальные, максимальные и значения по умолчанию Найти похожие ветки
← →
EvilIJ © (2007-04-25 13:26) [0]Нужно создать/изменить таблицу во время выполнения программы. Создавать умею, считывать значения Min, Max и Default тоже умею, но как их записать при создании?
За ранее, спасибо...
← →
Johnmen © (2007-04-25 13:27) [1]
> но как их записать при создании?
Куда записать? В парадоксовский заголовок?
← →
EvilIJ © (2007-04-25 13:36) [2]Как в DataBase Desktop, для каждого поля можно задать ограничения.
Я создаю таблицу со стандартным набором параметров поля: Имя, Тип, Размер, Requared. Нужно добавить еще MinValue, MaxValue и DefaultExpression.
← →
EvilIJ © (2007-04-25 13:38) [3]Вот как я делаю:
with Table.FieldDefs.AddFieldDef do
begin
// Добавляем поле
Name:=NewField.aName;
DataType:=NewField.aType;
Size:=NewField.aSize;
Required:=NewField.aRequired;
end;
if NewField.aOptions<>[] then
with Table.IndexDefs.AddIndexDef do
begin
// Добавляем первичный индекс
Name := "";
Fields := NewField.aName;
Options := NewField.aOptions;
end;
Вот как читаю эти значения из существующей таблицы:
IndexDef:=Table.IndexDefs.Items[j];
if (ixPrimary in IndexDef.Options) then
begin
//это первичный ключ
if IndexDef.FieldExpression=FieldsList[i] then
begin
aKey:=true;
aOptions:=IndexDef.Options;
break;
end else aKey:=false;
end;
end;
// Собираем информацию по полю
aName:=FieldsList[i];
aType:=Table.FieldByName(FieldsList[i]).DataType;
aSize:=Table.FieldByName(FieldsList[i]).Size;
aRequired:=Table.FieldByName(FieldsList[i]).Required;
if Table.FieldByName(FieldsList[i]).DefaultExpression<>"" then
aDefaultEx:=Table.FieldByName(FieldsList[i]).DefaultExpression else
aDefaultEx:="";
// для Int
if (aType=ftSmallint) or (aType=ftInteger) or (aType=ftWord) or (aType=ftLargeint)
then
begin
aMaxValue:=IntToStr(TIntegerField(Table.FieldByName(FieldsList[i])).MaxValue);
aMinValue:=IntToStr(TIntegerField(Table.FieldByName(FieldsList[i])).MinValue);
end;
// для float
if (aType=ftFloat) or (aType=ftCurrency)
then
begin
aMaxValue:=FloatToStr(TFloatField(Table.FieldByName(FieldsList[i])).MaxValue);
aMinValue:=FloatToStr(TFloatField(Table.FieldByName(FieldsList[i])).MinValue);
end;
← →
Johnmen © (2007-04-25 13:42) [4]
> Я создаю таблицу со стандартным набором параметров...
Э-э-э... А где это?
← →
EvilIJ © (2007-04-25 13:45) [5]
> Вот как я делаю: with Table.FieldDefs.AddFieldDef do begin
> // Добавляем поле Name:=NewField.aName; DataType:
> =NewField.aType; Size:=NewField.aSize; Required:=NewField.
> aRequired; end; if NewField.aOptions<>[] then with Table.
> IndexDefs.AddIndexDef do begin // Добавляем первичный
> индекс Name := ""; Fields := NewField.aName; Options
> := NewField.aOptions; end;
← →
Johnmen © (2007-04-25 13:48) [6]
> но как их записать при создании?
Никак.
← →
Desdechado © (2007-04-25 13:50) [7]Не помню я что-то MIN и MAX для полей в IB6.0
← →
EvilIJ © (2007-04-25 13:51) [8]А иначе может как-нибудь? Как же тот же DatatBase Desktop их создает?
Может через Query нужно открыть созданную таблицу и скриптом как-нибудь поправить? ... Я пробовал ALTER .. не работает, умеет только добавлять или удалять, менять не позволяет...
← →
EvilIJ © (2007-04-25 13:57) [9]
> Не помню я что-то MIN и MAX для полей в IB6.0
хехе, я не про GDB говорю а про DB, Paradox всего-навсего, а в IB точно есть и зн. по умолч. и ограничения полей
Для примера...
CHECK lExpression1
Задает правило проверки достоверности уровня поля.
← →
Desdechado © (2007-04-25 15:41) [10]> я не про GDB говорю а про DB, Paradox
В названии у тебя указан IB6.0
А говорить можешь и про слона, только тигром он от этого не станет.
> в IB точно есть ограничения полей
> CHECK Expression Задает правило проверки достоверности уровня поля.
Есть, но они гораздо шире MIN и MAX, да и не только уровня поля, но и их взаимоотношений внутри таблицы, а также с другими таблицами.
← →
Loginov Dmitry © (2007-04-25 22:42) [11]http://info.borland.com/devsupport/bde/bdeapiex/dbidorestructure.html
← →
EvilIJ © (2007-04-25 22:46) [12]Вообщето это из моей идеи :) , но Логинову респект!
Логинов со мной бухает в пятницу!
← →
Loginov Dmitry © (2007-04-25 22:48) [13]Был бы повод. А выпить мы всегда... :))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.049 c