Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.07.2010, 05:46
andrey.v.z andrey.v.z вне форума
Прохожий
 
Регистрация: 27.04.2010
Сообщения: 22
Репутация: 10
По умолчанию Вопрос по ClientDataSet

Подскажите, как в ClientDataSet не прогоняя все записи в цикле (т.к. медленно) можно изменить или удалить записи с определенным значением в одном (или не одном) из полей? Желательно маленький пример.
Ответить с цитированием
  #2  
Старый 09.07.2010, 09:05
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Использовать для удаления SQL запрос.

Delete from <Table_Name> where <Field1>=<:Значение1> and
<Field2>=<:Значение2>
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
  #3  
Старый 09.07.2010, 20:20
andrey.v.z andrey.v.z вне форума
Прохожий
 
Регистрация: 27.04.2010
Сообщения: 22
Репутация: 10
По умолчанию

Цитата:
Сообщение от Black Raider
Использовать для удаления SQL запрос.
Delete from <Table_Name> where <Field1>=<:Значение1> and
<Field2>=<:Значение2>

не пользовался SQL раньше...
попробовал так:
Код:
with clientdataset1 do begin
    Close;
    CommandText:=' DELETE FROM ClientDataSet1 where (ClientDataSet1.flag=true);';
    Execute;
    Open;
end;
вылетает с ошибкой...

Последний раз редактировалось andrey.v.z, 09.07.2010 в 20:23.
Ответить с цитированием
  #4  
Старый 09.07.2010, 21:40
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

1. Какая ошибка?
2. Имя таблицы - не имя компонента.
3. Для убыстрения прохода по компонентам-источникам данных надо отключать обновление данных в визуальных компонентах. Основное время тратится именно там. Соотв. методы: DisableControls и EnableControls. Типа:
Код:
cdsMyData.DisableControls;
Try
  cdsMyData.First;
  While Not cdsMyData.Eof Do
    cdsMyData.Next;
Finally
  cdsMyData.EnableControls;
End;
Ответить с цитированием
  #5  
Старый 10.07.2010, 00:53
andrey.v.z andrey.v.z вне форума
Прохожий
 
Регистрация: 27.04.2010
Сообщения: 22
Репутация: 10
По умолчанию

1. 'ClientDataSet1: Missing data provider or data packet'
2. Тут подробнее плиз. Мой ClientDataSet1 не связан с базами данных. Какое имя таблицы надо вписать?
3. За эту подсказку спасибо, так совсем другое дело. Правда теперь есть желание с SQL ближе познакомиться.
Ответить с цитированием
  #6  
Старый 10.07.2010, 02:22
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

В том-то и дело, что похоже тут особо ничего не сделаешь. Хотя, вроде, можно было как-то гонять SQL запросы по CDS. Но точно как - просто не помню. Давно перешел на использование локальных (embedded) баз данных и забыл этот кошмар как класс.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:55.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025