Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / удаление текущей записи / 25 сообщений из 34, страница 1 из 2
25.06.2007, 19:49
    #34618620
worin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
Не могу понять как можно удалять текущую запись из таблицы с помощью sql-запроса. Пишу "Delete from kopkompzav where nomkompzav= nomkompzav" а происходит удаление всех записей. Как мне удалить текущую запись?
...
Рейтинг: 0 / 0
25.06.2007, 20:00
    #34618642
__Jet__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
автор
Пишу "Delete from kopkompzav where nomkompzav= nomkompzav" а происходит удаление всех записей.


Так nomkompzav текущей записи = nomkompzav той же самой текущей записи, поэтому все и грохается.

А нет там какого-н поля с уникальным значением, чтобы привязаться?
Наверное нет, а то бы и сами решили бы как.
...
Рейтинг: 0 / 0
25.06.2007, 20:24
    #34618671
worin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
У меня nomkompzav как раз с уникальными значениями у меня оно автоинкрементное так что мне делать в этом случае как к нему привязать?
...
Рейтинг: 0 / 0
25.06.2007, 21:00
    #34618707
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
Прочитай вот эту книжку. Когда прочитаешь, прийдешь еще раз.
http://sql.ru/docs/sql/u_sql/index.shtml
Твои вопросы к С++ не относятся даже отдаленно.
...
Рейтинг: 0 / 0
25.06.2007, 21:09
    #34618712
worin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
2 White Owl я знаю как удалить запись, например "Delete from kopkompzav where nomkompzav=2", но в этом случае я удаляю запись номер 2, я не знаю как мне удалить текущую запись, то есть что мне нужно написать вместо 2?
...
Рейтинг: 0 / 0
25.06.2007, 21:11
    #34618714
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
worin2 White Owl я знаю как удалить запись, например "Delete from kopkompzav where nomkompzav=2", но в этом случае я удаляю запись номер 2, я не знаю как мне удалить текущую запись, то есть что мне нужно написать вместо 2?Прочитай книжку, @#%%%#$!
НЕ СУЩЕСТВУЕТ ТЕКУЩЕЙ ЗАПИСИ В ТАБЛИЦЕ!
...
Рейтинг: 0 / 0
25.06.2007, 21:22
    #34618721
worin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
Т.е. нельзя удалить выделенную запись? В Accesse можно так:dbs.Execute "DELETE * FROM [1-Мои книги] WHERE [Книга]='" & frm!Книга & "'", а в Билдере наподобие что-нибудь можно?
...
Рейтинг: 0 / 0
25.06.2007, 22:46
    #34618787
sashka304
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
в билдере можно фсе :)
а по сути вопроса грохай по айдишкику если ты конечно его имеешь в табличке
...
Рейтинг: 0 / 0
26.06.2007, 08:29
    #34618988
удаление текущей записи
worin2 White Owl я знаю как удалить запись, например "Delete from kopkompzav where nomkompzav=2", но в этом случае я удаляю запись номер 2, я не знаю как мне удалить текущую запись, то есть что мне нужно написать вместо 2?

Все очень просто:
1. Сохраняем значение поля nomcompzav в переменную.
2. подставляем сохраненное значение в выражение для удаления...
...
Рейтинг: 0 / 0
26.06.2007, 08:32
    #34618993
удаление текущей записи
worinТ.е. нельзя удалить выделенную запись? В Accesse можно так:dbs.Execute "DELETE * FROM [1-Мои книги] WHERE [Книга]='" & frm!Книга & "'", а в Билдере наподобие что-нибудь можно?
можно. Называется "динамический SQL" (строка сначала формируется в переменной, а затем передается для выполнения). Ну, можно еще через параметризованные запросы...
...
Рейтинг: 0 / 0
26.06.2007, 08:36
    #34619001
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
Станислав С...кийНу, можно еще через параметризованные запросыкак раз наоборот.
НУЖНО через переметризованные запросы, но в некоторых случаях можно и построением текста
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
26.06.2007, 11:52
    #34619571
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
worin пишет:
> Не могу понять как можно удалять текущую запись из таблицы с помощью
> sql-запроса. Пишу "Delete from kopkompzav where nomkompzav= nomkompzav"
> а происходит удаление всех записей. Как мне удалить текущую запись?

