![]() |
|
![]() ![]() ![]() |
|
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
||||
|
||||
xkill |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 31.5.2006 Репутация: нет Всего: нет |
Есть функция:
Проблема заключается в том что функция после первого вызова действует нормально), а если её вызвать 2-ой,3-й и т.д. раз, то счётчик возращает корректное значение, а далее где добавляются поля (цикл), значения полей все прежние. (а где должны быть новые, там пустое значение, а стары на месте) ЗЫ Думаю стуацию описал. ЗЫ2 Ошибок не выдает. |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
Надо бы очистить сетку перед перевыводом. А то каждый раз добавляем и добавляем поля...
А DBGrid для этих целей совсем не подходит? Там вообще ничего делать не придется практически... |
|||
|
||||
xkill |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 31.5.2006 Репутация: нет Всего: нет |
Anikmar, а как очистить?
Сейчас много сделано на StringGrid, и перехода к DBGrid думамю будет не оправданым, в том плане, что делать много предется заново + данный компонент изучать |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
Я очищал - просто ставил количество строк 0 (сам очищается), а потом возвращал нужное значение - строки будут пустые. Но там насколько я помню есть с ним косяк когда надо заголовки вывести. Небольшой баг в компоненте, в какой-то из книг даже описанный. Поэкспериментируете - поймете о чем речь. |
|||
|
||||
xkill |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 31.5.2006 Репутация: нет Всего: нет |
Anikmar, можешь пример привести? Или через какое значение это изменяется?
|
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
||||
|
||||
xkill |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 31.5.2006 Репутация: нет Всего: нет |
Anikmar, произшло не допонимание)
С StringGrid'ом у мну всё хорошо. Проблема то сама заключается в TQuery, там на моменте:
И тем самым получается, что после второго вызова функции(перед этим в таблицу вставлялись данныйе) строчки в StringGrid'e появляются, но почему-то в Form1->query->FieldByName("5")->AsString являются пустыми(но ещё содержать результат первого запроса). Т.к. в StringGrid'е содержаться данные первой выборки. => в StringGrid'е проблемы нет. А она в Tquery PS Надеюсь стуацию обрисовал лучше Это сообщение отредактировал(а) xkill - 9.2.2007, 12:12 |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
А в самой базе эти строчки есть?
|
|||
|
||||
xkill |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 31.5.2006 Репутация: нет Всего: нет |
Anikmar, есть они добавляются без проблем, т.к. в
Form1->StringGrid1->RowCount=max; Они появляются пустые строчки. Плюс смотрел через phpmyadmin ни каких проблем со стороны добавления тоже нет. |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
Т.е. в базе строчки есть
В запросе строчки есть. Form1->query->FieldByName("1")->AsString содержит нормальное значение? Form1->StringGrid1->Rows[i]->Add(Form1->query->FieldByName("1")->AsString); Я так понимаю эта команда добавляет в строку очередной столбец? |
|||
|
||||
xkill |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 31.5.2006 Репутация: нет Всего: нет |
Да, в базе строчки есть, в запросе строчки есть (count вовзращает корректное число строчек)
Если заменить Form1->StringGrid1->Rows[i]->Add("то эта надпись появится во всем столбце "); При этом когда вызыватся данная функция кол-во строк в StringGrid увеличивается(так и должно быть, т.к. данные добавляются) При этом где должны быть новые значения их там нету(хотя после перезапуска программы все он появляются как надо), но строчки добавляются за счёт счётчика. При замене одного на Form1->StringGrid1->Rows[i]->Add("то эта надпись появится во всем столбце ");, то надпись действительно появляется везде. |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
Честно говоря, не понимаю с ходу в чем проблема.
Для проверки - кинь на форму в уголок DBGrid, привяжи его к этому запросу и посмотри что он выведет. Если выведет правильно - значит дело в заполнении StringGrid. Если тоже будет пустой - значит что-то с запросом не так. |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
Я немного переделал твой код, чтобы он был более "легким в понимании"
Я убрал подсчет количества строк - в TADOQuery есть свойство RecordCount. Когда работал через BDE 1 раз у меня были с ним проблемы, но выловить повторно не смог, так что полезное свойство, содержит количество фактических строчек в запросе. |
|||
|
||||
xkill |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 31.5.2006 Репутация: нет Всего: нет |
Anikmar, сть одна проблемка и она заключатся в том что использовал компонент TSQLQuery ( в месте с MySQL)
А DBGrid в настройках где DataSource: Operation not allowed on a unidirectional dataset. И как её привизать к запросу? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C++: Базы данных" | |
|
Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах. Благодарим за понимание. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Базы данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |