Главная страница
    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.038 c
2-1186447650
rosl
2007-08-07 04:47
2007.09.02
null на 0


2-1186654390
gentos
2007-08-09 14:13
2007.09.02
передача с одной форму в другую TMemoryStream


15-1186331384
foreverDelphi
2007-08-05 20:29
2007.09.02
от ламера гуру Piterу


2-1186807933
Alex7
2007-08-11 08:52
2007.09.02
SELECT DISTINCT :myParameter FROM ... можно ли так?


15-1186119392
shlst
2007-08-03 09:36
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский