Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с TQuery, Запрос на удаление (ред.) текущей записи 
:(
    Опции темы
Anastazi25252525
Дата 13.6.2009, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



не работает...... удаляет или все билеты (проданные и заказанные), либо по частям... Может я циклы не правильно сделала?
PM MAIL   Вверх
Akella
Дата 13.6.2009, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Цитата(Anastazi25252525 @  13.6.2009,  21:05 Найти цитируемый пост)
как можно удалить данные из таблицы,где поле состояние = заказано, если эта таблица связана с другой по трём полям. 

А что сия метаморфоза значит? (с)
PM MAIL   Вверх
Anastazi25252525
Дата 13.6.2009, 22:45 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



простите, конечно, я только 3 года изучаю Delphi 7 в колледже. и не умею точно формулировать вопрос.....

Это сообщение отредактировал(а) Anastazi25252525 - 13.6.2009, 22:48
PM MAIL   Вверх
Данкинг
Дата 13.6.2009, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Там что-то begin'ов очень много, аж глаза разбегаются. smile И ещё: что значит эта строчка:
Код

prodada3.Query3.RecNo;

?

Добавлено через 3 минуты и 16 секунд
Цитата(Anastazi25252525 @  13.6.2009,  23:45 Найти цитируемый пост)
простите, конечно, я только 3 года изучаю Delphi 7

Эмм.... smile Всего три года...  smile Ну да, вот ещё лет 30 пройдёт, и будешь тогда уже профессиональным дельфи-кодером. smile 


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


Новичок



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

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



эта строка считает количество записей в квери3. а этот квери3 выполняет выборку всех заказанных билетов из таблицы БИЛЕТ, связанной по трем полям с таблицей ПОКАЗ.
PM MAIL   Вверх
Данкинг
Дата 13.6.2009, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Цитата(Anastazi25252525 @  13.6.2009,  23:52 Найти цитируемый пост)
эта строка считает количество записей в квери3

Эта строка возвращает (только в никуда) текущую строку Query3, т.е. её номер.


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


Новичок



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

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



так у меня везде  стоит... но дело - то не в ней.......Так?

Это сообщение отредактировал(а) Anastazi25252525 - 13.6.2009, 23:03
PM MAIL   Вверх
Данкинг
Дата 13.6.2009, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Цитата(Anastazi25252525 @ 14.6.2009,  00:01)
так у меня везде  стоит... но дело - то не в ней.......Так?

Осталось выяснить, что именно. smile  smile Точнее, что именно она делает - я написал в предыдущем посте, а выяснить осталось, для чего сия строка нужна в твоём коде. smile

Быстро редактируешь посты. smile Да, дело не в ней. Попробуй для начала структурировать код и убрать with... : мне кажется, они тут только мешают.

Это сообщение отредактировал(а) Данкинг - 13.6.2009, 23:05


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


Новичок



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

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



даже не знаю... волшебник ты, или только учишься.... но без этого  with  всё работает!!!!!!!!!
СПАСИБО ОГРОМНОЕ!!!!


а счас нет... вообще не удаляет ничего.... (((((((((


может просто сделать запрос на удаление по четырем параметрам?....

Это сообщение отредактировал(а) Anastazi25252525 - 13.6.2009, 23:53
PM MAIL   Вверх
Данкинг
Дата 14.6.2009, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Цитата(Anastazi25252525 @  14.6.2009,  00:46 Найти цитируемый пост)
может просто сделать запрос на удаление по четырем параметрам?....

В каком смысле? Грохнуть нужное в каждой таблице? Можно попробовать. Но от with всё равно избавляйся.


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


Новичок



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

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



Код

qUERY3.aCTIVE:=False;
qUERY3.SQL.Clear;
qUERY3.SQL.Add('delete bilet_n, Nazv_filma, N_seansa, Data, rad, mesto, Cena, Sostoyanie');
qUERY3.SQL.Add('FROM "bil.DB" bil');
qUERY3.SQL.Add('Where Nazv_filma = '''+DBLookupComboBox1.Text+''' and N_seansa= '''+DBLookupComboBox2.Text+'''');
qUERY3.SQL.Add('and rad = '''+Edit1.Text+''' and mesto = '''+Edit2.Text+''' and Data = '''+DBEdit3.Text+'''');
qUERY3.SQL.Add('and Sostoyanie = '''+DBEdit9.Text+'''');
qUERY3.ExecSQL;
qUERY3.aCTIVE:=True;


вроде этого... связаться по трем полям с другой и удалить из билета все заказанные билеты...... 
SQL может удалять так?
PM MAIL   Вверх
Данкинг
Дата 14.6.2009, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Цитата(Anastazi25252525 @  14.6.2009,  01:24 Найти цитируемый пост)
SQL может удалять так? 

SQL? Ты хочешь сказать, Query? Может удалять, т.е. он так и должен удалять, ты же запрос на удаление пишешь. Только если есть ExecSQL, то Active уже не нужно. smile 
 А вообще мы какую СУБД-то всё же разбираем?!


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


Новичок



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

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



СУБД - Delphi 7.   Запрос написала, не удаляет..... при нажатии на кнопку ругается на текст запроса. сначала такую же процедуру написала на самом квери, потом сделала его неактивным и пересылала процедуру по нажатию кнопки. потом сделала цикл на удаление, а в нем выбор всех этих полей. во всех случаях нету результата. либо на запрос ругается, либо ничего не делает.  сейчас вот этот код(прописан только на кнопке). при выполнении он говорит, что Table(1) does not exist. 


Код

procedure Tprodada3.Button12Click(Sender: TObject);
begin


table1.Open;
table1.First;
table1.Edit;
 while not prodada3.Table1.Eof do
with table1 do    // Cae?anei oeacaiiua ianoa aieoaui
  delete;
    begin

qUERY4.aCTIVE:=False;
qUERY4.SQL.Clear;
qUERY4.SQL.Add('select Bilet_N, Nazv_filma, N_seansa, Data, Rad, Mesto, Cena, Sostoyanie');
qUERY4.SQL.Add('FROM "bil.DB" bil');
qUERY4.SQL.Add('Where Nazv_filma = '''+DBLookupComboBox1.Text+''' and N_seansa= '''+DBLookupComboBox2.Text+'''');
qUERY4.SQL.Add('and Data = '''+DBEdit3.Text+'''');
qUERY4.SQL.Add('and Sostoyanie ='''+Edit12.Text+'''');
qUERY4.ExecSQL;
qUERY4.aCTIVE:=True;
end;
table1.Post;
end;



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

Код

procedure Tprodada3.Button11Click(Sender: TObject);
var r,m,n:integer;
begin
Query3.Close;
Query3.Open;
ty:=prodada3.Query3.RecordCount;
prodada3.table1.First;

  prodada3.Query3.First;  // Âûõîäèì íà ïåðâóþ çàïèñü â òàáëèöå ïðîäàííûõ áèëåòîâ
      while not prodada3.Query3.Eof do  // ïåðåáèðàåì çàïèñè â òàáëèöå îò íà÷àëà äî êîíöà
        begin
     {with prodada3.Table1 do BEGIN  }
    for n:=1 to ty  DO     BEGIN
      begin

      if (prodada3.Table1Sostoyanie.Text='Çàêàçàíî') then
     begin
       prodada3.Table1.edit;
  prodada3.Table1.FieldByName('Sostoyanie').AsString:=prodada3.Query3Sostoyanie.AsString;
 prodada3.Table1.Delete;
 prodada3.Table1.Refresh;
 prodada3.Query3.RecNo;
    // ïåðåõîäèì íà ñëåäóþùóþ çàïèñü â òàáëèöå
        end; prodada3.Query3.Next;
  end;
       END;
       END;
       END;

PM MAIL   Вверх
Akella
Дата 14.6.2009, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Цитата(Anastazi25252525 @  13.6.2009,  22:52 Найти цитируемый пост)
эта строка считает количество записей в квери3. 


Цитата(Данкинг @  13.6.2009,  22:46 Найти цитируемый пост)
prodada3.Query3.RecNo;


я думаю, что за три года можно было узнать различия между RecNo и RecordCount smile

Добавлено через 2 минуты и 8 секунд
Цитата(Anastazi25252525 @  14.6.2009,  03:16 Найти цитируемый пост)
       prodada3.Table1.edit;
  prodada3.Table1.FieldByName('Sostoyanie').AsString:=prodada3.Query3Sostoyanie.AsString;
 prodada3.Table1.Delete;
 prodada3.Table1.Refresh;
 prodada3.Query3.RecNo;

 smile  smile это что за страшная последовательность?
Предлагаю прочесть книженцию хотя бы по начальным знаниям баз данных, а всё, что изучила за три года - ЗАБУДЬ, ЗАБУДЬ КАК СТРАШНЫЙ СОН  smile 
PM MAIL   Вверх
Данкинг
Дата 14.6.2009, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Цитата(Anastazi25252525 @  14.6.2009,  04:16 Найти цитируемый пост)
СУБД - Delphi 7

Не знаю такой СУБД. smile Видимо, "йа блондинко". (с) smile

Цитата(Anastazi25252525 @  14.6.2009,  04:16 Найти цитируемый пост)
при нажатии на эту кнопку , удаляет заказанные места 

При нажатии на эту кнопку вообще нечто страшное должно происходить, типа локальный армагедец. smile 

Цитата(Anastazi25252525 @  14.6.2009,  04:16 Найти цитируемый пост)
Код

with table1 do    // Cae?anei oeacaiiua ianoa aieoaui
  delete;

Что конкретно удаляет этот код? Первую (текущую) строчку table1 ? Тогда зачем там "table1.Edit;"? Удаление произойдёт и без этого.

Цитата(Anastazi25252525 @  14.6.2009,  04:16 Найти цитируемый пост)
Код

qUERY4.SQL.Add('select Bilet_N, Nazv_filma, N_seansa, Data, Rad, Mesto, Cena, Sostoyanie');

Зачем в коде какой-то select, если речь идёт об удалении?

Цитата(Anastazi25252525 @  14.6.2009,  04:16 Найти цитируемый пост)
Код

table1.Post;

После .delete уже не нужно ставить .post.

Цитата(Anastazi25252525 @  14.6.2009,  04:16 Найти цитируемый пост)
able(1) does not exist. 

Значит, так оно и есть: транслятор не обманешь. smile 


Цитата(Anastazi25252525 @  14.6.2009,  04:16 Найти цитируемый пост)
Код

for n:=1 to ty  DO     BEGIN
      begin

 smile Предлагаю такой код:
Код

for n:=1 to ty  DO 
 begin
  begin
   begin
    begin
     begin
      begin
       prodada3.Query3.Next;
      end;
     end;
    end;
   end;
  end;
 end;

 smile  smile 

Цитата(Akella @  14.6.2009,  10:55 Найти цитируемый пост)
а всё, что изучила за три года - ЗАБУДЬ, ЗАБУДЬ КАК СТРАШНЫЙ СОН 

Эх, молодость, зря загубленная... smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Страницы: (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.1646 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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