Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Вниз

Ошибка при удалении записей таблицы Firebird   Найти похожие ветки 

 
Novicer   (2014-02-25 13:04) [0]

Здравствуйте! Подскажите пожалуйста как побороть ошибку XSQLDA index out of range? Возникает при выполнении запроса delete from mytable where mycount=0 Если есть записи в которых условие запроса выполняется, ошибки нет, в противном случае получаю error message :( Была мысль перед удалением считать записи соответствующие условию, если их нет, то не выполнять удаление, но наверно можно как-то лучше сделать, без доп.запросов. Посоветуйте как? Спасибо!


 
Ega23 ©   (2014-02-25 13:25) [1]

Open vs. Execute, не?


 
Inovet ©   (2014-02-25 13:42) [2]

В TIBQuery делаешь?
Каждой форточке свой эээ... компонент.


 
Novicer   (2014-02-25 14:28) [3]

Юзаю IBQuery vs ExecSql без Open :)


 
Novicer   (2014-02-25 14:32) [4]

А каким компонентом правильно удалять? И к слову,- слышал народ на форумах агитирует юзать IbSql вместо квери. Насколько это оправданно? Методы использования те же?


 
Romkin ©   (2014-02-25 15:01) [5]

Сдается мне, тут клиент не соответствует серверу.


 
Romkin ©   (2014-02-25 15:12) [6]

То есть у тебя gds32.dll от другого сервера подцепляется, установи FB/IB правильно


 
sniknik ©   (2014-02-25 15:18) [7]

"плясать" всегда нужно от ошибки.
а тех кто биоинформационно говорит "у меня ошибка, в чем может быть дело?" в дворники.


 
Novicer   (2014-02-25 15:25) [8]

Огнептиц 2.5 других не качал. И как плясать от ошибки? Где и какая возникает описал, а причину незнаю, потому у профи и спрашиваю...


 
Ega23 ©   (2014-02-25 15:28) [9]


> Огнептиц 2.5 других не качал.


А InterBase вместе с Delphi ставил?


 
sniknik ©   (2014-02-25 15:29) [10]

> Где и какая возникает описал
?????????
где запрос, где вносимые данные, где последовательность действий?  

> а причину незнаю, потому у профи и спрашиваю...
легко, вариантов море
http://www.google.ru/search?q=XSQLDA+index+out+of+range


 
clickmaker ©   (2014-02-25 15:30) [11]

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


 
sniknik ©   (2014-02-25 15:35) [12]

> вариантов море
что нашел
: в запросе/условии.
при добавлении инсерта/апдейта не почищен старый запрос.
открытые датасеты в дизайн тайм.
старый драйвер.


 
Inovet ©   (2014-02-25 15:44) [13]

> [4] Novicer   (25.02.14 14:32)
> А каким компонентом правильно удалять? И к слову,- слышал
> народ на форумах агитирует юзать IbSql вместо квери. Насколько
> это оправданно? Методы использования те же?

Ты ответь - почему ты не читаешь ничего из того, что тебе тут предлагают, а лазишь по каким-то форумам, где кто-то там что-то сказал?

В 100501 раз, 100500 был вчера.
http://ibase.ru/devinfo/ibx.htm


 
Novicer   (2014-02-25 15:44) [14]

Интербейса нет, не ставил вобще, только D2010. Запрос в первом посте. Как почистить запрос Sql.Clear?


 
Inovet ©   (2014-02-25 15:44) [15]

> [13] Inovet ©   (25.02.14 15:44)

Да, поиск занял 1 минуту, писанина здесь 2 минуты.


 
Inovet ©   (2014-02-25 15:46) [16]

> [15] Inovet ©   (25.02.14 15:44)

Ну и ещё 30 секунд
IBDataSet

TIBDataSet = class(TIBCustomDataSet)

Основной компонент, пришедший из FreeIBComponents. Остальные, то есть IBTable, IBQuery (+IBUpdateSQL) - всего лишь модификации, либо чуть расширенные, либо усеченные. Возможностей этого компонента хватает практически для любых целей.


 
Inovet ©   (2014-02-25 15:50) [17]

IBSQL

Предназначен для выполнения операторов Insert/update/delete, execute procedure, или select для небуферизированного перебора записей (например при импорте/экспорте данных или при массовой обработке записей на клиенте).

Что ещё тебе найти?


 
Novicer   (2014-02-25 16:44) [18]

Меня интересовало мнение экспертов что лучше IbQuery или IbSql? Справочники и книги у меня есть...


 
Inovet ©   (2014-02-25 16:49) [19]

> [18] Novicer   (25.02.14 16:44)

По ссылке всё сказано - IBQuery костыль. Что лучше яблоки или помидоры?


 
sniknik ©   (2014-02-25 16:53) [20]

> мнение экспертов что лучше IbQuery или IbSql?
а что лучше чай или зеленый? скрипач дальтоник?


 
Inovet ©   (2014-02-25 17:18) [21]

