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

Вниз

Может я как то не так работаю с KOL и MCK?   Найти похожие ветки 

 
Cawa ©   (2006-06-10 11:05) [0]

Создал МСК проект, установил на него компоненты (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 12:48) [1]

Наоборот Не надо слишком много действия, не читая инрукцию. Даже не читая инструкцию, нетрудно догадаться, что если содержимое файла меняется бз вашего участия, то, аверное, так оно и должно быть. И нечего там руками лазать.


 
ECM ©   (2006-06-10 12:48) [2]

Поправлю... разбираюсь. Пока покспериментируйте с Creation order (контекстное меню на форме) - полегчает


 
ECM ©   (2006-06-10 12:54) [3]

2 Kladov - я предпренимал определенные шаги в зеркале чтобы обеспечить правильную последовательности создания (это там важно) ... но то ли что то поменялось с тех пор в этом плане - толи не всегда срабатывает (кажется что то с CreationPriority - но могу ошибаться). В любом случае раньше понедельника посмотреть не смогу...


 
Cawa ©   (2006-06-10 13:14) [4]

Зря только бочку катешь 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 13:17) [5]

З.Ы. а руками лазить (в смысле исправлять) там нет смысла - при следующей генерации кода МСК (при открытии проекта, при каких либо изменениях на форме в дезайнере) всё будет восстановлено. Именно это имел ввиду Владимир в [1].
Другое дело, что МСКб,в некоторых случаях, у меня почему то создает объекты не в той последовательности. Но это поправимо...(надеюсь). Пока измените порядок создания в дезайнере см.[2]. У себя на такое же пару раз натыкался - этот способ помог. Но руки пока не доходили разобраться...
:)


 
ECM ©   (2006-06-10 13:24) [6]


> От перестановок в Creation order никакого эффекта не получил.

Возможно придется переоткрыть проект. Это
нужно для правильного запуска генерации кода МСК. Ну уж на самы крайний случай -открой те форму (DFM) как текст (если ваша версия Depphi это позволяет конечно) и отредактируйте порядок появления компонентов в нём. В начале все базы - потом все тразакции и потом уже все запросы.
Ну и последнее средство (а может и лучшее?) - это отказаться вообще от зеркальных компонент (они же все равно не визуальные) для них и создавать всё собственным кодом - это не так уж сложно.


 
Cawa ©   (2006-06-10 13:33) [7]

>Ну и последнее средство (а может и лучшее?) - это отказаться вообще от зеркальных компонент (они же все равно не визуальные) для них и создавать всё собственным кодом - это не так уж сложно.
К этому выводу я сегодня и пришел.
Ладно спасибо Вам за помощь!


 
Vladimir Kladov   (2006-06-10 18:59) [8]

Creation order в VCL, на генерацию кода в MCK не влияет. Влияет: TabOrder и Align. (Хорошо бы свой CreationOrder сделать, но сейчас заняться этим некогда. Если кто возьмется. Опять же, MVK только до Delphi7, а дальше - только без него, так что опять особого смысла нет).



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

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

Наверх




Память: 0.49 MB
Время: 0.03 c
15-1170316596
DemoN__
2007-02-01 10:56
2007.02.25
Как проверить звуковуху


2-1170752763
Juice
2007-02-06 12:06
2007.02.25
raise Exception


2-1170431934
nordic3
2007-02-02 18:58
2007.02.25
Активирование окна


15-1170186746
hmmm
2007-01-30 22:52
2007.02.25
PHP +HTML :) не пинайте


15-1170200828
hmmm
2007-01-31 02:47
2007.02.25
google