Delphi 6 косяк в коде или глюк программы?
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
Добрый день! Столкнулся с такой проблемой сегодня. Пишу большой проект, в одном из модулей количество строк превысило 3900. Я не могу теперь в этом модуле ничего вставить... Компилятор компилит все ок если нет ошибок, если ошибка есть, то показывает вообще левую строку стопом, которая не относится к ошибке... Так же, не работает выпадающий список функций и процедур при обращении к компоненте/функции/процедуре типа Adotable. - должен появится список... Но если я поднимусь на несколько десяток строк выше и начну писать тоже самое - то все замечательно....
Дак это что получается??? Проблема х32 разрядности? ))))) т.е. дельфа не может получить ссылку на строку значение которой больше 3000 ? (что-то на подобии того как нельзя поставить ОЗУ 4Гига на х32 ОС) ))))) или проблема все же в другом?
Дак это что получается??? Проблема х32 разрядности? ))))) т.е. дельфа не может получить ссылку на строку значение которой больше 3000 ? (что-то на подобии того как нельзя поставить ОЗУ 4Гига на х32 ОС) ))))) или проблема все же в другом?
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто!
Да! Кстати! Ctrl+V реально вставляет!!! ХDD

-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
Накопал путем тыка следующее:
до этого кода пишу Adoquery2. - появляется полный список всех значений функций и параметров.. После всего этого кода пишу Adoquery2. - списка нет и появляется ошибка:
Но если нажать Project/Compile All Project - то все успешно проходит и данный код программы работает исправно... Где ж все таки собака зарыта?
Код: Выделить всё
adoquery2.SQL.Add(' Select * from ');
adoquery2.SQL.Add(' ((((((((((Select * from nrtitog) as nritog ');
adoquery2.SQL.Add('LEFT JOIN ');
adoquery2.SQL.Add(' (select kodlesofond, ochag.lesname, count(regnomer) as isfire from ochag ');
adoquery2.SQL.Add(' where islikvid<>true and data_obarug>=datevalue('''+nachdata+''') and data_obarug<datevalue('''+othdatap+''') ');
adoquery2.SQL.Add(' group by kodlesofond, ochag.lesname) as itog ');
adoquery2.SQL.Add('ON (nritog.kodlesofond=itog.kodlesofond) and (nritog.lesname=itog.lesname)) ');
adoquery2.SQL.Add('LEFT JOIN ');
adoquery2.SQL.Add(' (select kodlesofond, ochag.lesname, count(regnomer) as onisfire from ochag where islikvid<>true and ');
adoquery2.SQL.Add(' data_obarug>=datevalue('''+othdata+''') and data_obarug<datevalue('''+othdatap+''') group by kodlesofond, ochag.lesname ) as onitog ');
adoquery2.SQL.Add('ON (nritog.kodlesofond=onitog.kodlesofond) and (nritog.lesname=onitog.lesname)) ');
adoquery2.SQL.Add('LEFT JOIN ');
adoquery2.SQL.Add(' (select kodlesofond, ochag.lesname, count(regnomer) as islokal from ochag ');
adoquery2.SQL.Add(' where islikvid<>true and islocaliz=true and data_obarug>=datevalue('''+nachdata+''') and data_obarug<datevalue('''+othdatap+''') group by ');
............ < еще 4 блока подобный вставок... Редактор сайта не позволил все отобразить здесь>.........
adoquery2.SQL.Add(' group by kodlesofond, ochag.lesname) as onitplosh ');
adoquery2.SQL.Add('ON (nritog.kodlesofond=onitplosh.kodlesofond) and (nritog.lesname=onitplosh.lesname)) ');
adoquery2.SQL.Add('LEFT JOIN ');
adoquery2.SQL.Add(' (select kodlesofond, ochag.lesname, sum(chel) as itchel from ochag, fire, tehnika where ochag.key=fire.ochagkey and fire.key=tehnika.firekey ');
adoquery2.SQL.Add(' and sutki>=datevalue('''+othdata+''') and sutki<datevalue('''+othdatap+''') ');
adoquery2.SQL.Add(' group by kodlesofond, ochag.lesname) as onitchel ');
adoquery2.SQL.Add('ON (nritog.kodlesofond=onitchel.kodlesofond) and (nritog.lesname=onitchel.lesname)) ');
adoquery2.SQL.Add('LEFT JOIN ');
adoquery2.SQL.Add(' (select kodlesofond, ochag.lesname, sum(chel) as itchelpriv from ochag, fire, tehnika where ochag.key=fire.ochagkey and fire.key=tehnika.firekey ');
adoquery2.SQL.Add(' and sutki>=datevalue('''+othdata+''') and sutki<datevalue('''+othdatap+''') and podrazd=''Ïðèâëå÷åííûå'' ');
adoquery2.SQL.Add(' group by kodlesofond, ochag.lesname) as onitchelpriv ');
adoquery2.SQL.Add('ON (nritog.kodlesofond=onitchelpriv.kodlesofond) and (nritog.lesname=onitchelpriv.lesname)) ');
adoquery2.SQL.Add('LEFT JOIN ');
adoquery2.SQL.Add(' (select kodlesofond, ochag.lesname, sum(traktor+avto+prochee) as ittehn from ochag, fire, tehnika where ochag.key=fire.ochagkey and ');
adoquery2.SQL.Add(' fire.key=tehnika.firekey ');
adoquery2.SQL.Add(' and sutki>=datevalue('''+othdata+''') and sutki<datevalue('''+othdatap+''')');
adoquery2.SQL.Add(' group by kodlesofond, ochag.lesname) as onitteh');
adoquery2.SQL.Add('ON (nritog.kodlesofond=onitteh.kodlesofond) and (nritog.lesname=onitteh.lesname) ');
Код: Выделить всё
[Pascal Error] Unit1.pas(1): Unable to invoke Code Completion due to errors in source code
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто!
Да! Кстати! Ctrl+V реально вставляет!!! ХDD

Садомазахист на 6 работать до сих пор, попробуй переставить дэльфу.
[syntax=Delphi] [/syntax]
Возможно VCL заглючило, пару раз сталкивался, переустановка помогала..
[syntax=Delphi] [/syntax]
-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
дельфа на двух разных машинах стоит... ошибка одинаково схожа там и там....
сузил круг..
если пишу form1.adoquery2. - выдает ваще левые свойства и значения никак не относящиеся к данному компоненту
пишу
adoquery2. - полный список значений и функций.... вооооо делааааа
сузил круг..
если пишу form1.adoquery2. - выдает ваще левые свойства и значения никак не относящиеся к данному компоненту
пишу
adoquery2. - полный список значений и функций.... вооооо делааааа
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто!
Да! Кстати! Ctrl+V реально вставляет!!! ХDD

-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
сразу напрашивается вопрос -
type
TForm1 = class(TForm)
.....
....
есть ли ограничения по описанию процедур, функций, количеству компонент после class? у меня там уже 700 строк )))))))
Любопытно что это значит:
type
TForm1 = class(TForm)
....
IntegerField6: TIntegerField;
WideStringField17: TWideStringField;
DateTimeField7: TDateTimeField;
FloatField2: TFloatField;
FloatField3: TFloatField;
FloatField4: TFloatField;
FloatField5: TFloatField;
FloatField6: TFloatField;
FloatField7: TFloatField;
FloatField8: TFloatField;
FloatField9: TFloatField;
FloatField10: TFloatField;
...
и таких полей куча какая-то.. у меня ни одного поля и значения не имеет таких названий.......... от куда они могут быть?
type
TForm1 = class(TForm)
.....
....
есть ли ограничения по описанию процедур, функций, количеству компонент после class? у меня там уже 700 строк )))))))
Любопытно что это значит:
type
TForm1 = class(TForm)
....
IntegerField6: TIntegerField;
WideStringField17: TWideStringField;
DateTimeField7: TDateTimeField;
FloatField2: TFloatField;
FloatField3: TFloatField;
FloatField4: TFloatField;
FloatField5: TFloatField;
FloatField6: TFloatField;
FloatField7: TFloatField;
FloatField8: TFloatField;
FloatField9: TFloatField;
FloatField10: TFloatField;
...
и таких полей куча какая-то.. у меня ни одного поля и значения не имеет таких названий.......... от куда они могут быть?
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто!
Да! Кстати! Ctrl+V реально вставляет!!! ХDD

-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
снес эти хрени... но нет результата... кидаю кнопку на форму - и чтобы я не писал - результат - [Pascal Error] Unit1.pas(1): Unable to invoke Code Completion due to errors in source code
..............
но при полной компиляции ни одной ошибки....
..............
но при полной компиляции ни одной ошибки....
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто!
Да! Кстати! Ctrl+V реально вставляет!!! ХDD

где-то что-то глобально объявлено
укажи пути к запросам через модуль типа units.metod
укажи пути к запросам через модуль типа units.metod
[syntax=Delphi] [/syntax]
-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
Пока получилось пройти следующим методом - я добавил новый Unit модуль. Создаю там публичную процедуру и вставляю код, а из unit1 вызываю эту процедуру. Вроде пока получается..... Но суть проблемы я еще не понял
Пока понимаю что связано это с компонентой Adoquery2... пробовал удалить ее с формы, создать заново.
Пока понимаю что связано это с компонентой Adoquery2... пробовал удалить ее с формы, создать заново.
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто!
Да! Кстати! Ctrl+V реально вставляет!!! ХDD

-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
в итоге получилось следующее - все строки с adoquery2.sql.add() - вынес в отдельный unit и unit1 стал дышать... т.е. все встало на свои места... только вот доп unit загнулся.... ну не так он важен мне, т.к. там набор строк которые компилить не нужно... Но проблему из-за чего компилятору не нравится adoquery2.sql.add я так и не нашел еще...
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто!
Да! Кстати! Ctrl+V реально вставляет!!! ХDD