> [18] Novicer   (25.02.14 16:44)
> Справочники и книги у меня есть...

У меня есть Ландау и Лившец "Квантовая механика" 768 страниц, только я её не знаю. А ещё есть "Теория поля" этих же авторов 512 страниц, её я тоже не знаю. А всего Теоретическая Физика этих авторов в 10-ти томах, но 8-ми из них у меня нет, содержание даже не видел.

Я решил создать альтернативную теорию, которая опровергнет Теорию Относительности. Нет, лучше сразу создать Теорию Всего, которая всё опровергнет. Взял ручку, бумагу. А что писать? Надо полазить по форумам сначала. Полазил с полчаса. Ага вот кде-то там кто-то что-то говорит, что, вроде, Энштейн неправ, а Планк лучше. Ага так и запишем. Будем опровергать Планка, щас схожу на форум физиков, спрошу чем лучше Планк, потом допишу.


 
Inovet ©   (2014-02-25 17:19) [22]

> [21] Inovet ©   (25.02.14 17:18)
> Лившец

Лившиц


 
Novicer   (2014-02-25 17:30) [23]

:) намек понял...


 
Труп Васи Доброго ©   (2014-02-26 10:07) [24]

Не хочешь искать - думай и действуй.
Первая мысль, которая должна прийти в голову - ошибка в запросе. Для проверки мысли возьми офигенный инструмент IBExpert, подключись к своей базе и сделай свой запрос вручную, будет ошибка или нет? Ошибки не будет, значит сам запрос правильный и надо искать в Delphi. 99% что ошибка, как сказал clickmaker ©   (25.02.14 15:30) [11], в том, что происходит после запроса. Обычно на index out of range напарываются, когда в полях вывода (в экранных таблицах, едитах, лэйблах и т.п., указывают номер записи (как правило первую [1]), полагая, что она всегда есть, без проверки её существования. Вот и у тебя где-то стоит компонент, который отображает первую запись из таблицы, и после выполнения запроса и обновления таблицы компонент лезет в первую запись, которой уже нет, и получает фигу в виде index out of range.
Как-то так. Но это обычно..., возможно у тебя косяк где-то ещё.


 
Novicer   (2014-02-26 19:24) [25]

Спасибо за советы! Буду искать...


 
Novicer   (2014-02-26 20:14) [26]

А что будет если в таблице нет записей, а я выполняю запрос на их удаление с помощью IbQuery, например так: delete from mytable Ошибки быть не должно?


 
Труп Васи Доброго ©   (2014-02-27 08:19) [27]


> Ошибки быть не должно?

Нет. Если запрос составлен корректно, он всегда выполнится без ошибок, даже если ему нечего делать. Ошибка будет, если запрос нарушает целостность структуры БД или правильность данных.
З.Ы. Запрос через IBExpert отрабатывает? Если нет, то может у тебя в таблице триггер UD криво написан?


 
Novicer   (2014-02-27 09:38) [28]

Не по сабжу. Почему труп? :)


 
Inovet ©   (2014-02-27 10:38) [29]

> [28] Novicer   (27.02.14 09:38)

Создай новый проект, положи на форму правильные (см выше) компоненты, заполни поле для запроса, выполни. О результатах отпишись.


 
Труп Васи Доброго ©   (2014-02-27 11:31) [30]


> Почему труп?

Потому что меня Думкин убил.


 
Novicer   (2014-02-27 12:34) [31]

Думкин? :/


 
Novicer   (2014-02-27 12:40) [32]

В новом проекте и в IbExpert запрос delete from mytable where mycount=0 выполняется без ошибок любое число раз, один за другим... блин...


 
Труп Васи Доброго ©   (2014-02-27 13:41) [33]


> блин...

Я тебе сказал где искать. Смотри в визуальных элементах и всяких переменных, которые данные из БД отображают и обрабатывают. Где то ты поставил "взять данные из строки №1".


 
Novicer   (2014-02-27 13:51) [34]

Ок, бум искать... Спасибо за подсказки...


 
Novicer   (2014-02-27 21:01) [35]

Нашел! Сразу после удаления строчки
IbQuery1.Close;
IbQuery1.Open;
вызывали ошибку :( выполнялся запрос с ранее заданными параметрами не соответствующими действительности после удаления :)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.053 c
15-1417642205
Юрий
2014-12-04 00:30
2015.09.10
С днем рождения ! 4 декабря 2014 четверг


3-1304681525
wwowa
2011-05-06 15:32
2015.09.10
Перенос данных


15-1415442545
alexdn
2014-11-08 13:29
2015.09.10
Потестировать сайт


2-1395013278
vegarulez
2014-03-17 03:41
2015.09.10
Indy.TidHTTP. Ошибка HTTP/1.1 302 Found


15-1419718332
alexdn
2014-12-28 01:12
2015.09.10
Плагин для Paint.net





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский