Главная страница
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.025 c
15-1186529949
lookin
2007-08-08 03:39
2007.09.02
Время просчета пустой процедуры


2-1186471609
Сергей И
2007-08-07 11:26
2007.09.02
Создание из текстового документа электронной книги


2-1186724942
Евгений Р.
2007-08-10 09:49
2007.09.02
Модуль открывается в Bin-формате


15-1185892916
cosinus
2007-07-31 18:41
2007.09.02
Эм... Глупейший вопрос по SoftIce.


10-1136671047
Дельфин
2006-01-08 00:57
2007.09.02
Как вызвать метод Sort класса Range из процедуры D6?