Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обновление dbGrid, помогите найти ошибку! 
V
    Опции темы
Martisha
Дата 10.12.2008, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 15.10.2008
Где: казань

Репутация: нет
Всего: 1



Доброго дня всем!!!
Использую Oracle,Delphi7,подключаюсь к базе с помощью ODAC..
нужно сделать Refresh dbGrid, написала код, ошибок не вылазит, но ничего и не происходит

Код

procedure TForm2.Button1Click(Sender: TObject);
begin
  ORAQuery1.Close;
  ORAQuery1.SQL.Clear;
  ORAQuery1.SQL.Add('select * from traffic');
  ORAQuery1.ExecSQL;
end;

PM MAIL ICQ   Вверх
Данкинг
Дата 10.12.2008, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



А если вместо ExecSQL сделать Open ?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Martisha
Дата 10.12.2008, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 15.10.2008
Где: казань

Репутация: нет
Всего: 1



Цитата(Данкинг @  10.12.2008,  11:50 Найти цитируемый пост)
А если вместо ExecSQL сделать Open ? 

так же, реакции никакой 
может есть какой то другой способ?
PM MAIL ICQ   Вверх
Akella
Дата 10.12.2008, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



а какая должна быть реакция? Что, даже грид не переоткрывается?

Добавлено через 1 минуту и 13 секунд
в таблице небось записей стопицотыщ, а тебе в грид попадают только те, которые видимы в нём, в гриде. Может fetch?
PM MAIL   Вверх
Martisha
Дата 11.12.2008, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 15.10.2008
Где: казань

Репутация: нет
Всего: 1



Цитата(Akella @  10.12.2008,  17:34 Найти цитируемый пост)
а какая должна быть реакция?

я бы хотела чтоб он обновился

Цитата(Akella @  10.12.2008,  17:34 Найти цитируемый пост)
Что, даже грид не переоткрывается?

переоткрывается вроде, только в базе если были записи, то в гридеони отображаются..потом если я их удаляю из базы(то есть там совсем  пусто), пытаюсь обновить гриде записи все равно отображаются  smile  не пойму почему так
Цитата(Akella @  10.12.2008,  17:34 Найти цитируемый пост)
Может fetch? 

может, а что это? 
PM MAIL ICQ   Вверх
Akella
Дата 11.12.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Может тебе рано ещё в оракл, ты всё рам не знаешь ни кого  smile  и там транзакциями нужно управлять

Добавлено через 30 секунд
Я и сам-то в оракл не лезу, сижу себе потихоньку на firebird`е  smile 
PM MAIL   Вверх
Martisha
Дата 11.12.2008, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 15.10.2008
Где: казань

Репутация: нет
Всего: 1



Цитата(Akella @  11.12.2008,  12:55 Найти цитируемый пост)
Я и сам-то в оракл не лезу, сижу себе потихоньку на firebird`е    

другого выбора нет, на работе его используют((
PM MAIL ICQ   Вверх
Данкинг
Дата 11.12.2008, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Akella @  11.12.2008,  12:55 Найти цитируемый пост)
и там транзакциями нужно управлять

Так необязательно же (хотя я тоже не спец по Ораклу; единственное, что я написал, так это конвертер из DBF в Оракл  smile )


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 11.12.2008, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Код

procedure TForm2.Button1Click(Sender: TObject);
begin
  ORAQuery1.Close;
  ORAQuery1.SQL.Clear;
  ORAQuery1.SQL.Add('select * from traffic');
  ORAQuery1.Open;

  ORAQuery1.fetch;
end;

что такое Fetch, для чего он и почему не ВСЕ стопицоттыщ записей попадают в грид?
Когда ты выполняешь запрос к серверу
Код
select * from traffic


а там один миллион записей.... пожалей пользователя....
по умолчанию тебе в НД (набор данных, DataSet) попадут не все 1 млн записей, а какая-то часть. Какая? Ну... зависит от настроек самого НД, может там есть для этого свой-со какое-нибудь, а может попадёт количество записей, которые поместятся в видимой области грида.
Потом пользователь начинает прокручивать грид.... и НД начинает тянуть остальные записи из базы по мере надобности. И сеть не  нагружается, и сервер не нагружается, и клиент не нагружается...
А если после открытия НД выполнить Fetch ("отфетчить" данные, как некоторые говорят), то в НД попадут все записи из таблицы базу... память клиентского компьютера... сама понимаешь.. 
PM MAIL   Вверх
Martisha
Дата 11.12.2008, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 15.10.2008
Где: казань

Репутация: нет
Всего: 1



Цитата(Akella @  11.12.2008,  13:59 Найти цитируемый пост)
что такое Fetch, для чего он и почему не ВСЕ стопицоттыщ записей попадают в грид?
Когда ты выполняешь запрос к серверу

дл того я и делаю запрос по датам  smile  чтоб не все попадали, все то программа явно не переварит  smile 
Цитата(Akella @  11.12.2008,  13:59 Найти цитируемый пост)
Потом пользователь начинает прокручивать грид.... и НД начинает тянуть остальные записи из базы по мере надобности. И сеть не  нагружается, и сервер не нагружается, и клиент не нагружается...

именно так ипроисходит)

Цитата(Akella @  11.12.2008,  13:59 Найти цитируемый пост)
А если после открытия НД выполнить Fetch ("отфетчить" данные, как некоторые говорят), то в НД попадут все записи из таблицы базу... память клиентского компьютера... сама понимаешь..  

я периодически подчищаю базу, чтоб записей поменьше было) так что, все норм 
PM MAIL ICQ   Вверх
Martisha
Дата 17.12.2008, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 15.10.2008
Где: казань

Репутация: нет
Всего: 1



Цитата

ORAQuery1.fetch;

не помогает(
PM MAIL ICQ   Вверх
Frees
Дата 17.12.2008, 11:44 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



может ты не тот квери переоткрываеш

попробуй так
Код

procedure TForm2.Button1Click(Sender: TObject);
begin
  DBGrid.DataSource.Dataset.Close;
  //ORAQuery1.SQL.Clear;  запрос если не меняш его можно не переписывать
  //ORAQuery1.SQL.Add('select * from traffic');
  DBGrid.DataSource.Dataset.Open;
end;


ODAC не использую но мне кажется у него как и у FIB должно быть что то типо ReopenLocate


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Martisha
Дата 17.12.2008, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 15.10.2008
Где: казань

Репутация: нет
Всего: 1



Цитата(Frees @  17.12.2008,  11:44 Найти цитируемый пост)
попробуй так

все равно не получается(
PM MAIL ICQ   Вверх
Frees
Дата 17.12.2008, 12:52 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



Цитата(Martisha @  11.12.2008,  10:18 Найти цитируемый пост)
переоткрывается вроде, только в базе если были записи, то в гридеони отображаются..потом если я их удаляю из базы(то есть там совсем  пусто), пытаюсь обновить гриде записи все равно отображаются  smile  не пойму почему так

Не закомитил транзакцию в которой были удалены записи!

больше нет вариантов, чудес то же вроде не бывает

Это сообщение отредактировал(а) Frees - 17.12.2008, 12:53


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
pseud
Дата 17.12.2008, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(Frees @  17.12.2008,  12:52 Найти цитируемый пост)
Не закомитил транзакцию в которой были удалены записи!


не закоммитила. это точно. 
Цитата(Martisha @  11.12.2008,  08:18 Найти цитируемый пост)
потом если я их удаляю из базы(то есть там совсем  пусто)

здесь поподробнее. как и где?


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0694 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.