![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Может я как то не так работаю с KOL и MCK?
Cawa © (2006-06-10 11:05:00)Создал МСК проект, установил на него компоненты (IBDataBase,IBTransaction,IBQuery), написал программулину - все работает зашибись, сохранил.
Сегодня открываю для внесения изменений в проект, запускаю а он мне
[code 0]StartTransaction: DataBase=nil!,а потом [code 0]prepare: Transaction=nil!. Ну я перелапатил свой код все в порядке, тогда в inc_и полез, тут то собака и была зарыта:
Result.IBQuery1 := NewIBQuery( Result.IBTransaction1);
{$IFDEF USE_NAMES}
Result.IBQuery1.Name := 'IBQuery1';
{$ENDIF}
Result.Form.Add2AutoFree( Result.IBQuery1 );
Result.IBTransaction1 := NewIBTransaction( Result.IBDatabase1);
{$IFDEF USE_NAMES}
Result.IBTransaction1.Name := 'IBTransaction1';
{$ENDIF}
Result.Form.Add2AutoFree( Result.IBTransaction1 );
Result.IBDatabase1 := NewIBDatabase();
{$IFDEF USE_NAMES}
Result.IBDatabase1.Name := 'IBDatabase1';
{$ENDIF}
Result.IBDatabase1.DBName := 'base.gdb';
Result.IBDatabase1.UserName := 'SYSDBA';
Result.IBDatabase1.Password := 'masterkey';
Result.Form.Add2AutoFree( Result.IBDatabase1 );
ладно, исправил, поменял местами, запустил, работает родная.
Сохраняю и открываю по новой , бацц и опять 25 - [code 0]prepare: Transaction=nil!, теперь только IBQuery перебрался поближе к солнцу.
Вопрос: Может я какие-нибудь действия не те делаю? Если да то какие?
Vladimir Kladov (2006-06-10 18:59:00) [1]Creation order в VCL, на генерацию кода в MCK не влияет. Влияет: TabOrder и Align. (Хорошо бы свой CreationOrder сделать, но сейчас заняться этим некогда. Если кто возьмется. Опять же, MVK только до Delphi7, а дальше - только без него, так что опять особого смысла нет).
Cawa (2006-06-10 13:33:00) [2]> Ну и последнее средство (а может и лучшее?) - это отказаться вообще от зеркальных компонент (они же все равно не визуальные) для них и создавать всё собственным кодом - это не так уж сложно.
К этому выводу я сегодня и пришел.
Ладно спасибо Вам за помощь!
ECM (2006-06-10 13:24:00) [3]
> От перестановок в Creation order никакого эффекта не получил.
Возможно придется переоткрыть проект. Это
нужно для правильного запуска генерации кода МСК. Ну уж на самы крайний случай -открой те форму (DFM) как текст (если ваша версия Depphi это позволяет конечно) и отредактируйте порядок появления компонентов в нём. В начале все базы - потом все тразакции и потом уже все запросы.
Ну и последнее средство (а может и лучшее?) - это отказаться вообще от зеркальных компонент (они же все равно не визуальные) для них и создавать всё собственным кодом - это не так уж сложно.
ECM (2006-06-10 13:17:00) [4]З.Ы. а руками лазить (в смысле исправлять) там нет смысла - при следующей генерации кода МСК (при открытии проекта, при каких либо изменениях на форме в дезайнере) всё будет восстановлено. Именно это имел ввиду Владимир в [1].
Другое дело, что МСКб,в некоторых случаях, у меня почему то создает объекты не в той последовательности. Но это поправимо...(надеюсь). Пока измените порядок создания в дезайнере см.[2]. У себя на такое же пару раз натыкался - этот способ помог. Но руки пока не доходили разобраться...
:)
Cawa (2006-06-10 13:14:00) [5]Зря только бочку катешь Vladimir Kladov, MCK и без моего участия такой код сформировало:
Result.IBQuery1 := NewIBQuery( Result.IBTransaction1);
{$IFDEF USE_NAMES}
Result.IBQuery1.Name := 'IBQuery1';
{$ENDIF}
Result.Form.Add2AutoFree( Result.IBQuery1 );
Result.IBTransaction1 := NewIBTransaction( Result.IBDatabase1);
{$IFDEF USE_NAMES}
Result.IBTransaction1.Name := 'IBTransaction1';
{$ENDIF}
Result.Form.Add2AutoFree( Result.IBTransaction1 );
Result.IBDatabase1 := NewIBDatabase();
{$IFDEF USE_NAMES}
Result.IBDatabase1.Name := 'IBDatabase1';
{$ENDIF}
Result.IBDatabase1.DBName := 'base.gdb';
Result.IBDatabase1.UserName := 'SYSDBA';
Result.IBDatabase1.Password := 'masterkey';
Result.Form.Add2AutoFree( Result.IBDatabase1 );
Поэтому и пришлось руками полезть чтобы заработало.
От перестановок в Creation order никакого эффекта не получил.
Полазил по папкам с примерами обнаружил такой же дефект в некоторых из них. Но пока даже не представляю какие действия к этому привели.
ECM (2006-06-10 12:54:00) [6]2 Kladov - я предпренимал определенные шаги в зеркале чтобы обеспечить правильную последовательности создания (это там важно) ... но то ли что то поменялось с тех пор в этом плане - толи не всегда срабатывает (кажется что то с CreationPriority - но могу ошибаться). В любом случае раньше понедельника посмотреть не смогу...
Vladimir Kladov (2006-06-10 12:48:00) [7]Наоборот Не надо слишком много действия, не читая инрукцию. Даже не читая инструкцию, нетрудно догадаться, что если содержимое файла меняется бз вашего участия, то, аверное, так оно и должно быть. И нечего там руками лазать.
ECM (2006-06-10 12:48:00) [8]Поправлю... разбираюсь. Пока покспериментируйте с Creation order (контекстное меню на форме) - полегчает