Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.02;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.026 c
15-1186039685
nosfik
2007-08-02 11:28
2007.09.02
Пути к библиотекам


15-1186037340
iXT
2007-08-02 10:49
2007.09.02
Вопрос по сетке.


15-1186415763
SkySpeed
2007-08-06 19:56
2007.09.02
Какую посоветуете программу для восстановления удалённых файлов?


15-1186225189
foreverDelphi
2007-08-04 14:59
2007.09.02
кто хочет из гуру помочь новичку


3-1178791509
zero
2007-05-10 14:05
2007.09.02
Как отловить ощибку