powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / [Paradox] Внезапная ошибка на SELECT, "The search key was not found in any record"
5 сообщений из 5, страница 1 из 1
[Paradox] Внезапная ошибка на SELECT, "The search key was not found in any record"
    #37371042
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация следующая:
Есть СУБД Paradox, запущенная на некоторой машине. Программа копирует данные БД к себе, открывает их на локальной машине и выполняет запрос (схема существует по историческим причинам). Всё работало до тех пор, пока в один прекрасный день СУБД на "основной" машине очередной раз не перезагрузили. После чего запрос к паре таблиц стал выдавать вынесенную в заголовок ошибку. Borland Database Desktop аналогичный запрос вроде бы выполняет.
Вопрос: что случилось (могло случиться) с базой данных и как это можно было бы исправить?

Код работы с БД (C#.NET):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
        /// <summary>
        /// Создаёт объект и открывает подключение
        /// </summary>
        /// <param name="path">Путь к базе (i.e. C:\PARADOXDB\)</param>
        public ParadoxBase(string path)
        {
            m_connection = new OleDbConnection();
            StringBuilder ConnectionString = new StringBuilder("");
            ConnectionString.Append(@"Provider=Microsoft.Jet.OLEDB.4.0;");
            ConnectionString.Append(@"Extended Properties=Paradox 7.x;");
            ConnectionString.Append(@"Data Source=" + path + ";");
            ConnectionString.Append(@"Mode=Read;");

            m_connection.ConnectionString = ConnectionString.ToString();
            try
            {
                m_connection.Open();
                m_failure = null;
                m_lastErrorText = "";
            }
            catch (Exception e)
            {
                m_failure = e; 
                m_lastErrorText = e.Message;
            }
        }

        /// <summary>
        /// Разрешает SQL-запрос к таблице
        /// </summary>
        /// <param name="SQLRequest">Запрос к таблице</param>
        /// <returns>Возвращённые данные в виде типа DataSet</returns> 
        public DataSet Request(string SQLRequest)
        {
            if (m_failure != null) return new DataSet();
            try
            {
                OleDbDataAdapter da = new OleDbDataAdapter(SQLRequest, m_connection);
                DataSet dsRetrievedData = new DataSet();
                da.Fill(dsRetrievedData);
                return dsRetrievedData;
            }
            catch (Exception e)
            {
                m_failure = e;
                m_lastErrorText = e.Message;
                return new DataSet();
            }
        }
Пример приводящего к ошибке запроса:
Код: plaintext
1.
2.
3.
SELECT D.Num, L.TabNumber, D.Mode 
FROM pLogData D, pList L 
WHERE D.Num >=  190000  AND D.DoorIndex =  2  
ORDER BY D.TimeVal
...
Рейтинг: 0 / 0
[Paradox] Внезапная ошибка на SELECT, "The search key was not found in any record"
    #37371065
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[пальцем в небо] может, индексы загнулись? попробуйте переиндексировать все таблицы [/пальцем в небо]
...
Рейтинг: 0 / 0
[Paradox] Внезапная ошибка на SELECT, "The search key was not found in any record"
    #37371153
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir,

Спасибо, проблема решилась. По схеме "Удалить первичный индекс таблицы - создать первичный индекс".
Чёртов парадокс.
...
Рейтинг: 0 / 0
[Paradox] Внезапная ошибка на SELECT, "The search key was not found in any record"
    #37371173
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abstraction, название обязывает
...
Рейтинг: 0 / 0
[Paradox] Внезапная ошибка на SELECT, "The search key was not found in any record"
    #37414083
Julianis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Abstraction
Скажите пожалуйста, каким образом можно "Удалить первичный индекс таблицы - создать первичный индекс" ???
Просто у меня тоже возникает ошибка, только другого характера - "В операции должен использоваться обновляемый запрос."
Подключаюсь к таблицам парадокса через "Microsoft Paradox Driver .db", по средствам провайдера Odbc. Пробовал и через OleDb провайдер, та же ошибка.
Таблицы не мои, пришли ко мне из вне, но с индексами там полный порядок, т.е. запросы на селект проходят на ура, а вот ошибка возникает, когда пытаюсь изменить данные. При чем запросы на изменение проходят неудачно только на этих таблицах, подозреваю, что дело в том, что на таблицах стоит пароль, который убрать нельзя, возможно Odbc стандартно устанавливает для таблиц защищенных паролем режим чтения readonly, а как обойти это я не знаю ... уже 3-ий день мучаюсь, скажите пожалуйста, что можно сделать, чтобы запросы на изменение данных заработали. Заранее благодарен.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / [Paradox] Внезапная ошибка на SELECT, "The search key was not found in any record"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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