Главная страница
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.027 c
6-1112481257
Vadim X
2005-04-03 02:34
2005.06.29
SOKS-Proxy


1-1117780243
Woprosnik
2005-06-03 10:30
2005.06.29
Динамическое меню


14-1117844669
Белолипский Александр
2005-06-04 04:24
2005.06.29
Я увлекаюся спортивною рыбалкой!


1-1118217103
TAN_K
2005-06-08 11:51
2005.06.29
PageControl и PageControl


3-1116000911
NikNet
2005-05-13 20:15
2005.06.29
А как подключится к MSSQL или там работать с MSSQL на WinAPI?