В каждой таблице должен быть первичный ключ (primary key, PK).
Для того чтобы оперировать данными таблицы, на клиенте должны быть
известны значения всех полей ключа каждой записи.

Для удаления записи нужно выполнить запрос типа такого :

DELETE FROM kopkompzav where <поле PK 1> = <значение поля PK 1>
and <поле PK 2> = <значение поля PK 2>
....

где
<поле PK i> - имя i-го поля PK
<значение поля PK i> - значение i-го поля PK из удаляемой записи.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
26.06.2007, 12:01
    #34619607
worin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
Всем спасибо за ответы, но не могли бы привести пример удаления, а то никак не соображу как это сделать?
...
Рейтинг: 0 / 0
26.06.2007, 13:09
    #34619893
sashka304
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
можно попробовать коцнуть запись используя параметр по умолчанию, хотя это не очень верный наверно метод. но попробуйте так:
Код: plaintext
delete form imja_tablici where id_table = :id_table
...
Рейтинг: 0 / 0
26.06.2007, 13:36
    #34619994
worin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
Да я так пробовал не получается ничего не происходит может как-то по другому через параметр?
...
Рейтинг: 0 / 0
26.06.2007, 13:54
    #34620065
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
Код: plaintext
1.
2.
3.
4.
...
Query1->SQL->Add("delete form imja_tablici where id_table = :ID");
Query1->Params->ParamValues["ID"] =  2 ;
Query1->ExecSQL();
???
...
Рейтинг: 0 / 0
26.06.2007, 15:12
    #34620390
SnowMan2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
А может без всякого запроса:

Query1->Delete();

где Query1 - тот самый набор данных, что отображен в таблице
...
Рейтинг: 0 / 0
26.06.2007, 15:26
    #34620443
sashka304
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
SnowMan2А может без всякого запроса:

Query1->Delete();

где Query1 - тот самый набор данных, что отображен в таблице
кстати да. хороший вариант и без гемора
...
Рейтинг: 0 / 0
26.06.2007, 15:44
    #34620502
worin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
Через Query->Delete это конечно хорошо, но что в этом случае делать если у меня таблица содержит одинаковые строки? в этом случае происходит ошибка:Multiple records found, but only one was expected. Может как-нибудь можно отключить, чтобы таблица содержала одинаковые записи?
...
Рейтинг: 0 / 0
26.06.2007, 15:51
    #34620525
SnowMan2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
У тебя же там автоинкриментное поле. Откуда повторяюшиеся записи?
...
Рейтинг: 0 / 0
26.06.2007, 15:57
    #34620543
worin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
Эта уже новая таблица, куда переносятся данные из предыдущей и пользователь может нечаянно скопировать строку 2 раза в новую таблицу, вот в этом случае и появляются 2 одинаковые строки так что можно сделать в этом случае?
...
Рейтинг: 0 / 0
26.06.2007, 16:15
    #34620629
SnowMan2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
Подумать над заведением там автоинкриментного поля.
...
Рейтинг: 0 / 0
26.06.2007, 16:31
    #34620708
worin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
Так автоинкремент в этом случае не поможет, пользователь по нажатию кнопки копирует данные из таблицы в таблицу и он может нажать просто кнопку 2 раза и получится в новой таблице 2 одинаковые записи
...
Рейтинг: 0 / 0
26.06.2007, 16:37
    #34620728
sashka304
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
если будет автоинкремент то те 2 уже не одинаковые! у них будет различатся автоинкрементируемое поле на как минимум на 1
...
Рейтинг: 0 / 0
26.06.2007, 16:51
    #34620777
worin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление текущей записи
Нет ну я же копирую из таблицы с автоинкрементом полную строку, то есть если копировать в новую таблицу 2 одинаковые строки то они то будут одинаковые и номера будут одинаковые, номер же не изменяется, когда копируешь
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / удаление текущей записи / 25 сообщений из 34, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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