Главная страница
    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.047 c
11-1101475886
Alex-
2004-11-26 16:31
2005.06.29
ADO + KOL


5-1088080642
han
2004-06-24 16:37
2005.06.29
record как published свойство


1-1117771200
Frozzen
2005-06-03 08:00
2005.06.29
Выбор цвета графика


3-1116060682
_e_u_
2005-05-14 12:51
2005.06.29
проблема с добавлением использованием записи


1-1118207429
Fanny
2005-06-08 09:10
2005.06.29
Как определить, что принтер не установлен ?





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