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

Вниз

кто-то тупит. или я, или Delphi %-)   Найти похожие ветки 

 
Ketmar ©   (2006-03-19 00:29) [0]

ничего не понимаю. если TTable от BDE лежит на DataModule, то отдаёт только инфу о полямх. если на главной форме -- отдаёт всё. я уж очень давно BDE не ел, но, кажись, не должно быть такого косяка?


 
API ©   (2006-03-19 00:52) [1]

Кхм... это... как бы...
Хотя нет, не буду.
Извините.

P.S. Если не трудно, просвятите, что значат следующие выражения: "тупит", "отдает только инфу о полях", "отдает все", "кушать BDE", "косяк"?


 
Anatoly Podgoretsky ©   (2006-03-19 01:39) [2]

Ketmar ©   (19.03.06 00:29)  
Сам то как думаешь?


 
Германн ©   (2006-03-19 01:47) [3]

2 API ©   (19.03.06 00:52) [1]

> P.S. Если не трудно, просвятите, что значат следующие выражения:
>  "тупит", "отдает только инфу о полях", "отдает все", "кушать
> BDE", "косяк"?


Нваерно это значит, что отдаёт ещё и всё, что выросло на полях. Что можно съесть и скурить. :-)


 
Ketmar ©   (2006-03-19 03:00) [4]

>Anatoly Podgoretsky ©   (19.03.06 01:39) [2]
а никак. тупо унёс TTable на главную форму. всё равно это курсовая у знакомой. там и без таких весёлостей всё криво. %-) просто интересно, что за ерунда.

>API ©   (19.03.06 00:52) [1]
"просвятить" не могу -- не священник. а перевести -- переведу:
"тупит" -- делает не то, чего ожидалось.
"отдает только инфу о полях" -- DBGrid показывает заголовки полей, но не показывает содержимое таблицы. а это содержимое есть.
"отдает все" -- и заголовки полей, и содержимое таблицы.
"кушать BDE" -- использовать BDE.
"косяк" -- непонятная ситуация.


 
Германн ©   (2006-03-19 03:10) [5]

Ну ты же не "новичок"! Должен бы уже понимать, что "17-ая строка - самая главная"!


 
Ketmar ©   (2006-03-19 03:27) [6]

так вот и удивляюсь, в каком именно гене у меня глюк. %-) ТАК я уже давно не лажался. %-)

мне вообще грустно. нашёл 386-й дизассемблер. исходники -- 9 кб. читал и рыдал. как после ТАКОГО себя программистом считать? конечно, исходники на Форте, но всё равно до этого минимальные, которые я видел, весили 30 кил. я даже не думал, что в 9 реально уместиться. сама форт-система весит 9 кил (.exe). если собрать вместе, то всё равно размер минимальный (эти 9 кил дизасма компиляются, натурально, в меньший по объёму машинный код).


 
API ©   (2006-03-19 08:34) [7]

DBGrid показывает заголовки полей, но не показывает содержимое таблицы

Вручную созданные Columns, для которых заданы поля с наименованиями, не совпадающими с теми, что в Table.

если TTable от BDE лежит на DataModule, то отдаёт только инфу о полямх. если на главной форме -- отдаёт всё

Пройдитесь поиском по реализации класса TTable.
У меня возникает подозрение, что строк наподобие
if Owner is TDataModule then ...
вы там не найдете.


 
tesseract ©   (2006-03-19 11:56) [8]


> ничего не понимаю. если TTable от BDE лежит на DataModule,
>  то отдаёт только инфу о полямх. если на главной форме -
> - отдаёт всё. я уж очень давно BDE не ел, но, кажись, не
> должно быть такого косяка?


Не встречал. Наверно плохо просишь. Он как не даёт молча или ругаясь?


 
Ketmar ©   (2006-03-19 14:20) [9]

>API ©   (19.03.06 08:34) [7]
ничего, заданного вручную, там нет. можно даже код не давать: там просто DBGrid, который связан с DataSet, который связан с Table, который связан с Database. все параметры у компонентов по-умолчанию (иначе я бы упомянул). кроме связей и имён баз/таблиц, конечно.

а смысл в таких строках? я, видите ли, сам знаю, что ситуация, мягко говоря, из разряда "подземного стука". в принципе, мне не столько интересно, где затык (как я уже писал, обошёл кривым хаком %-), сколько хочется о ней потрепаться. потому и кинул в этот раздел. к тому же все мастера сидят здесь. %-)

просто как раз с базами я практически не дружу. а если дружу, то однозначно не с BDE.

>tesseract ©   (19.03.06 11:56) [8]
в том-то и дело: никаких исключений или ещё чего. DBGrid явно общается с DataSet (и так далее по модели дома, построенного Джеком %-), ибо в заголовке грида появляются имена полей из таблицы (натурально, транслитом -- ничего же не переименовывалось %-). деактивируешь в рантайме таблицу -- исчезают. активируешь -- появляются. но только имена. а данные не отображаются. проверял все варианты, которые смог придумать. результат одинаковый.

ах, да: драйвер -- STANDARD, база -- PARADOX. но, по-моему, это не столь важно.


 
kaif ©   (2006-03-19 14:25) [10]

Добавь кнопку на форму (туда, где DBGrid), на OnClick повесь
Table1.Owner := DataModule.
Если после нажатия кнопки исчезнет "все, что там в таблице есть", то тогда у тебя завелись барабашки в компьютере.
:)


 
API ©   (2006-03-19 14:43) [11]

[10] kaif ©   (19.03.06 14:25)
Table1.Owner := DataModule.


Вот так вот сразу, да? ;)


 
API ©   (2006-03-19 14:46) [12]

