powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Удалить записи из курсора
24 сообщений из 24, страница 1 из 1
Удалить записи из курсора
    #38742436
jquery89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Не очень хорошо знаком с фокспро, поэтому возникли вопросы:

1. Есть курсор можно ли в этом курсоре удалить 1,2,3,4 и последнюю записи?
2. Можно ли данные из 3-ой записи сделать заголовками полей? (т.е. 3-я запись содержит данные типа цена, наименование, серия и эти данные сделать заголовками соответствующих полей)

Впрочем 2-ой вопрос не так важен. Основной вопрос первый.
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742462
jquery89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде сделал удаление первых 7-ми элементов так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
  SELECT * FROM price1 INTO CURSOR price2 READWRITE 
  GO 1
  DELETE
  GO 2
  DELETE
  GO 3
  DELETE
  GO 4
  DELETE
  GO 5
  DELETE
  GO 6
  DELETE
  GO 7
  DELETE 
  SET DELETED ON



А как последний элемент курсора удалить?
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742474
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А теперь выполни на своих данных первый и второй скрипт и найди отличия :)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 SELECT * FROM price1 order by 1 INTO CURSOR price2 READWRITE 
  GO 1
  DELETE
  GO 2
  DELETE
  GO 3
  DELETE
  GO 4
  DELETE
  GO 5
  DELETE
  GO 6
  DELETE
  GO 7
  DELETE 
  SET DELETED ON



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 SELECT * FROM price1 order by 1 desc INTO CURSOR price2 READWRITE 
  GO 1
  DELETE
  GO 2
  DELETE
  GO 3
  DELETE
  GO 4
  DELETE
  GO 5
  DELETE
  GO 6
  DELETE
  GO 7
  DELETE 
  SET DELETED ON
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742475
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jquery89Вроде сделал удаление первых 7-ми элементов так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
  SELECT * FROM price1 INTO CURSOR price2 READWRITE 
  GO 1
  DELETE
  GO 2
  DELETE
  GO 3
  DELETE
  GO 4
  DELETE
  GO 5
  DELETE
  GO 6
  DELETE
  GO 7
  DELETE 
  SET DELETED ON


Жуть.
Код: sql
1.
delete for recno()<=7


А как последний элемент курсора удалить?
Код: sql
1.
2.
Go bottom
delete

Но есть вопрос: а зачем запросом выбирать то, что не нужно и потом это ненужное удалять? Может сразу не выбирать?
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742485
jquery89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov, спасибо, ну я не знаком почти с фокспро, поэтому не знаю функции такие.
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742488
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov
Код: sql
1.
delete for recno()<=7




Не учи плохому
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742494
jquery89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Последняя запись почему-то не удаляется, что не так делаю?

Код: sql
1.
2.
3.
4.
5.
6.
SELECT price1
  GO TOP 
delete for recno()<=7
Go BOTTOM
DELETE
SET DELETED ON
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742513
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Количество записей RECCOUNT(), соответственно удаление последней
Код: sql
1.
delete for recno() = reccount()


PS Как выше написали - так делать не стоит. Поучи немного матчасть чтобы твоя прога не начала выполнять мистические действия :)
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742515
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jquery892. Можно ли данные из 3-ой записи сделать заголовками полей? (т.е. 3-я запись содержит данные типа цена, наименование, серия и эти данные сделать заголовками соответствующих полей)
Нельзя. Это не эксель. Тут не заголовки полей, а названия полей. Читай основы реляционных баз данных.
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742528
jquery89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWistSergey Sizov
Код: sql
1.
delete for recno()<=7




Не учи плохому


Если так неправильно удаление первых записей, то как правильно?
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742537
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jquery89PaulWistпропущено...


Не учи плохому


Если так неправильно удаление первых записей, то как правильно?

Правильно так, каждая табличка должна иметь первичный ключ - это такое поле, которое однозначно идентифицирует запись, все остальные модификации должны вестись на основании этого ключевого поля.
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742663
jquery89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist, А если курсор не имеет первичного ключа? и нужно просто удалить первые 7 записей
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742681
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вам надо разобраться с бизнеслогикой вашей задачи и понять, и на русском языке сформулировать:
чем записи 1, 2, 3, 4 и последняя, такие особенные.

Затем сделать селект
SELECT *,
IIF(выражение, определяющее, что данная запись - особенная (определяющее, на основе бизнеслогики), .t., .f.) IsDeletable
FROM price1 order by 1 INTO CURSOR price2 READWRITE

Потом DELETE FROM price2 WHERE IsDeletable


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


Если вы не можете "на русском языке сформулировать: чем записи 1, 2, 3, 4 и последняя, такие особенные", то у вас
бардак и в голове и в приложении, и ничего хорошего из этого не выйдет.
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742730
jquery89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tamozhnya, Особенные тем, что там содержится ненужная информация. Неужели так трудно подсказать как пометить на удаление первые 4 записи, НЕ УМНИЧАЯ? Я не сталкивался никогда ранее с фокспро, и в дальнейшем он мне не нужен, просто нужно сейчас на фокспро сделать кое-что
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742756
Fffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jquery89,
в базах данных нет понятия "первая, вторая, третья запись". Как удалить, вам уже подсказали. Можете также сделать это вручную, если в гриде слева есть колонка для пометки на удаление.
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742799
jquery89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне подсказали, а потом другой сказал что так не стоит делать :) поэтому хочу правильный вариант понять как удалять
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742805
jquery89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И можно ли программно физически удалить dbf таблицу? Не просто записи удалить из нее, а саму таблицу
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742869
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jquery89Мне подсказали, а потом другой сказал что так не стоит делать :) поэтому хочу правильный вариант понять как удалять
Делай как подсказали, если основы поизучать не хочешь.
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742881
jquery89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T, а можно ссылку на источник этих самих основ хотя бы?
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742925
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возьми какую-нибудь книгу по фоксу и почитай. http://forum.foxclub.ru/read.php?32,177177,177225#msg-177225
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38742935
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То что тебе посоветовали будет работать со свежесозданным курсором. Есть ряд ньюансов связанных с использованием RECNO()/RECCOUNT().

Можешь еще хэлп почитать. Тут по-русски .
help RECNO()
help RECCOUNT()
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38743003
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jquery89Особенные тем, что там содержится ненужная информация.

Как-то же вы определили, что там находится "ненужная информация". Для этого вы воспользовались какой-то логикой.
Перенесите эту логику в программу, и будет вам счастье.
Собственно, компьютеры для того и существуют, чтобы переносить в него логику из жизни для более быстрых расчетов.
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38743203
jquery89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tamozhnya, Блин ненужная просто и все нету логики. Мне дают dbf файл где первые 4 строки как бы шапка таблицы. Она не нужна и надо ее удалить. Умник блин. сказал не нужна значит не нужна.
...
Рейтинг: 0 / 0
Удалить записи из курсора
    #38744370
tor300
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jquery89Tamozhnya, Блин ненужная просто и все нету логики. Мне дают dbf файл где первые 4 строки как бы шапка таблицы. Она не нужна и надо ее удалить. Умник блин. сказал не нужна значит не нужна.

В следующий раз там будет 3 ненужных строки, определитесь с критериями ненужных строк, либо выбирайте только нужные строки.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Удалить записи из курсора
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]