Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

Проблема с OpenSchema   Найти похожие ветки 

 
Iova   (2005-05-12 16:15) [0]

Скажите пожалуйста в чем я ошибся?

form1.ADOConnection1.OpenSchema(siForeignKeys, EmptyParam, EmptyParam, AdoDataSet1);

Так он ругается на EmptyParam, но может еще есть ошибки. Если я еще где-то ошибся, то тоже напишите.


 
sniknik ©   (2005-05-12 22:20) [1]

второй параметр не может быть EmptyParam, у тебя же внешние ключи значит как минимум нужно указать главную таблицу и также внешнюю (т.е. как минимум 2 параметра, а на самом деле еще больше) а у тебя  вместо указания параметров пустой список.
посмотри перечень в справке.


 
sniknik ©   (2005-05-12 22:28) [2]

вот, может поможет
ADOConnection1.OpenSchema(siIndexes, VarArrayOf([Unassigned, Unassigned, Unassigned, Unassigned, sTable]), EmptyParam, IndexSchema);
sTable - строка - имя таблици
IndexSchema - tadodataset

это получение простых индексов, заметил насколько параметров больше? чем у пустого списка. у тебя будет(должно) больше за счет указания еше одной связаной по внешнему ключу таблици (или пустышек если получать все)


 
Ученик   (2005-05-12 22:51) [3]

>Iova   (12.05.05 16:15)  



uses
 Variants;

фрагмент кода

var
 DataSet : TAdoDataset;
 ConstraintName,
 TableName1, TableName2,
 FieldName1, FieldName2 : TField;
begin
 DataSet := TAdoDataset.Create(nil);
 try
   FAdoConnection.OpenSchema(siForeignKeys, EmptyParam, EmptyParam, DataSet);
   with DataSet do begin
     ConstraintName := FieldByName("FK_NAME");
     TableName1 := FieldByName("PK_TABLE_NAME");
     TableName2 := FieldByName("FK_TABLE_NAME");
     FieldName1 := FieldByName("PK_COLUMN_NAME");
     FieldName2 := FieldByName("FK_COLUMN_NAME");
     while not EOF do begin
       ....
       Next
     end
   end
 finally
   DataSet.Free
 end
end;


 
Iova   (2005-05-13 16:10) [4]

Еще один вопросик.
Можно ли с помощью OpenSchema узнать тип поля? Если можно, то как


 
sniknik ©   (2005-05-13 16:21) [5]

можно, siColumns, поле в датасете DATA_TYPE.


 
Iova   (2005-05-13 19:06) [6]

А как узнать длину типа поля(например для String)?
И если знаете ссылку, где можно узнать такого типа инф-у, то укажите пожалуйста.
Заранее премного благодарен.


 
sniknik ©   (2005-05-13 20:51) [7]

> А как узнать длину типа поля(например для String)?
тамже siColumns, поле ... а сам возьми и посмотри, подключи dbgrid к полученному датасету и посмотри.

> где можно узнать такого типа инф-у
например в справке офиса файл ADO210.CHM, тема - SchemaEnum (данный случай).



Страницы: 1 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.051 c
1-1118066050
N
2005-06-06 17:54
2005.06.29
dxTreeList


14-1117003396
Анонимщик1
2005-05-25 10:43
2005.06.29
Шахматная дуэль


4-1115325382
Кайфолом
2005-05-06 00:36
2005.06.29
Использование функции Windows - Net Send.


1-1118216795
llirik
2005-06-08 11:46
2005.06.29
Ассоциативный массив


4-1115541375
psa247
2005-05-08 12:36
2005.06.29
RegOpenKey