Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

constraint [MSSQL]


Страницы:   1 2

AlinaVK ©   (2007-08-06 15:25:00) 

Подскажите как можно считать список constraint'ов


AlinaVK   (2007-08-08 13:36:00) [1]

Спасибо, сделала сама


AlinaVK   (2007-08-08 08:38:00) [2]

А если быть точнее то нужно для внешнего ключа:

-  имя таблицы на которую ссылается ключ

-  имя ключа в этой таблице

-  имя поля внешнего ключа


AlinaVK   (2007-08-08 07:41:00) [3]

Спасибо всем, кто помог. Но вот еще последний вопрос. Каким образом узнать значение ограничения, т.е. по какому оно полю ?


Anatoly Podgoretsky   (2007-08-07 19:35:00) [4]

Вроде так, получить можно следующую информацию

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


Polevi   (2007-08-07 17:34:00) [5]

select *
from sysobjects
where xtype='D'


Lacmus   (2007-08-07 14:34:00) [6]

>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


AlinaVK   (2007-08-07 13:51:00) [7]


> Не хочешь восспользоваться INFORMATION_SCHEMAКак раз для
> этой цели, в отличии от чтения системных таблиц и подобного.
> Если там нет информации, то можно не искать.Выведи в грид
> для анализа колонок.


Пожайлуста, можно поподробнее


Anatoly Podgoretsky   (2007-08-07 13:23:00) [8]

> AlinaVK  (07.08.2007 13:03:14)  [14]

Не хочешь восспользоваться INFORMATION_SCHEMA
Как раз для этой цели, в отличии от чтения системных таблиц и подобного.
Если там нет информации, то можно не искать.
Выведи в грид для анализа колонок.


AlinaVK   (2007-08-07 13:16:00) [9]

К сожалению нет :(  , не то


Сергей М.   (2007-08-07 13:09:00) [10]

Ну, наверно, siColumns ...

Ты же интересуешься дифолтными ограничениями на значение поля..


AlinaVK   (2007-08-07 13:03:00) [11]

Создаем ограничение:

ALTER TABLE [dbo].[Bills] ADD CONSTRAINT [DF_bills_advtype__1] DEFAULT (0) FOR [advtype]

Как впоследствии считать такое?


Сергей М.   (2007-08-07 12:58:00) [12]


> не поняла как получить дефолты


А что, по-твоему, есть "ограничения по умолчанию" ?


AlinaVK   (2007-08-07 12:54:00) [13]


> Почитай справку к этому методу.


Спасибо, разобралась, только вот не поняла как получить дефолты (defuault constraint).


Сергей М.   (2007-08-07 11:24:00) [14]


> на TADOTable пишет туже ошибку


Потому что TADOTable не публикует это св-во.

В ADO доступ к констрейнтам осуществляется иначе - средствами метода TADOConnection.OpenSchema.

Почитай справку к этому методу.


AlinaVK   (2007-08-07 11:19:00) [15]

а если ADO ? Ставлю TTable не ругается, а на TADOTable пишет туже ошибку


Сергей М.   (2007-08-07 11:11:00) [16]


> Почему?


Потому что у объекта 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 10:59:00) [17]



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 09:58:00) [18]

with MyDataSet.Constraints do
for i:= 0 to Count - 1 do
 Memo.Lines.Add(Items[i].ImportedConstraint);


AlinaVK   (2007-08-07 09:35:00) [19]

можно с ним пример?


Сергей М.   (2007-08-07 09:24:00) [20]

Все же объясни, чем же TDataset.Constraints не угождает ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо