Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.037 c
9-1159426582
benusi
2006-09-28 10:56
2007.09.02
учебник по OpenGL


4-1172391543
Comp
2007-02-25 11:19
2007.09.02
Корректное пересоздание Pen


15-1186164819
guestfromwww
2007-08-03 22:13
2007.09.02
как уничтожить пункт в меню.


15-1186083986
hybride
2007-08-02 23:46
2007.09.02
Вопрос про удаленку


2-1186904544
Ezorcist
2007-08-12 11:42
2007.09.02
Как задать время в системе?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский