Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2010, 22:10   #1
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию почему ADOTABLE.RECNO всегда равно -1

хочу получить значение текущей ячейки
Код:
i:=adotable1.RECNO;
if adotable1.Fields.Fields[i].AsString='' then
adotable1.DeleteRecords(arcurrent);
но какую бы строку я не выделял, RECNO всегда равно -1, и у меня вылезает ошибка.в чем проблема?или как это по другому делается?
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 09.05.2010, 18:49   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

а зачем?
Код:
if adotable1.Fields.Fields[i].AsString='' then
ADOTable1.Delete;
к томуже recno по моему далеко не везде работает, с парадоксавскими табличками да точно работает
vovk вне форума Ответить с цитированием
Старый 09.05.2010, 18:59   #3
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от betirsolt Посмотреть сообщение
Код:
i:=adotable1.RECNO;
if adotable1.Fields.Fields[i].AsString='' then
adotable1.DeleteRecords(arcurrent);
но какую бы строку я не выделял, RECNO всегда равно -1, и у меня вылезает ошибка.в чем проблема?или как это по другому делается?
Смотри в отладчике значения переменных и анализируй...
Ты уверен, что у тебя количество полей может быть равным количеству записей в таблице???
И ты уверен, что нужно удалить именно это количество записей???
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 09.05.2010 в 19:02.
Grag вне форума Ответить с цитированием
Старый 09.05.2010, 20:36   #4
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Цитата:
Сообщение от Grag Посмотреть сообщение
Смотри в отладчике значения переменных и анализируй...
Ты уверен, что у тебя количество полей может быть равным количеству записей в таблице???
И ты уверен, что нужно удалить именно это количество записей???
там я уже по другому сделал.но это не важно.в recno же должен быть номер текущей строки так? я в отладчике смотрел там всегда -1
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 10.05.2010, 20:32   #5
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

что в вашем случае подразумевается номер записи?
если у вас в таблице есть ID_NUM которое автоинкрементное поле, то просто встаньте на запись в гриде, и в событии OnChange грида напишите
Showessage(IntToStrQuery1.FiledByNa me('id_num').asInteger));
вот вам и будет номер записи
dron-s вне форума Ответить с цитированием
Старый 11.05.2010, 10:22   #6
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от dron-s Посмотреть сообщение
что в вашем случае подразумевается номер записи?
Это номер записи в DataSet'е на который указывает курсор... И при чем тут ID_NUM ???
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 11.05.2010, 11:15   #7
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
И при чем тут ID_NUM ???
Как причем? Че тут непонятного-то? Ясень пень, что dron-s название поля привел в качестве примера. Мы ж не знаем названия полей, поэтому dron-s и привел пример.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 11.05.2010, 11:22   #8
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Как причем? Че тут непонятного-то? Ясень пень, что dron-s название поля привел в качестве примера. Мы ж не знаем названия полей, поэтому dron-s и привел пример.
Да что ты говоришь!!! А ты уверен, что у тебя номер записи (ака Dataset.RecNo) будет совпадать со значением поля ID_NUM в этой записи???
Я так лично не уверен...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 11.05.2010, 11:26   #9
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Да что ты говоришь!!! А ты уверен, что у тебя номер записи (ака Dataset.RecNo) будет совпадать со значением поля ID_NUM в этой записи???
При чем тут вообще это???? Я че про поля говорю?? Я говорю, что название поля было приведено для примера, а не про то, что там что-то не будет совпадать.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 11.05.2010, 11:33   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
i:=adotable1.RECNO;
if adotable1.Fields.Fields[i].AsString='' then
RecNo дает номер записи (ксати к сведению спорщиков не всегда), а Fields[i] указывает на колонку таблицы а не на запись
Это массив колонок текущей записи, так что в любом случае i, которому присвоен номер записи нельзя использовать в обращении к колонкам.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RecNo (Delphi) VadEr БД в Delphi 1 03.02.2010 11:55
Проблемы с прокруткой DBGridEh (видимо свзяан с RecNo) Highlander1981 БД в Delphi 5 24.12.2009 13:53
Потоки. Почему всё-равно виснет окно? TwiX Общие вопросы Delphi 10 13.12.2009 11:51
Как копировать данные из ADOTable в ADOTable? mauar БД в Delphi 1 10.05.2008 16:05
Всегда позади и всегда впереди в одном приложении Legat Win Api 4 27.10.2007 15:48