![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
constraint [MSSQL]
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 не угождает ?