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

Вниз

Ошибка с функцией OpenSchema   Найти похожие ветки 

 
Iova   (2004-12-16 18:54) [0]

Помогите пожалуйста мастера научиться пользоваться данную функцию
 form1.ADOConnection1.OpenSchema(siForeignKeys,EmptyParam,EmptyParam,AdoDataSet1);
моя почему-то не работает и выдает ошибку "Access violation".

PS:В одной статье этупроблему решали следующим образом:

ADOConnection1.OpenSchema(siPrimaryKey, VarArrayOf(Null, Null, ["mytable"]), EmptyParam, ADODataSet(ADOTable1));

но мне нужно не siPrimaryKey, а siForeignKeys по всем таблицам.


 
sniknik ©   (2004-12-16 21:17) [1]

это не проблема и не решение (просто вызов функции, что в этом проблемного?)

а "Access violation" выдает потому что используеш какойто несозданный/уничтоженный обьект... (видимо статью не сначала читал, а вырвал только с конца "нужное" как показалось, да не все)

по параметрам процедуры, они и в статье какието "странные"
(ну зачем скажите тип приводить разве нормальный датасет взять нельзя? понятно если бы по месту в коде, но для статьи... странновато,
вариантный массив тоже, понятно былобы если так
VarArrayOf([Null, Null, "mytable"])
или  так
VarArrayOf([Null, Null, "[mytable]"])
но приведенное странно)
но да ладно не будем обсуждать (просто сомнения что это даже компилируется не то что работает, а значит автор не даже пробовал...)

> но мне нужно не siPrimaryKey, а siForeignKeys по всем таблицам.
ну так и бери что нужно, только с параметрами разберись (в Restrictions), обрати внимание что их во втором вдвое больше чем в первом (на вторую таблицу тоже, ведь форейн связь идет по двум таблицам), а ты их вместо увеличения совсем выкинул...


 
Iova   (2004-12-17 08:40) [2]

В хелпе по делфи написано, что 3-е поле должно заполнятся когда Schema = siProviderSpecific.
Или я ошибаюсь?


 
sniknik ©   (2004-12-17 08:55) [3]

ну если написано то тогда наверное.
про siProviderSpecific (3й параметр - SchemaID) разговора нет (или его имел в виду под siForeignKeys?), ты второе поле "обрубил" а там в данном случае должен быть вариантный масив с 6-ю параметрами (в 2 раза больше чем при siPrimaryKey).


 
Iova   (2004-12-17 09:23) [4]

Я только что попробовал
 
s1:=Table_Name_;
form1.ADOConnection1.OpenSchema(siForeignKeys,VarArrayOf([Null, Null, s1]),EmptyParam,AdoDataSet1);

Ошибка все равно возникает.
Можно ли было записатьв таком виде присваивая величину типа String?

А нельзя ли вообще обойтись без ограничений?


 
Iova   (2004-12-17 09:43) [5]

На счет большего количества параметров я понял:
 form1.ADOConnection1.OpenSchema(siForeignKeys,VarArrayOf([Null, Null, Null, Null, Null, s1]),EmptyParam,AdoDataSet1);
Но все таки можно ли использовать s1:String?



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

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

Наверх




Память: 0.48 MB
Время: 0.024 c
6-1099489640
stipa
2004-11-03 16:47
2005.01.23
Приложения Client - Servrt для Tsp/Ip


1-1105345131
HF-Trade
2005-01-10 11:18
2005.01.23
У TMainMenu можно изменить высоту?


14-1104511033
GEN++
2004-12-31 19:37
2005.01.23
СНГ С Н Г


1-1104904755
KyPCAHT
2005-01-05 08:59
2005.01.23
вызов функции из dll, написанной на Delphi, из Visual Basic 6.0


14-1104773912
Aldor_
2005-01-03 20:38
2005.01.23
Обособление интерфейсной части в программе. Способы.