![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с OpenSchema [D7, Access]
Iova © (2005-05-12 16:15:00)Скажите пожалуйста в чем я ошибся?
form1.ADOConnection1.OpenSchema(siForeignKeys, EmptyParam, EmptyParam, AdoDataSet1);
Так он ругается на EmptyParam, но может еще есть ошибки. Если я еще где-то ошибся, то тоже напишите.
sniknik (2005-05-13 20:51:00) [1]> А как узнать длину типа поля(например для String)?
тамже siColumns, поле ... а сам возьми и посмотри, подключи dbgrid к полученному датасету и посмотри.
> где можно узнать такого типа инф-у
например в справке офиса файл ADO210.CHM, тема - SchemaEnum (данный случай).
Iova (2005-05-13 19:06:00) [2]А как узнать длину типа поля(например для String)?
И если знаете ссылку, где можно узнать такого типа инф-у, то укажите пожалуйста.
Заранее премного благодарен.
sniknik (2005-05-13 16:21:00) [3]можно, siColumns, поле в датасете DATA_TYPE.
Iova (2005-05-13 16:10:00) [4]Еще один вопросик.
Можно ли с помощью OpenSchema узнать тип поля? Если можно, то как
Ученик (2005-05-12 22:51:00) [5]>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;
sniknik (2005-05-12 22:28:00) [6]вот, может поможет
ADOConnection1.OpenSchema(siIndexes, VarArrayOf([Unassigned, Unassigned, Unassigned, Unassigned, sTable]), EmptyParam, IndexSchema);
sTable - строка - имя таблици
IndexSchema - tadodataset
это получение простых индексов, заметил насколько параметров больше? чем у пустого списка. у тебя будет(должно) больше за счет указания еше одной связаной по внешнему ключу таблици (или пустышек если получать все)
sniknik (2005-05-12 22:20:00) [7]второй параметр не может быть EmptyParam, у тебя же внешние ключи значит как минимум нужно указать главную таблицу и также внешнюю (т.е. как минимум 2 параметра, а на самом деле еще больше) а у тебя вместо указания параметров пустой список.
посмотри перечень в справке.