Ketmar ©

Никаких фильтров (Filter, Filtered) и иже с ними не установлено?


 
Ketmar ©   (2006-03-19 14:52) [13]

>kaif ©   (19.03.06 14:25) [10]
"масло масляное"? оно и так на DataModule лежит, какой ещё у него овнер может быть? %-) может, как раз, ".Owner := Form1" ? %-) типа, это менее кривой хак, чем то, что сделал я...

>API ©   (19.03.06 14:46) [12]
нет, конечно. первым делом проверил. говорю же -- всё по дефолту. переносил TTable я так: в clipboard -- и на другое место. т.е. все свойства при этом сохраняются. заработало. мистика-с.


 
tesseract ©   (2006-03-19 14:52) [14]

Попробуй ещё раз присвоить DataSet у DBgrid.
Поля в DBGRID будут отображаться, даже если TTable неактивен, но имет описание полей.  

те производится впечатление, что Grid считает DataSet неактивным. И не выводит инфу.


 
kaif ©   (2006-03-19 15:09) [15]

Я все же думаю, что дело обстоит следующим образом.
Имеется DBGrid с persistent колонками
Если TTable вообще удалить, то колонки, соответственно, останутся, а то, что ты называешь "всем остальным", исчезнет.
А DataModule просто не указан в uses модуля формы.
Указатель DBGrid.DataSource стал равен, соотвественно, nil в момент "переноса" TTable в DataModule.
Поппробуй выяснить, а "все остальное" (в смысле набор данных) присутствует? Таблица активна?
Можешь в обработчик "кнопки на форме" вставить такой код:

ShowMessage(DataModule.Table1.Fields[0].AsString);
1.Если не будет компилироваться, значит не виден модуь в uses.
2.Если руганется в рантайме при нажатии кнопки "DataSet is not active", значит, таблица не активна.
2.Если выведет пустоту, значит, таблица подключена к другой базе данных, чем ты думаешь. К той базе данных, в которой эта таблица вообще пустая.


 
Reindeer Moss Eater ©   (2006-03-19 15:13) [16]

>мистика-с.

Оптический обман.


 
kaif ©   (2006-03-19 15:17) [17]

Проверь все, то касается видимости модулей (секция uses). Может быть у тебя много лишних доступных путей, куча одноименных папок в разных директориях. И не та версия DataModule видна через uses.
Лучше всего попробовать сделать отладочный вывод, о котором я написал.
Если, конечно, дело в невнимательности, а не в чем-то другом.


 
Kerk ©   (2006-03-19 15:19) [18]

kaif ©   (19.03.06 15:09) [15]
2.Если выведет пустоту, значит, таблица подключена к другой базе данных, чем ты думаешь. К той базе данных, в которой эта таблица вообще пустая.


Я бы не стал с таким выводом торопиться в этом случае. Недавно сам такую пустоту наблюдал из-за того, что Size полей был нулевым. Мало ли там чего может еще влиять.


 
Reindeer Moss Eater ©   (2006-03-19 15:26) [19]

Либо это гримасы копи-пасте и сломанный dfm, либо просто у датасорса грида не тот датасет.
Ясно одно - к BDE это не имеет отношения. Нет у него таких закидонов.


 
kaif ©   (2006-03-19 15:28) [20]

2 Kerk ©   (19.03.06 15:19) [18]
Самые "трудноуловимые" ошибки, с которыми я сталкивался в своей практике работы с базами состояли как правило именно в созданном мною же самим "дубликате базы", о котором я просто совершенно забывал или в дубликате модуля. Редактируешь один модуль, а работает - другой. Названия одинаковые. Пути разные. Один подключен к проекту - другой нет. Что не делаешь - ничего не помогает. Отладочные выводы не работают. Можно офонареть, если не допускаешь  мысль о дубликате. Причем иногда даже пошаговый отладчик Delphi может начать начать "ходить" по строкам иного файла только потому что тот имеет то же название модуля и открыт в среде дизайна.


 
Ketmar ©   (2006-03-19 22:31) [21]

>tesseract ©   (19.03.06 14:52) [14]
пробовал.

>kaif ©   (19.03.06 15:09) [15]
не дурак. всё делал. видимость модудей (uses) в порядке.

2all:
не дурак. что можно было выдумать -- проверял. всё-таки не пионэр. %-) в том-то всё и дело: ДОЛЖНО работать. но не работает, даже если из проекта выдрать просто датамодуль. ещё раз подчёркиваю: НЕ ПИОНЭР. ПРОВЕРЯЛ ВСЁ. %-)

да ладно, ерунда. хак работает -- и ладно. просто была надежда, что кто-то наблюдал то же самое и с ходу может сказать. а сложные решения я и сам могу выдумать.

2модератор: закрой, нафиг, эту тему. а то тут можно до пятого пришествия беседовать -- и без толку. кидать исходники объёмом в 10 мб (в архиве) я смысла не вижу (и инет не резиновый). выкоцать минимал займёт больше времени, чем надо для отладки всего проекта (уж так криво написано %-( ).



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

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

Наверх




Память: 0.53 MB
Время: 0.026 c
2-1143091143
Nsk3D
2006-03-23 08:19
2006.04.09
Filter


1-1141382533
Alex007
2006-03-03 13:42
2006.04.09
отладка dll в Delphi6


2-1143100335
kaliuga
2006-03-23 10:52
2006.04.09
Delphi + MySQL


2-1142815153
BOB_KAMIKAZE
2006-03-20 03:39
2006.04.09
ПАНЕЛЬ ЗАДАЧ


2-1143372233
Tirael
2006-03-26 15:23
2006.04.09
как писать плагины для оперы