Форум: "Начинающим";
Текущий архив: 2007.09.02;
Скачать: [xml.tar.bz2];
Внизconstraint Найти похожие ветки
← →
AlinaVK (2007-08-06 15:25) [0]Подскажите как можно считать список constraint"ов
← →
Сергей М. © (2007-08-06 16:01) [1]см. TDataset.Constraints
← →
AlinaVK (2007-08-07 08:39) [2]А в каких системных таблицах хранится эта информация?
← →
Сергей М. © (2007-08-07 08:51) [3]Понятия не имею.
А это тебя так сильно заботит ?
← →
AlinaVK (2007-08-07 09:14) [4]да
← →
Сергей М. © (2007-08-07 09:24) [5]Все же объясни, чем же TDataset.Constraints не угождает ?
← →
AlinaVK (2007-08-07 09:35) [6]можно с ним пример?
← →
Сергей М. © (2007-08-07 09:58) [7]with MyDataSet.Constraints do
for i:= 0 to Count - 1 do
Memo.Lines.Add(Items[i].ImportedConstraint);
← →
AlinaVK (2007-08-07 10:59) [8]
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ADODB, DB, DBTables;
...
Procedure Get(MyDataSet:TDataSet);
var
i:integer;
begin
with MyDataSet.Constraints do
for i:= 0 to Count - 1 do
form1.Memo.Lines.Add(Items[i].ImportedConstraint);}
end;
Пишет ошибку "Undeclared identifier Constraints" Почему?
← →
Сергей М. © (2007-08-07 11:11) [9]
> Почему?
Потому что у объекта TDataSet это св-во защищенное.
Публичным или опубликованным оно может быть только у наследников этого класса, например, TTable, т.е. того конкретного компонента, с пом. которого ты общаешься с конкретным табличным объектом конкретной СУБД.
Для случая с TTable:
Procedure Get(MyTable:TTable);
var
i:integer;
begin
with MyTable.Constraints do
for i:= 0 to Count - 1 do
form1.Memo.Lines.Add(Items[i].ImportedConstraint);}
end;
← →
AlinaVK (2007-08-07 11:19) [10]а если ADO ? Ставлю TTable не ругается, а на TADOTable пишет туже ошибку
← →
Сергей М. © (2007-08-07 11:24) [11]
> на TADOTable пишет туже ошибку
Потому что TADOTable не публикует это св-во.
В ADO доступ к констрейнтам осуществляется иначе - средствами метода TADOConnection.OpenSchema.
Почитай справку к этому методу.
← →
AlinaVK (2007-08-07 12:54) [12]
> Почитай справку к этому методу.
Спасибо, разобралась, только вот не поняла как получить дефолты (defuault constraint).
← →
Сергей М. © (2007-08-07 12:58) [13]
> не поняла как получить дефолты
А что, по-твоему, есть "ограничения по умолчанию" ?
← →
AlinaVK (2007-08-07 13:03) [14]Создаем ограничение:
ALTER TABLE [dbo].[Bills] ADD CONSTRAINT [DF_bills_advtype__1] DEFAULT (0) FOR [advtype]
Как впоследствии считать такое?
← →
Сергей М. © (2007-08-07 13:09) [15]Ну, наверно, siColumns ...
Ты же интересуешься дифолтными ограничениями на значение поля ..
← →
AlinaVK (2007-08-07 13:16) [16]К сожалению нет :( , не то
← →
Anatoly Podgoretsky © (2007-08-07 13:23) [17]> AlinaVK (07.08.2007 13:03:14) [14]
Не хочешь восспользоваться INFORMATION_SCHEMA
Как раз для этой цели, в отличии от чтения системных таблиц и подобного.
Если там нет информации, то можно не искать.
Выведи в грид для анализа колонок.
← →
AlinaVK (2007-08-07 13:51) [18]
> Не хочешь восспользоваться INFORMATION_SCHEMAКак раз для
> этой цели, в отличии от чтения системных таблиц и подобного.
> Если там нет информации, то можно не искать.Выведи в грид
> для анализа колонок.
Пожайлуста, можно поподробнее
← →
Lacmus © (2007-08-07 14:34) [19]>AlinaVK
См. Сергей М. © (07.08.07 13:09) [15]
procedure TForm16.Button4Click(Sender: TObject);
begin
ADOConnection1.OpenSchema(siColumns, VarArrayOf([Null, Null, "orders"]), EmptyParam, ADODataSet1)
end;
Поля ADODataSet1 COLUMN_HASDEFAULT, COLUMN_DEFAULT
← →
Polevi © (2007-08-07 17:34) [20]select *
from sysobjects
where xtype="D"
← →
Anatoly Podgoretsky © (2007-08-07 19:35) [21]Вроде так, получить можно следующую информацию
select * from INFORMATION_SCHEMA.Columns
select * from INFORMATION_SCHEMA.Indexes
select * from INFORMATION_SCHEMA.Key_Column_Usage
select * from INFORMATION_SCHEMA.Provider_Types
select * from INFORMATION_SCHEMA.Tables
select * from INFORMATION_SCHEMA.TablePConstraints
select * from INFORMATION_SCHEMA.Referential_Constraints
Представление INFORMATION_SCHEMA входит в состав стандарта SQL
← →
AlinaVK (2007-08-08 07:41) [22]Спасибо всем, кто помог. Но вот еще последний вопрос. Каким образом узнать значение ограничения, т.е. по какому оно полю ?
← →
AlinaVK (2007-08-08 08:38) [23]А если быть точнее то нужно для внешнего ключа:
- имя таблицы на которую ссылается ключ
- имя ключа в этой таблице
- имя поля внешнего ключа
← →
AlinaVK (2007-08-08 13:36) [24]Спасибо, сделала сама
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.09.02;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.047 c