Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Вниз

Проблема с 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.044 c
1-1118157641
Vitalik
2005-06-07 19:20
2005.06.29
runtime пакеты


3-1116581962
Naganov
2005-05-20 13:39
2005.06.29
Промежуточные вычисления в EhGrid e


14-1117649997
Вольный Стрелок
2005-06-01 22:19
2005.06.29
чем отличаются ToolBar, CoolBar, ControlBar?


1-1118046072
Ньюб
2005-06-06 12:21
2005.06.29
Access Violation at address


14-1116571476
CHES
2005-05-20 10:44
2005.06.29
Хочу поюзать, что пишет ЮЗ 2





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский